diff options
| -rw-r--r-- | README.md | 2 | ||||
| -rw-r--r-- | common/action.c | 6 | ||||
| -rw-r--r-- | keyboard/gh60/keymap.c | 55 |
3 files changed, 41 insertions, 22 deletions
| @@ -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 | ||
| 475 | You can define **16 layers** at most in each keymaps[] and overlays[]. | 475 | You 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 | ||
| 119 | static 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 | ||
| 201 | static const uint8_t PROGMEM overlays[][MATRIX_ROWS][MATRIX_COLS] = {}; | ||
| 202 | |||
| 183 | /* | 203 | /* |
| 184 | * Fn action definition | 204 | * Fn action definition |
| 185 | */ | 205 | */ |
| 186 | static const uint16_t PROGMEM fn_actions[] = { | 206 | static 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 | ||
