1 #include QMK_KEYBOARD_H
4 extern keymap_config_t keymap_config;
6 // Use an expanded macro with VA_ARGS to ensure that the common
7 // rows get expanded out before getting passed to the LAYOUT
10 #define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
12 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
13 [BASE] = LAYOUT_wrapper( \
14 ROW5_LEFT_BASE, KC_F5, KC_F6, ROW5_RGHT_BASE,
15 ROW4_LEFT_BASE, TG(GAME), TG(GAME_ARROW), ROW4_RGHT_BASE,
16 ROW3_LEFT_BASE, KC_LGUI, KC_BSPC, ROW3_RGHT_BASE,
17 ROW2_LEFT_BASE, TD(TD_COPY_PASTE), KC_UP , ROW2_RGHT_BASE,
18 ROW1_LEFT_BASE, KC_BSPC, TD(TD_SYM_VIM), KC_DEL, KC_ENT, KC_SPC , KC_DOWN, ROW1_RGHT_BASE
21 [SYMB] = LAYOUT_wrapper(
22 ROW5_LEFT_SYMB, _______, _______, ROW5_RGHT_SYMB,
23 ROW4_LEFT_SYMB, PSCREEN_APP, _______, ROW4_RGHT_SYMB,
24 ROW3_LEFT_SYMB, KC_PSCR, KC_VOLU, ROW3_RGHT_SYMB,
25 ROW2_LEFT_SYMB, _______, KC_VOLD, ROW2_RGHT_SYMB,
26 ROW1_LEFT_SYMB, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, ROW1_RGHT_SYMB
29 [VIM] = LAYOUT_wrapper(
30 ROW5_LEFT_VIM, _______, _______, ROW5_RGHT_VIM,
31 ROW4_LEFT_VIM, _______, _______, ROW4_RGHT_VIM,
32 ROW3_LEFT_VIM, _______, _______, ROW3_RGHT_VIM,
33 ROW2_LEFT_VIM, _______, _______, ROW2_RGHT_VIM,
34 ROW1_LEFT_VIM, _______, _______, _______, _______, _______, _______, ROW1_RGHT_VIM
37 [GAME] = LAYOUT_wrapper(
38 KC_ESC, SIX_TRNS, _______, SIX_TRNS,
39 SIX_TRNS, _______, _______, SIX_TRNS,
40 KC_LCTL, FOUR_TRNS, _______, KC_F6, _______, SIX_TRNS,
41 KC_LSFT, KC_Z, FOUR_TRNS, KC_F5, _______, SIX_TRNS,
42 KC_ENT, _______, KC_LOCK, KC_BSPC, KC_LALT, KC_SPC, OSM(SYMB), _______, SIX_TRNS
45 [GAME_ARROW] = LAYOUT_wrapper(
46 KC_ESC, SIX_TRNS, _______, SIX_TRNS,
47 _______, _______, KC_UP, _______, _______, _______, _______, _______, SIX_TRNS,
48 KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_F6, _______, SIX_TRNS,
49 KC_LSFT, KC_Z, FOUR_TRNS, KC_F5, _______, SIX_TRNS,
50 KC_ENT, _______, KC_LOCK, KC_BSPC, KC_LALT, KC_SPC, OSM(SYMB), _______, SIX_TRNS
54 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
55 tap_dance_process_keycode(keycode);
56 return !try_handle_macro(keycode, record);