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
// left hand
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,F21, F22, F23, F24, NO, TRNS,
TRNS,TRNS,TRNS,TRNS,TRNS,
@ -261,7 +261,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
TRNS,TRNS,TRNS,
// right hand
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,
TRNS,NO, F9, F10, F11, F12, TRNS,
TRNS,TRNS,TRNS,TRNS,TRNS,
@ -292,6 +292,27 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
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
@ -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
[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
[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[] = {
[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
[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
[5] = ACTION_MODS_KEY(MOD_LSFT, KC_SLSH), // FN5 = Shifted slash // ? 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
[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
[5] = ACTION_MODS_KEY(MOD_LSFT, KC_SLSH), // FN5 = Shifted slash // ? in Workman
};
static const uint16_t PROGMEM fn_actions_7[] = {
[0] = ACTION_MACRO(XMONAD_RESET), // FN0 = xmonad-reanimator
[1] = ACTION_MACRO(PASSWORD1), // FN1 = default password
[2] = ACTION_MACRO(PASSWORD1), // FN2 = other password
[3] = ACTION_MACRO(PASSWORD1), // FN3 = mega password
[0] = ACTION_MACRO(XMONAD_RESET), // FN0 = xmonad-reanimator
[1] = ACTION_MACRO(PASSWORD1), // FN1 = default password
[2] = ACTION_MACRO(PASSWORD1), // FN2 = other 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)
@ -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_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_9_SIZE (sizeof(fn_actions_9) / sizeof(fn_actions_9[0]))
/*
* 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)]);
}
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
// this is needed to get mapping for same key, that was used switch to some layer,
// to have possibility to switch layers back

View file

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