KEYMAP( // Layer0: default, leftled:none
// left hand
GRV, 1, 2, 3, 4, 5, BSLS,
- TAB, Q, W, E, R, T, FN23,
+ FN2, Q, W, E, R, T, FN23,
FN11,FN28,FN29,FN30,FN31,G,
FN12,FN24,FN25,FN26,FN27,B, HOME,
FN21,FN20,CAPS,FN13,FN14,
TRNS,TRNS,TRNS,
/* in Workman right hand will be:
- +
- ^ { } ( ) =
+ { } ( ) +
+ ^ ! ? =
' ! $ " ; \
# [ < > ] \
*/
// right hand
- NO, NO, NO, NO, NO, NO, PPLS,
- TRNS,MINS,4, 5, 9, 0, EQL,
+ NO, NO, 4, 5, 9, 0, PPLS,
+ TRNS,MINS,2, FN5, 9, 0, EQL,
BSLS,2, P, FN1, 1, FN2,
TRNS,3, 6, FN3, FN4, 7, FN2,
TRNS,TRNS,TRNS,TRNS,TRNS,
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,
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,
TRNS,TRNS,TRNS,
// right hand
- TRNS,MPLY,MPRV,MNXT,VOLD,VOLU,MUTE,
- TRNS,BTN2,WH_L,WH_U,WH_D,WH_R,PGUP,
+ F16, MPLY,MPRV,MNXT,VOLD,VOLU,MUTE,
+ F14, BTN2,WH_L,WH_U,WH_D,WH_R,PGUP,
BTN1,MS_L,MS_U,MS_D,MS_R,PGDN,
- TRNS,BTN3,HOME,END, DEL, INS, NO,
+ F15, BTN3,HOME,END, DEL, INS, NO,
+ TRNS,TRNS,TRNS,TRNS,TRNS,
+ 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,FN14,FN15,FN10,
+ FN1, FN2, FN3, FN4, FN5, FN11,
+ TRNS,TRNS,FN6, FN7, FN8, FN9, FN0,
TRNS,TRNS,TRNS,TRNS,TRNS,
TRNS,TRNS,
TRNS,
[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
};
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_LCTL, KC_P0), // FN0 = Ctrl+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
+ [14] = ACTION_MODS_KEY(MOD_LCTL, KC_PMNS), // FN14 = Ctrl+Pad Minus
+ [15] = ACTION_MODS_KEY(MOD_LCTL, KC_PPLS), // FN15 = Ctrl+Pad Plus
};
void action_function(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
action_t action;
action.code = ACTION_NO;
+ if (layer == 4 && FN_INDEX(keycode) < FN_ACTIONS_4_SIZE) {
+ action.code = pgm_read_word(&fn_actions_4[FN_INDEX(keycode)]);
+ }
+
if (layer == 7 && FN_INDEX(keycode) < FN_ACTIONS_7_SIZE) {
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