Updates to CUB's layout - created Layer9 (app-specific shortcuts)

This commit is contained in:
Oleg Kostyuk 2014-07-15 17:28:37 +03:00
parent 53030f1b65
commit f2791c2e37
2 changed files with 61 additions and 13 deletions

View file

@ -252,7 +252,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KEYMAP( // Layer7: F-keys only, leftled:top/white KEYMAP( // Layer7: F-keys only, leftled:top/white
// left hand // left hand
FN0, NO, NO, NO, NO, NO, NO, FN0, NO, NO, NO, NO, NO, NO,
FN1, F13, F14, F15, F16, NO, FN23, FN1, F13, F14, F15, F16, NO, TRNS,
TRNS,F17, F18, F19, F20, NO, TRNS,F17, F18, F19, F20, NO,
TRNS,F21, F22, F23, F24, NO, TRNS, TRNS,F21, F22, F23, F24, NO, TRNS,
TRNS,TRNS,TRNS,TRNS,TRNS, TRNS,TRNS,TRNS,TRNS,TRNS,
@ -261,7 +261,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
TRNS,TRNS,TRNS, TRNS,TRNS,TRNS,
// right hand // right hand
NO, NO, NO, NO, NO, NO, TRNS, NO, NO, NO, NO, NO, NO, TRNS,
FN23,NO, F1, F2, F3, F4, TRNS, TRNS,NO, F1, F2, F3, F4, TRNS,
NO, F5, F6, F7, F8, TRNS, NO, F5, F6, F7, F8, TRNS,
TRNS,NO, F9, F10, F11, F12, TRNS, TRNS,NO, F9, F10, F11, F12, TRNS,
TRNS,TRNS,TRNS,TRNS,TRNS, TRNS,TRNS,TRNS,TRNS,TRNS,
@ -292,6 +292,27 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
TRNS,TRNS,TRNS TRNS,TRNS,TRNS
), ),
KEYMAP( // Layer9: application-specific shortcuts (mostly browser), leftled:top/white+bot/green
// left hand
TRNS,NO, NO, NO, NO, NO, NO,
TRNS,NO, NO, NO, NO, NO, TRNS,
TRNS,NO, NO, NO, NO, NO,
TRNS,NO, NO, NO, TRNS,NO, TRNS,
TRNS,TRNS,TRNS,TRNS,TRNS,
TRNS,TRNS,
TRNS,
TRNS,TRNS,TRNS,
// right hand
NO, NO, NO, NO, NO, NO, TRNS,
TRNS,NO, FN12,FN13,NO, NO, FN10,
FN1, FN2, FN3, FN4, FN5, FN11,
TRNS,FN6, FN7, FN8, FN9, FN0, TRNS,
TRNS,TRNS,TRNS,TRNS,TRNS,
TRNS,TRNS,
TRNS,
TRNS,TRNS,TRNS
),
/* /*
// templates to copy from // templates to copy from
@ -401,22 +422,39 @@ static const uint16_t PROGMEM fn_actions[] = {
[24] = ACTION_LAYER_TAP_KEY(4, KC_Z), // FN24 = momentary Layer4 on Z key, to use with unconvenient keys [24] = ACTION_LAYER_TAP_KEY(4, KC_Z), // FN24 = momentary Layer4 on Z key, to use with unconvenient keys
[25] = ACTION_LAYER_TAP_KEY(3, KC_X), // FN25 = momentary Layer3 on X key, to use with F* keys [25] = ACTION_LAYER_TAP_KEY(3, KC_X), // FN25 = momentary Layer3 on X key, to use with F* keys
[26] = ACTION_LAYER_TAP_KEY(8, KC_C), // FN26 = momentary Layer8 on C key, to use with mouse and navigation keys [26] = ACTION_LAYER_TAP_KEY(8, KC_C), // FN26 = momentary Layer8 on C key, to use with mouse and navigation keys
[27] = ACTION_LAYER_TAP_KEY(2, KC_V), // FN27 = momentary Layer2 on V key, to use with Numpad keys [27] = ACTION_LAYER_TAP_KEY(9, KC_V), // FN27 = momentary Layer9 on V key, to use with application-specific shortcuts
}; };
static const uint16_t PROGMEM fn_actions_4[] = { static const uint16_t PROGMEM fn_actions_4[] = {
[1] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), // FN1 = Shifted BackSlash // " in Workman [1] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), // FN1 = Shifted BackSlash // " in Workman
[2] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), // FN2 = Shifted Minus // \ in Workman [2] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), // FN2 = Shifted Minus // \ in Workman
[3] = ACTION_MODS_KEY(MOD_LSFT, KC_COMM), // FN3 = Shifted comma // < in Workman [3] = ACTION_MODS_KEY(MOD_LSFT, KC_COMM), // FN3 = Shifted comma // < in Workman
[4] = ACTION_MODS_KEY(MOD_LSFT, KC_DOT), // FN4 = Shifted dot // > in Workman [4] = ACTION_MODS_KEY(MOD_LSFT, KC_DOT), // FN4 = Shifted dot // > in Workman
[5] = ACTION_MODS_KEY(MOD_LSFT, KC_SLSH), // FN5 = Shifted slash // ? in Workman [5] = ACTION_MODS_KEY(MOD_LSFT, KC_SLSH), // FN5 = Shifted slash // ? in Workman
}; };
static const uint16_t PROGMEM fn_actions_7[] = { static const uint16_t PROGMEM fn_actions_7[] = {
[0] = ACTION_MACRO(XMONAD_RESET), // FN0 = xmonad-reanimator [0] = ACTION_MACRO(XMONAD_RESET), // FN0 = xmonad-reanimator
[1] = ACTION_MACRO(PASSWORD1), // FN1 = default password [1] = ACTION_MACRO(PASSWORD1), // FN1 = default password
[2] = ACTION_MACRO(PASSWORD1), // FN2 = other password [2] = ACTION_MACRO(PASSWORD1), // FN2 = other password
[3] = ACTION_MACRO(PASSWORD1), // FN3 = mega password [3] = ACTION_MACRO(PASSWORD1), // FN3 = mega password
};
static const uint16_t PROGMEM fn_actions_9[] = {
[0] = ACTION_MODS_KEY(MOD_LALT, KC_P0), // FN0 = Alt+0
[1] = ACTION_MODS_KEY(MOD_LALT, KC_P1), // FN1 = Alt+1
[2] = ACTION_MODS_KEY(MOD_LALT, KC_P2), // FN2 = Alt+2
[3] = ACTION_MODS_KEY(MOD_LALT, KC_P3), // FN3 = Alt+3
[4] = ACTION_MODS_KEY(MOD_LALT, KC_P4), // FN4 = Alt+4
[5] = ACTION_MODS_KEY(MOD_LALT, KC_P5), // FN5 = Alt+5
[6] = ACTION_MODS_KEY(MOD_LALT, KC_P6), // FN6 = Alt+6
[7] = ACTION_MODS_KEY(MOD_LALT, KC_P7), // FN7 = Alt+7
[8] = ACTION_MODS_KEY(MOD_LALT, KC_P8), // FN8 = Alt+8
[9] = ACTION_MODS_KEY(MOD_LALT, KC_P9), // FN9 = Alt+9
[10] = ACTION_MODS_KEY(MOD_LCTL|MOD_LSFT, KC_TAB), // FN10 = Ctrl+Shift+Tab
[11] = ACTION_MODS_KEY(MOD_LCTL, KC_TAB), // FN11 = Ctrl+Tab
[12] = ACTION_MODS_KEY(MOD_LCTL|MOD_LSFT, KC_PGUP), // FN12 = Ctrl+Shift+PgUp
[13] = ACTION_MODS_KEY(MOD_LCTL|MOD_LSFT, KC_PGDN), // FN13 = Ctrl+Shift+PgDn
}; };
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
@ -518,6 +556,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
#define FN_ACTIONS_SIZE (sizeof(fn_actions) / sizeof(fn_actions[0])) #define FN_ACTIONS_SIZE (sizeof(fn_actions) / sizeof(fn_actions[0]))
#define FN_ACTIONS_4_SIZE (sizeof(fn_actions_4) / sizeof(fn_actions_4[0])) #define FN_ACTIONS_4_SIZE (sizeof(fn_actions_4) / sizeof(fn_actions_4[0]))
#define FN_ACTIONS_7_SIZE (sizeof(fn_actions_7) / sizeof(fn_actions_7[0])) #define FN_ACTIONS_7_SIZE (sizeof(fn_actions_7) / sizeof(fn_actions_7[0]))
#define FN_ACTIONS_9_SIZE (sizeof(fn_actions_9) / sizeof(fn_actions_9[0]))
/* /*
* translates Fn keycode to action * translates Fn keycode to action
@ -538,6 +577,10 @@ action_t keymap_fn_to_action(uint8_t keycode)
action.code = pgm_read_word(&fn_actions_7[FN_INDEX(keycode)]); action.code = pgm_read_word(&fn_actions_7[FN_INDEX(keycode)]);
} }
if (layer == 9 && FN_INDEX(keycode) < FN_ACTIONS_9_SIZE) {
action.code = pgm_read_word(&fn_actions_9[FN_INDEX(keycode)]);
}
// by default, use fn_actions from default layer 0 // by default, use fn_actions from default layer 0
// this is needed to get mapping for same key, that was used switch to some layer, // this is needed to get mapping for same key, that was used switch to some layer,
// to have possibility to switch layers back // to have possibility to switch layers back

View file

@ -150,9 +150,14 @@ uint8_t matrix_scan(void)
case 4: case 4:
case 5: case 5:
case 7: case 7:
// red // white
ergodox_left_led_1_on(); ergodox_left_led_1_on();
break; break;
case 9:
// white+green
ergodox_left_led_1_on();
ergodox_left_led_3_on();
break;
default: default:
// none // none
break; break;