aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md2
-rw-r--r--common/action.c6
-rw-r--r--keyboard/gh60/keymap.c55
3 files changed, 41 insertions, 22 deletions
diff --git a/README.md b/README.md
index d4fee96c4..7ceffce77 100644
--- a/README.md
+++ b/README.md
@@ -470,7 +470,7 @@ See `keyboard/hhkb/keymap.c` for sample.
470### 3. Layer 470### 3. Layer
471 Layer is key-action map to assign action to every physical key. You can define multiple layers in keymap and make layers active out of keymap during operation at will. 471 Layer is key-action map to assign action to every physical key. You can define multiple layers in keymap and make layers active out of keymap during operation at will.
472 472
473 First layer is indexed by `0` which usually become **`default layer`** and active in initial state. 473 First layer is indexed by `0` which usually become `default layer` and active in initial state.
474 474
475You can define **16 layers** at most in each keymaps[] and overlays[]. 475You can define **16 layers** at most in each keymaps[] and overlays[].
476 476
diff --git a/common/action.c b/common/action.c
index 7f3e236f0..7ca481fba 100644
--- a/common/action.c
+++ b/common/action.c
@@ -384,21 +384,15 @@ static void process_action(keyrecord_t *record)
384 /* Keymap Reset default layer */ 384 /* Keymap Reset default layer */
385 case (OP_RESET | ON_PRESS): 385 case (OP_RESET | ON_PRESS):
386 if (event.pressed) { 386 if (event.pressed) {
387 overlay_clear();
388 keymap_clear();
389 default_layer_set(action.layer.val); 387 default_layer_set(action.layer.val);
390 } 388 }
391 break; 389 break;
392 case (OP_RESET | ON_RELEASE): 390 case (OP_RESET | ON_RELEASE):
393 if (!event.pressed) { 391 if (!event.pressed) {
394 overlay_clear();
395 keymap_clear();
396 default_layer_set(action.layer.val); 392 default_layer_set(action.layer.val);
397 } 393 }
398 break; 394 break;
399 case (OP_RESET | ON_BOTH): 395 case (OP_RESET | ON_BOTH):
400 overlay_clear();
401 keymap_clear();
402 default_layer_set(action.layer.val); 396 default_layer_set(action.layer.val);
403 break; 397 break;
404 398
diff --git a/keyboard/gh60/keymap.c b/keyboard/gh60/keymap.c
index 77ec09cfd..af7af64d1 100644
--- a/keyboard/gh60/keymap.c
+++ b/keyboard/gh60/keymap.c
@@ -107,20 +107,15 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
107 CAPS,A, O, E, U, I, D, H, T, N, S, MINS, ENT, \ 107 CAPS,A, O, E, U, I, D, H, T, N, S, MINS, ENT, \
108 LSFT,SCLN,Q, J, K, X, B, M, W, V, Z, RSFT, \ 108 LSFT,SCLN,Q, J, K, X, B, M, W, V, Z, RSFT, \
109 LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN0), 109 LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN0),
110 /* Keymap: workman */ 110 /* Keymap 3: workman */
111 KEYMAP_ANSI( 111 KEYMAP_ANSI(
112 GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ 112 GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \
113 TAB, Q, D, R, W, B, J, F, U, P, SCLN,LBRC,RBRC,BSLS, \ 113 TAB, Q, D, R, W, B, J, F, U, P, SCLN,LBRC,RBRC,BSLS, \
114 BSPC,A, S, H, T, G, Y, N, E, O, I, QUOT, ENT, \ 114 BSPC,A, S, H, T, G, Y, N, E, O, I, QUOT, ENT, \
115 LSFT,Z, X, M, C, V, K, L, COMM,DOT, SLSH, RSFT, \ 115 LSFT,Z, X, M, C, V, K, L, COMM,DOT, SLSH, RSFT, \
116 LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN0), 116 LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN0),
117};
118 117
119static const uint8_t PROGMEM overlays[][MATRIX_ROWS][MATRIX_COLS] = { 118 /* Overlay 4: HHKB mode
120 /*
121 * Funky
122 */
123 /* Overlay 0: HHKB mode
124 * ,-----------------------------------------------------------. 119 * ,-----------------------------------------------------------.
125 * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete | 120 * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete |
126 * |-----------------------------------------------------------| 121 * |-----------------------------------------------------------|
@@ -134,12 +129,12 @@ static const uint8_t PROGMEM overlays[][MATRIX_ROWS][MATRIX_COLS] = {
134 * `-----------------------------------------------------------' 129 * `-----------------------------------------------------------'
135 */ 130 */
136 KEYMAP_ANSI( 131 KEYMAP_ANSI(
137 PWR, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, \ 132 GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, \
138 CAPS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PSCR,SLCK,PAUS,UP, TRNS,INS, \ 133 CAPS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PSCR,SLCK,PAUS,UP, TRNS,INS, \
139 LCTL,VOLD,VOLU,MUTE,TRNS,TRNS,PAST,PSLS,HOME,PGUP,LEFT,RGHT, ENT, \ 134 LCTL,VOLD,VOLU,MUTE,TRNS,TRNS,PAST,PSLS,HOME,PGUP,LEFT,RGHT, ENT, \
140 LSFT,TRNS,TRNS,TRNS,TRNS,TRNS,PPLS,PMNS,END, PGDN,DOWN, RSFT, \ 135 LSFT,TRNS,TRNS,TRNS,TRNS,TRNS,PPLS,PMNS,END, PGDN,DOWN, RSFT, \
141 LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, TRNS), 136 LCTL,LGUI,LALT, SPC, RALT,RGUI,FN4, TRNS),
142 /* Overlay 1: Vi mode (Slash) 137 /* Overlay 5: Vi mode (Slash)
143 * ,-----------------------------------------------------------. 138 * ,-----------------------------------------------------------.
144 * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backsp | 139 * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backsp |
145 * |-----------------------------------------------------------| 140 * |-----------------------------------------------------------|
@@ -158,7 +153,7 @@ static const uint8_t PROGMEM overlays[][MATRIX_ROWS][MATRIX_COLS] = {
158 LCTL,TRNS,LEFT,DOWN,RGHT,TRNS,LEFT,DOWN,UP, RGHT,TRNS,TRNS, ENT, \ 153 LCTL,TRNS,LEFT,DOWN,RGHT,TRNS,LEFT,DOWN,UP, RGHT,TRNS,TRNS, ENT, \
159 LSFT,TRNS,TRNS,TRNS,TRNS,TRNS,HOME,PGDN,PGUP,END, TRNS, RSFT, \ 154 LSFT,TRNS,TRNS,TRNS,TRNS,TRNS,HOME,PGDN,PGUP,END, TRNS, RSFT, \
160 LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL), 155 LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL),
161 /* Overlay 2: Mouse mode (Semicolon/App) 156 /* Overlay 6: Mouse mode (Semicolon/App)
162 * ,-----------------------------------------------------------. 157 * ,-----------------------------------------------------------.
163 * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backsp | 158 * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backsp |
164 * |-----------------------------------------------------------| 159 * |-----------------------------------------------------------|
@@ -178,16 +173,46 @@ static const uint8_t PROGMEM overlays[][MATRIX_ROWS][MATRIX_COLS] = {
178 LCTL,TRNS,ACL0,ACL1,ACL2,TRNS,MS_L,MS_D,MS_U,MS_R,TRNS,TRNS, ENT, \ 173 LCTL,TRNS,ACL0,ACL1,ACL2,TRNS,MS_L,MS_D,MS_U,MS_R,TRNS,TRNS, ENT, \
179 LSFT,TRNS,TRNS,TRNS,TRNS,BTN3,BTN2,BTN1,BTN4,BTN5,TRNS, RSFT, \ 174 LSFT,TRNS,TRNS,TRNS,TRNS,BTN3,BTN2,BTN1,BTN4,BTN5,TRNS, RSFT, \
180 LCTL,LGUI,LALT, BTN1, TRNS,TRNS,TRNS,RCTL), 175 LCTL,LGUI,LALT, BTN1, TRNS,TRNS,TRNS,RCTL),
176 /* Overlay 7: Layout selector
177 * ,-----------------------------------------------------------.
178 * | Lq| Lc| Ld| Lw| | | | | | | | | | |
179 * |-----------------------------------------------------------|
180 * | |Lq |Lw | | | | | | | | | | | |
181 * |-----------------------------------------------------------|
182 * | | | |Ld | | | | | | | | | |
183 * |-----------------------------------------------------------|
184 * | | | |Lc | | | | | | | | |
185 * |-----------------------------------------------------------|
186 * | | | | | | | | |
187 * `-----------------------------------------------------------'
188 * Lq: set Qwerty layout
189 * Lc: set Colemak layout
190 * Ld: set Dvorak layout
191 * Lw: set Workman layout
192 */
193 KEYMAP_ANSI(
194 FN5, FN6, FN7, FN8, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
195 TRNS,FN5, FN8, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
196 TRNS,TRNS,TRNS,FN7, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
197 TRNS,TRNS,TRNS,FN6, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
198 TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS),
181}; 199};
182 200
201static const uint8_t PROGMEM overlays[][MATRIX_ROWS][MATRIX_COLS] = {};
202
183/* 203/*
184 * Fn action definition 204 * Fn action definition
185 */ 205 */
186static const uint16_t PROGMEM fn_actions[] = { 206static const uint16_t PROGMEM fn_actions[] = {
187 ACTION_OVERLAY_TAP_TOGGLE(0), // FN0 207 [0] = ACTION_KEYMAP(4), // FN0
188 ACTION_OVERLAY_TAP_KEY(1, KC_SLASH), // FN1 208 [1] = ACTION_KEYMAP_TAP_KEY(5, KC_SLASH), // FN1
189 ACTION_OVERLAY_TAP_KEY(2, KC_SCLN), // FN2 209 [2] = ACTION_KEYMAP_TAP_KEY(6, KC_SCLN), // FN2
190 ACTION_OVERLAY(2), // FN3 210 [3] = ACTION_KEYMAP(6), // FN3
211 [4] = ACTION_KEYMAP(7), // to Layout selector
212 [5] = ACTION_SET_DEFAULT_LAYER(0), // set qwerty layout
213 [6] = ACTION_SET_DEFAULT_LAYER(1), // set colemak layout
214 [7] = ACTION_SET_DEFAULT_LAYER(2), // set dvorak layout
215 [8] = ACTION_SET_DEFAULT_LAYER(3), // set workman layout
191}; 216};
192#endif 217#endif
193 218