2 * HHKB Pro 2 US Layout for shela
4 #include QMK_KEYBOARD_H
5 #include "keymap_jis2us.h"
6 #include "action_pseudo_lut.h"
19 const uint16_t PROGMEM keymaps
[][MATRIX_ROWS
][MATRIX_COLS
] = {
21 /* Layer 0: Default Layer
22 * ,-----------------------------------------------------------------------------------------.
23 * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | ` | BSp |
24 * |-----------------------------------------------------------------------------------------|
25 * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
26 * |-----------------------------------------------------------------------------------------|
27 * | Control | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
28 * |-----------------------------------------------------------------------------------------|
29 * | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Fn0 |
30 * `-----------------------------------------------------------------------------------------'
31 * |LAlt | LGui | SpaceFN | RGui |RAlt |
32 * `-----------------------------------------------------------------'
35 LAYOUT(KC_ESC
, KC_1
, KC_2
, KC_3
, KC_4
, KC_5
, KC_6
, KC_7
, KC_8
, KC_9
, KC_0
, KC_MINS
, KC_EQL
, KC_GRV
, KC_BSPC
,
36 KC_TAB
, KC_Q
, KC_W
, KC_E
, KC_R
, KC_T
, KC_Y
, KC_U
, KC_I
, KC_O
, KC_P
, KC_LBRC
, KC_RBRC
, KC_BSLS
,
37 KC_LCTL
, KC_A
, KC_S
, KC_D
, KC_F
, KC_G
, KC_H
, KC_J
, KC_K
, KC_L
, KC_SCLN
, KC_QUOT
, KC_ENT
,
38 OSM(MOD_LSFT
), KC_Z
, KC_X
, KC_C
, KC_V
, KC_B
, KC_N
, KC_M
, KC_COMM
, KC_DOT
, KC_SLSH
, KC_RSFT
, MO(HHKB
),
39 KC_LALT
, KC_LGUI
, LT(SPACE_FN
, KC_SPACE
), KC_RGUI
, KC_RALT
),
41 /* Layer 1: Pseudo US Layout Layer
42 * ,-----------------------------------------------------------------------------------------.
43 * | Esc | Fn1 | Fn1 | Fn1 | Fn1 | Fn1 | Fn1 | Fn1 | Fn1 | Fn1 | Fn1 | Fn1 | Fn1 | Fn1 | BSp |
44 * |-----------------------------------------------------------------------------------------|
45 * | Tab | Fn1 | Fn1 | Fn1 | Fn1 | Fn1 | Fn1 | Fn1 | Fn1 | Fn1 | Fn1 | Fn1 | Fn1 | Fn1 |
46 * |-----------------------------------------------------------------------------------------|
47 * | Control | Fn1 | Fn1 | Fn1 | Fn1 | Fn1 | Fn1 | Fn1 | Fn1 | Fn1 | Fn1 | Fn1 | Enter |
48 * |-----------------------------------------------------------------------------------------|
49 * | Shift | Fn1 | Fn1 | Fn1 | Fn1 | Fn1 | Fn1 | Fn1 | Fn1 | Fn1 | Fn1 | Shift | Fn0 |
50 * `-----------------------------------------------------------------------------------------'
51 * |LGui | Fn3 | SpaceFN | Fn4 |RGui |
52 * `-----------------------------------------------------------------'
55 LAYOUT(KC_ESC
, KC_FN1
, KC_FN1
, KC_FN1
, KC_FN1
, KC_FN1
, KC_FN1
, KC_FN1
, KC_FN1
, KC_FN1
, KC_FN1
, KC_FN1
, KC_FN1
, KC_FN1
, KC_BSPC
,
56 KC_TAB
, KC_FN1
, KC_FN1
, KC_FN1
, KC_FN1
, KC_FN1
, KC_FN1
, KC_FN1
, KC_FN1
, KC_FN1
, KC_FN1
, KC_FN1
, KC_FN1
, KC_FN1
,
57 KC_LCTL
, KC_FN1
, KC_FN1
, KC_FN1
, KC_FN1
, KC_FN1
, KC_FN1
, KC_FN1
, KC_FN1
, KC_FN1
, KC_FN1
, KC_FN1
, KC_ENT
,
58 KC_LSFT
, KC_FN1
, KC_FN1
, KC_FN1
, KC_FN1
, KC_FN1
, KC_FN1
, KC_FN1
, KC_FN1
, KC_FN1
, KC_FN1
, KC_RSFT
, MO(HHKB
),
59 KC_LGUI
, KC_FN3
, LT(SPACE_FN
, KC_SPACE
), KC_FN4
, KC_RGUI
),
61 /* Layer 2: Dvorak Layer
62 * ,-----------------------------------------------------------------------------------------.
63 * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | [ | ] | ` | BSp |
64 * |-----------------------------------------------------------------------------------------|
65 * | Tab | ' | , | . | P | Y | F | G | C | R | L | / | = | \ |
66 * |-----------------------------------------------------------------------------------------|
67 * | Control | A | O | E | U | I | D | H | T | N | S | - | Enter |
68 * |-----------------------------------------------------------------------------------------|
69 * | Shift | ; | Q | J | K | X | B | M | W | V | Z | Shift | Fn0 |
70 * `-----------------------------------------------------------------------------------------'
71 * |LAlt | LGui | SpaceFN | RGui |RAlt |
72 * `-----------------------------------------------------------------'
75 LAYOUT(KC_ESC
, KC_1
, KC_2
, KC_3
, KC_4
, KC_5
, KC_6
, KC_7
, KC_8
, KC_9
, KC_0
, KC_LBRC
, KC_RBRC
, KC_GRV
, KC_BSPC
,
76 KC_TAB
, KC_QUOT
, KC_COMM
, KC_DOT
, KC_P
, KC_Y
, KC_F
, KC_G
, KC_C
, KC_R
, KC_L
, KC_SLSH
, KC_EQL
, KC_BSLS
,
77 KC_LCTL
, KC_A
, KC_O
, KC_E
, KC_U
, KC_I
, KC_D
, KC_H
, KC_T
, KC_N
, KC_S
, KC_MINS
, KC_ENT
,
78 KC_LSFT
, KC_SCLN
, KC_Q
, KC_J
, KC_K
, KC_X
, KC_B
, KC_M
, KC_W
, KC_V
, KC_Z
, KC_RSFT
, MO(HHKB
),
79 KC_LALT
, KC_LGUI
, LT(SPACE_FN
, KC_SPACE
), KC_RGUI
, KC_RALT
),
81 /* Layer 3: Mouse layer
82 * ,-----------------------------------------------------------------------------------------.
83 * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | |
84 * |-----------------------------------------------------------------------------------------|
85 * | | | | | | | MwL | MwD | MwU | MwR | | | | |
86 * |-----------------------------------------------------------------------------------------|
87 * | | | | | | | McL | McD | McU | McR | | | |
88 * |-----------------------------------------------------------------------------------------|
89 * | | | | | | | Mb1 | Mb2 | Mb3 | | | | Fn0 |
90 * `-----------------------------------------------------------------------------------------'
92 * `-----------------------------------------------------------------'
95 LAYOUT(KC_ESC
, KC_F1
, KC_F2
, KC_F3
, KC_F4
, KC_F5
, KC_F6
, KC_F7
, KC_F8
, KC_F9
, KC_F10
, KC_F11
, KC_F12
, KC_NO
, KC_TRNS
,
96 KC_TRNS
, KC_NO
, KC_NO
, KC_NO
, KC_NO
, KC_NO
, KC_WH_L
, KC_WH_D
, KC_WH_U
, KC_WH_R
, KC_NO
, KC_NO
, KC_NO
, KC_NO
,
97 KC_TRNS
, KC_NO
, KC_NO
, KC_NO
, KC_NO
, KC_NO
, KC_MS_L
, KC_MS_D
, KC_MS_U
, KC_MS_R
, KC_NO
, KC_NO
, KC_TRNS
,
98 KC_TRNS
, KC_NO
, KC_NO
, KC_NO
, KC_NO
, KC_NO
, KC_BTN1
, KC_BTN2
, KC_BTN3
, KC_NO
, KC_NO
, KC_TRNS
, MO(HHKB
),
99 KC_TRNS
, KC_TRNS
, KC_BTN1
, KC_TRNS
, KC_TRNS
),
101 /* Layer 4: Tenkey layer
102 * ,-----------------------------------------------------------------------------------------.
103 * | Esc | | | | | | | | | | / | * | - | | BSp |
104 * |-----------------------------------------------------------------------------------------|
105 * | | | | | | | | | | 7 | 8 | 9 | + | |
106 * |-----------------------------------------------------------------------------------------|
107 * | | | | | | | | | | 4 | 5 | 6 | Enter |
108 * |-----------------------------------------------------------------------------------------|
109 * | | | | | | | | | 1 | 2 | 3 | + | Fn0 |
110 * `-----------------------------------------------------------------------------------------'
111 * | | | SpaceFN | 0 | . |
112 * `-----------------------------------------------------------------'
115 LAYOUT(KC_ESC
, KC_NO
, KC_NO
, KC_NO
, KC_NO
, KC_NO
, KC_NO
, KC_NO
, KC_NO
, KC_NO
, KC_PSLS
, KC_PAST
, KC_PMNS
, KC_NO
, KC_BSPC
,
116 KC_TRNS
, KC_NO
, KC_NO
, KC_NO
, KC_NO
, KC_NO
, KC_NO
, KC_NO
, KC_NO
, KC_KP_7
, KC_KP_8
, KC_KP_9
, KC_PPLS
, KC_NO
,
117 KC_TRNS
, KC_NO
, KC_NO
, KC_NO
, KC_NO
, KC_NO
, KC_NO
, KC_NO
, KC_NO
, KC_KP_4
, KC_KP_5
, KC_KP_6
, KC_PENT
,
118 KC_TRNS
, KC_NO
, KC_NO
, KC_NO
, KC_NO
, KC_NO
, KC_NO
, KC_NO
, KC_KP_1
, KC_KP_2
, KC_KP_3
, KC_PPLS
, MO(HHKB
),
119 KC_TRNS
, KC_TRNS
, LT(SPACE_FN
, KC_SPACE
), KC_KP_0
, KC_PDOT
),
121 /* Layer 5: HHKB mode (HHKB Fn)
122 * ,-----------------------------------------------------------------------------------------.
123 * | Pwr | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del |
124 * |-----------------------------------------------------------------------------------------|
125 * | Caps | Fn5 | Fn6 | Fn7 | Fn8 | Fn9 | | | Psc | Slk | Pus | Up | | BSp |
126 * |-----------------------------------------------------------------------------------------|
127 * | | VoD | VoU | Mut | | | * | / | Hom | PgU | Lef | Rig | Enter |
128 * |-----------------------------------------------------------------------------------------|
129 * | | | | | | | + | - | End | PgD | Dow | | |
130 * `-----------------------------------------------------------------------------------------'
132 * `-----------------------------------------------------------------'
135 LAYOUT(KC_PWR
, KC_F1
, KC_F2
, KC_F3
, KC_F4
, KC_F5
, KC_F6
, KC_F7
, KC_F8
, KC_F9
, KC_F10
, KC_F11
, KC_F12
, KC_INS
, KC_DEL
,
136 KC_CAPS
, KC_FN5
, KC_FN6
, KC_FN7
, KC_FN8
, KC_FN9
, KC_TRNS
, KC_TRNS
, KC_PSCR
, KC_SLCK
, KC_PAUS
, KC_UP
, KC_TRNS
, KC_BSPC
,
137 KC_TRNS
, KC_VOLD
, KC_VOLU
, KC_MUTE
, KC_TRNS
, KC_TRNS
, KC_PAST
, KC_PSLS
, KC_HOME
, KC_PGUP
, KC_LEFT
, KC_RGHT
, KC_PENT
,
138 KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_PPLS
, KC_PMNS
, KC_END
, KC_PGDN
, KC_DOWN
, KC_TRNS
, KC_TRNS
,
139 KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
),
142 * ,-----------------------------------------------------------------------------------------.
143 * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | Del |
144 * |-----------------------------------------------------------------------------------------|
145 * | | Hom | Up | End | | | | Hom | End | | Psc | Slk | Pau | Ins |
146 * |-----------------------------------------------------------------------------------------|
147 * | | Lef | Dow | Rig | PgU | | Lef | Dow | Up | Rig | | | |
148 * |-----------------------------------------------------------------------------------------|
149 * | | | | PgD | | Spc | | PgD | PgU | | | | |
150 * `-----------------------------------------------------------------------------------------'
152 * `-----------------------------------------------------------------'
155 LAYOUT(KC_TRNS
, KC_F1
, KC_F2
, KC_F3
, KC_F4
, KC_F5
, KC_F6
, KC_F7
, KC_F8
, KC_F9
, KC_F10
, KC_F11
, KC_F12
, KC_NO
, KC_DEL
,
156 KC_TRNS
, KC_HOME
, KC_UP
, KC_END
, KC_NO
, KC_NO
, KC_NO
, KC_HOME
, KC_END
, KC_NO
, KC_PSCR
, KC_SLCK
, KC_PAUS
, KC_INS
,
157 KC_TRNS
, KC_LEFT
, KC_DOWN
, KC_RGHT
, KC_PGUP
, KC_NO
, KC_LEFT
, KC_DOWN
, KC_UP
, KC_RGHT
, KC_NO
, KC_NO
, KC_TRNS
,
158 KC_TRNS
, KC_NO
, KC_NO
, KC_PGDN
, KC_NO
, KC_SPC
, KC_NO
, KC_PGDN
, KC_PGUP
, KC_NO
, KC_NO
, KC_TRNS
, KC_NO
,
159 KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
),
163 * user defined action function
170 void action_function(keyrecord_t
*record
, uint8_t id
, uint8_t opt
)
175 case PSEUDO_US_FUNCTION
:
176 action_pseudo_lut(record
, BASE
, keymap_jis2us
);
182 * Fn action definition
184 const uint16_t PROGMEM fn_actions
[] = {
185 [1] = ACTION_FUNCTION(PSEUDO_US_FUNCTION
),
186 [3] = ACTION_MODS_TAP_KEY(MOD_LALT
, KC_MHEN
),
187 [4] = ACTION_MODS_TAP_KEY(MOD_RALT
, KC_KANA
),
188 [5] = ACTION_DEFAULT_LAYER_SET(BASE
),
189 [6] = ACTION_DEFAULT_LAYER_SET(PSEUDO_US
),
190 [7] = ACTION_DEFAULT_LAYER_SET(MOUSE
),
191 [8] = ACTION_DEFAULT_LAYER_SET(TENKEY
),
192 [9] = ACTION_DEFAULT_LAYER_SET(DVORAK
),