~ruther/qmk_firmware

f64d30f38e55e6e156dda5230864de4a581b8fe1 — QMK Bot 3 years ago be9fa68 + 5e6f9df
Merge remote-tracking branch 'origin/master' into develop
1 files changed, 133 insertions(+), 9 deletions(-)

M keyboards/anavi/macropad8/keymaps/vscode/keymap.c
M keyboards/anavi/macropad8/keymaps/vscode/keymap.c => keyboards/anavi/macropad8/keymaps/vscode/keymap.c +133 -9
@@ 18,39 18,72 @@

enum layers {
    _BASIC,
    _BRACKETS,
    _SELECTORS,
    _FN,
};


#define KC_X0 LT(_FN, KC_ESC)

static char current_alpha_oled [12] = "None";

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* _BASIC Layer
 * ,-------------------------------------.
 * | Toggle  | Toggle  |        |         |
 * | Block   | Line    |  Undo  |   Redo  |
 * | Block   | Line    |  Undo  | Search  |
 * | Comment | Comment |        |         |
 * |---------+---------+--------+---------+
 * |         |         |        |   TO    |
 * |  Cut    |   Copy  |  Paste |   _FN   |   
 * |  Cut    |   Copy  |  Paste | _BASIC  |
 * |         |         |        |         |
 *  `-------------------------------------' 
 *  `-------------------------------------'
 */ 
  [_BASIC] = LAYOUT_ortho_2x4(
     RCS(KC_A), C(KC_SLASH), C(KC_Z),  C(KC_Y),
     C(KC_X),   C(KC_C),     C(KC_V),  TO(_FN)
     RCS(KC_A),  LCTL(KC_SLASH), LCTL(KC_Z),  LCTL(KC_F),
     LCTL(KC_X), LCTL(KC_C),     LCTL(KC_V),  TO(_BRACKETS)
  ),
/* _BRACKETS Layer
 * ,-----------------------------------------.
 * |         |         |        |            |
 * |  (      |   [     |   {    |   Bksp     |
 * |         |         |        |            |
 * |---------+---------+--------+------------+
 * |         |         |        |   TO       |
 * |  Del    |   Copy  |  Paste | _SELECTORS |
 * |         |         |        |            |
 *  `----------------------------------------'
 */ 
  [_BRACKETS] = LAYOUT_ortho_2x4(
     S(KC_9), KC_LBRC, S(KC_LBRC), KC_BACKSPACE,
     KC_DEL, C(KC_C), C(KC_V),    TO(_SELECTORS)
  ),
/* _SELECTORS Layer
* ,-------------------------------------.
* |         |         |        |         |
* | Select  |  Save   |  Undo  |   Bksp  |
* |   All   |         |        |         |
* |---------+---------+--------+---------+
* |         |         |        |   TO    |
* |  Cut    |   Copy  |  Paste |   _FN   |
* |         |         |        |         |
*  `-------------------------------------'
*/ 
 [_SELECTORS] = LAYOUT_ortho_2x4(
   C(KC_A), C(KC_S),  C(KC_Z), KC_BACKSPACE,
   C(KC_X), C(KC_C), C(KC_V),  TO(_FN)
  ),
/* _FN Layer
 * ,--------------------------------------------.
 * | RGB       |  RGB      |  RGB      | RGB     |
 * | Toggle    |  Mode     |  Mode     | Snake   |
 * |           |  Forward  | Reverse   | Mode    |         
 * |           |  Forward  | Reverse   | Mode    |
 * |-----------+-----------+-----------+---------+
 * |           |  Cycle    |  Toggle   |  TO     |
 * | BackLight | BackLight | BackLight |  _BASIC |  
 * |  Toggle   |   Levels  |           |         |
 *  `--------------------------------------------' 
 * | BackLight | BackLight | BackLight |  _BASIC |
 * |  Toggle   |   Levels  | Breathing |         |
 *  `--------------------------------------------'
 */ 
  [_FN] = LAYOUT_ortho_2x4(
     RGB_TOG, RGB_MOD, RGB_M_R, RGB_M_SN,


@@ 63,6 96,89 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
    return OLED_ROTATION_180;  // flips the display 180 degrees if offhand
}

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
    if (record->event.pressed) {
        char string [33];
        switch(keycode)
        {
            //First Layer with Basic Keys
            case LCTL(KC_X):
                strncpy(current_alpha_oled, "Cut", sizeof(current_alpha_oled));
                break;
            case LCTL(KC_F):
                strncpy(current_alpha_oled, "Search", sizeof(current_alpha_oled));
                break;
            case LCTL(KC_Z):
                strncpy(current_alpha_oled, "Undo", sizeof(current_alpha_oled));
                break;
            case LCTL(KC_C):
                strncpy(current_alpha_oled, "Copy", sizeof(current_alpha_oled));
                break;
            case LCTL(KC_V):
                strncpy(current_alpha_oled, "Paste", sizeof(current_alpha_oled));
                break;
            case RCS(KC_A):
                strncpy(current_alpha_oled, "Block cmt.", sizeof(current_alpha_oled));
                break;
            case LCTL(KC_SLASH):
                strncpy(current_alpha_oled, "Line cmt.", sizeof(current_alpha_oled));
                break;
            //Second Layer with Brackets
            case S(KC_9):
                strncpy(current_alpha_oled, "()", sizeof(current_alpha_oled));
                break;
            case KC_LBRC:
                strncpy(current_alpha_oled, "[]", sizeof(current_alpha_oled));
                break;
            case S(KC_LBRC):
                strncpy(current_alpha_oled, "{}", sizeof(current_alpha_oled));
                break;
            case KC_BACKSPACE:
                strncpy(current_alpha_oled, "Backspace", sizeof(current_alpha_oled));
                break;
            case KC_DEL:
                strncpy(current_alpha_oled, "Del", sizeof(current_alpha_oled));
                break;
            // Selector Layer keys
            case C(KC_A):
                strncpy(current_alpha_oled, "Select All", sizeof(current_alpha_oled));
                break;
            case C(KC_S):
                strncpy(current_alpha_oled, "Save", sizeof(current_alpha_oled));
                break;
            // FN Layer keys
            case RGB_TOG:
                strncpy(current_alpha_oled, "RGB Toggle", sizeof(current_alpha_oled));
                break;
            case RGB_MOD:
                strncpy(current_alpha_oled, "RGB Fwd", sizeof(current_alpha_oled));
                break;
            case RGB_M_R:
                strncpy(current_alpha_oled, "RGB Rev", sizeof(current_alpha_oled));
                break;
            case RGB_MODE_SNAKE:
                strncpy(current_alpha_oled, "RGB Snk", sizeof(current_alpha_oled));
                break;
            case BL_TOGG:
                strncpy(current_alpha_oled, "BkLgt Tog", sizeof(current_alpha_oled));
                break;
            case BL_STEP:
                strncpy(current_alpha_oled, "BkLgt Lvl", sizeof(current_alpha_oled));
                break;
            case BL_BRTG:
                strncpy(current_alpha_oled, "BkLgt Brth", sizeof(current_alpha_oled));
                break;
            //FN Key keycodes
            case TO(_BASIC) ... TO(_FN):
               strncpy(current_alpha_oled, "Switcher", sizeof(current_alpha_oled));
               break;
            default:
               strncpy(current_alpha_oled, itoa(keycode, string, 10), sizeof(current_alpha_oled));
               break;
        }
    }
    return true;
}

bool oled_task_user(void) {
  // Host Keyboard Layer Status


@@ 73,6 189,12 @@ bool oled_task_user(void) {
    case _BASIC:
      oled_write_ln_P(PSTR("Basic"), false);
      break;
    case _BRACKETS:
      oled_write_ln_P(PSTR("Brkts"), false);
      break;
    case _SELECTORS:
      oled_write_ln_P(PSTR("Selct"), false);
      break;
    case _FN:
      oled_write_ln_P(PSTR("FN"), false);
      break;


@@ 90,6 212,8 @@ bool oled_task_user(void) {
  oled_write_ln_P(led_state.caps_lock ? PSTR("On") : PSTR("Off"), false);
  oled_write_P(PSTR("Backlit: "), false);
  oled_write_ln_P(is_backlight_enabled() ? PSTR("On") : PSTR("Off"), false);
  oled_write_P(PSTR("Last Key: "), false);
  oled_write_ln(current_alpha_oled, false);
#ifdef RGBLIGHT_ENABLE
  static char rgbStatusLine1[26] = {0};
  snprintf(rgbStatusLine1, sizeof(rgbStatusLine1), "RGB Mode: %d", rgblight_get_mode());