diff options
Diffstat (limited to 'keyboard/hhkb/keymap.c')
| -rw-r--r-- | keyboard/hhkb/keymap.c | 195 |
1 files changed, 84 insertions, 111 deletions
diff --git a/keyboard/hhkb/keymap.c b/keyboard/hhkb/keymap.c index ef21282ff..094d33af1 100644 --- a/keyboard/hhkb/keymap.c +++ b/keyboard/hhkb/keymap.c | |||
| @@ -56,18 +56,18 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 56 | * |-----------------------------------------------------------| | 56 | * |-----------------------------------------------------------| |
| 57 | * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Backs| | 57 | * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Backs| |
| 58 | * |-----------------------------------------------------------| | 58 | * |-----------------------------------------------------------| |
| 59 | * |Fn6 | A| S| D| F| G| H| J| K| L|Fn3| '|Return | | 59 | * |Contro| A| S| D| F| G| H| J| K| L|Fn3| '|Fn4 | |
| 60 | * |-----------------------------------------------------------| | 60 | * |-----------------------------------------------------------| |
| 61 | * |Fn8 | Z| X| C| V| B| N| M| ,| .|Fn2|Fn12 |Fn1| | 61 | * |Fn5 | Z| X| C| V| B| N| M| ,| .|Fn2|Shift |Fn1| |
| 62 | * `-----------------------------------------------------------' | 62 | * `-----------------------------------------------------------' |
| 63 | * |Gui|Alt | Fn5 |Alt |Fn4| | 63 | * |Gui|Alt | Fn6 |Alt |Fn7| |
| 64 | * `-------------------------------------------' | 64 | * `-------------------------------------------' |
| 65 | */ | 65 | */ |
| 66 | KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSLS,GRV, \ | 66 | KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSLS,GRV, \ |
| 67 | TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSPC, \ | 67 | TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSPC, \ |
| 68 | FN6, A, S, D, F, G, H, J, K, L, FN3, QUOT,FN7, \ | 68 | LCTL,A, S, D, F, G, H, J, K, L, FN3, QUOT,FN4, \ |
| 69 | FN8, Z, X, C, V, B, N, M, COMM,DOT, FN2, FN12,FN9, \ | 69 | FN5,Z, X, C, V, B, N, M, COMM,DOT, FN2, RSFT,FN1, \ |
| 70 | LGUI,LALT, FN5, FN13,FN4), | 70 | LGUI,LALT, FN6, RALT,FN7), |
| 71 | 71 | ||
| 72 | /* Layer 1: HHKB mode (HHKB Fn) | 72 | /* Layer 1: HHKB mode (HHKB Fn) |
| 73 | * ,-----------------------------------------------------------. | 73 | * ,-----------------------------------------------------------. |
| @@ -77,15 +77,15 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 77 | * |-----------------------------------------------------------| | 77 | * |-----------------------------------------------------------| |
| 78 | * |Contro|VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig|Enter | | 78 | * |Contro|VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig|Enter | |
| 79 | * |-----------------------------------------------------------| | 79 | * |-----------------------------------------------------------| |
| 80 | * |Shift | | | | | | +| -|End|PgD|Dow|Shift |Fn0| | 80 | * |Shift | | | | | | +| -|End|PgD|Dow|Shift | | |
| 81 | * `-----------------------------------------------------------' | 81 | * `-----------------------------------------------------------' |
| 82 | * |Gui|Alt | Space |Alt |Gui| | 82 | * |Gui|Alt | Space |Alt |Gui| |
| 83 | * `-------------------------------------------' | 83 | * `-------------------------------------------' |
| 84 | */ | 84 | */ |
| 85 | KEYMAP(PWR, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ | 85 | KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ |
| 86 | CAPS,NO, NO, NO, NO, NO, NO, NO, PSCR,SLCK,PAUS, UP, NO, BSPC, \ | 86 | CAPS,NO, NO, NO, NO, NO, NO, NO, PSCR,SLCK,PAUS, UP, NO, BSPC, \ |
| 87 | LCTL,VOLD,VOLU,MUTE,NO, NO, PAST,PSLS,HOME,PGUP,LEFT,RGHT,ENT, \ | 87 | LCTL,VOLD,VOLU,MUTE,NO, NO, PAST,PSLS,HOME,PGUP,LEFT,RGHT,ENT, \ |
| 88 | LSFT,NO, NO, NO, NO, NO, PPLS,PMNS,END, PGDN,DOWN,RSFT,FN0, \ | 88 | LSFT,NO, NO, NO, NO, NO, PPLS,PMNS,END, PGDN,DOWN,RSFT,TRNS, \ |
| 89 | LGUI,LALT, SPC, RALT,RGUI), | 89 | LGUI,LALT, SPC, RALT,RGUI), |
| 90 | 90 | ||
| 91 | /* Layer 2: Vi mode (Slash) | 91 | /* Layer 2: Vi mode (Slash) |
| @@ -101,10 +101,10 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 101 | * |Gui|Alt | Space |Alt |Gui| | 101 | * |Gui|Alt | Space |Alt |Gui| |
| 102 | * `-------------------------------------------' | 102 | * `-------------------------------------------' |
| 103 | */ | 103 | */ |
| 104 | KEYMAP(ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ | 104 | KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ |
| 105 | TAB, HOME,PGDN,UP, PGUP,END, HOME,PGDN,PGUP,END, NO, NO, NO, BSPC, \ | 105 | TAB, HOME,PGDN,UP, PGUP,END, HOME,PGDN,PGUP,END, NO, NO, NO, BSPC, \ |
| 106 | LCTL,NO, LEFT,DOWN,RGHT,NO, LEFT,DOWN,UP, RGHT,NO, NO, ENT, \ | 106 | LCTL,NO, LEFT,DOWN,RGHT,NO, LEFT,DOWN,UP, RGHT,NO, NO, ENT, \ |
| 107 | LSFT,NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, FN0, RSFT,NO, \ | 107 | LSFT,NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, TRNS,RSFT,NO, \ |
| 108 | LGUI,LALT, SPC, RALT,RGUI), | 108 | LGUI,LALT, SPC, RALT,RGUI), |
| 109 | 109 | ||
| 110 | /* Layer 3: Mouse mode (Semicolon) | 110 | /* Layer 3: Mouse mode (Semicolon) |
| @@ -121,13 +121,13 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 121 | * `--------------------------------------------' | 121 | * `--------------------------------------------' |
| 122 | * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel | 122 | * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel |
| 123 | */ | 123 | */ |
| 124 | KEYMAP(ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ | 124 | KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ |
| 125 | TAB, NO, NO, NO, NO, NO, WH_L,WH_D,WH_U,WH_R,NO, NO, NO, BSPC, \ | 125 | TAB, NO, NO, NO, NO, NO, WH_L,WH_D,WH_U,WH_R,NO, NO, NO, BSPC, \ |
| 126 | LCTL,NO, ACL0,ACL1,ACL2,NO, MS_L,MS_D,MS_U,MS_R,FN0, QUOT,ENT, \ | 126 | LCTL,NO, ACL0,ACL1,ACL2,NO, MS_L,MS_D,MS_U,MS_R,TRNS,QUOT,ENT, \ |
| 127 | LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,BTN4,BTN5,SLSH,RSFT,NO, \ | 127 | LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,BTN4,BTN5,SLSH,RSFT,NO, \ |
| 128 | LGUI,LALT, BTN1, RALT,FN0), | 128 | LGUI,LALT, BTN1, RALT,TRNS), |
| 129 | 129 | ||
| 130 | /* Layer 4: Matias half keyboard style (Space) | 130 | /* Layer 4: Matias half-qwerty keyboard style (Space) |
| 131 | * ,-----------------------------------------------------------. | 131 | * ,-----------------------------------------------------------. |
| 132 | * | -| 0| 9| 8| 7| 6| 5| 4| 3| 2| 1| | | |Esc| | 132 | * | -| 0| 9| 8| 7| 6| 5| 4| 3| 2| 1| | | |Esc| |
| 133 | * |-----------------------------------------------------------| | 133 | * |-----------------------------------------------------------| |
| @@ -144,7 +144,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 144 | BSPC,P, O, I, U, Y, T, R, E, W, Q, NO, NO, TAB, \ | 144 | BSPC,P, O, I, U, Y, T, R, E, W, Q, NO, NO, TAB, \ |
| 145 | LCTL,SCLN,L, K, J, H, G, F, D, S, A, RCTL,RCTL, \ | 145 | LCTL,SCLN,L, K, J, H, G, F, D, S, A, RCTL,RCTL, \ |
| 146 | LSFT,SLSH,DOT, COMM,M, N, B, V, C, X, Z, RSFT,NO, \ | 146 | LSFT,SLSH,DOT, COMM,M, N, B, V, C, X, Z, RSFT,NO, \ |
| 147 | LGUI,LALT, FN0, RALT,RGUI), | 147 | LGUI,LALT, TRNS, RALT,RGUI), |
| 148 | 148 | ||
| 149 | /* Layer5: another Mouse mode (Space) | 149 | /* Layer5: another Mouse mode (Space) |
| 150 | * ,-----------------------------------------------------------. | 150 | * ,-----------------------------------------------------------. |
| @@ -164,7 +164,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 164 | TAB, NO, NO, NO, NO, NO, WH_L,WH_D,WH_U,WH_R,NO, NO, NO, BSPC, \ | 164 | TAB, NO, NO, NO, NO, NO, WH_L,WH_D,WH_U,WH_R,NO, NO, NO, BSPC, \ |
| 165 | LCTL,NO, ACL0,ACL1,ACL2,NO, MS_L,MS_D,MS_U,MS_R,NO, NO, ENT, \ | 165 | LCTL,NO, ACL0,ACL1,ACL2,NO, MS_L,MS_D,MS_U,MS_R,NO, NO, ENT, \ |
| 166 | LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,BTN4,BTN5,NO, RSFT,NO, \ | 166 | LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,BTN4,BTN5,NO, RSFT,NO, \ |
| 167 | LGUI,LALT, FN0, RALT,RGUI), | 167 | LGUI,LALT, TRNS, RALT,RGUI), |
| 168 | }; | 168 | }; |
| 169 | 169 | ||
| 170 | 170 | ||
| @@ -173,56 +173,72 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 173 | enum function_id { | 173 | enum function_id { |
| 174 | LSHIFT_LPAREN, | 174 | LSHIFT_LPAREN, |
| 175 | RSHIFT_RPAREN, | 175 | RSHIFT_RPAREN, |
| 176 | MACRO = 0xff | 176 | }; |
| 177 | |||
| 178 | enum macro_id { | ||
| 179 | LSHIFT_PAREN, | ||
| 180 | RSHIFT_PAREN, | ||
| 181 | HELLO, | ||
| 177 | }; | 182 | }; |
| 178 | 183 | ||
| 179 | 184 | ||
| 180 | /* | 185 | /* |
| 181 | * Fn action definition | 186 | * Fn action definition |
| 182 | */ | 187 | */ |
| 183 | // TODO: use [1] = KEYMAP(...) to prevent from changing index of element? | ||
| 184 | static const uint16_t PROGMEM fn_actions[] = { | 188 | static const uint16_t PROGMEM fn_actions[] = { |
| 185 | ACTION_LAYER_DEFAULT, // FN0 | 189 | [0] = ACTION_DEFAULT_LAYER, // Default layer(not used) |
| 186 | ACTION_LAYER_SET(1), // FN1 | 190 | // [1] = ACTION_KEYMAP(1), // HHKB layer |
| 187 | ACTION_LAYER_SET_TAP_KEY(2, KC_SLASH), // FN2 Layer with Slash | 191 | [1] = ACTION_KEYMAP_TAP_TOGGLE(1), // HHKB layer(toggle with 5 taps) |
| 188 | ACTION_LAYER_SET_TAP_KEY(3, KC_SCLN), // FN3 Layer with Semicolon | 192 | [2] = ACTION_KEYMAP_TAP_KEY(2, KC_SLASH), // Cursor layer with Slash* |
| 193 | [3] = ACTION_KEYMAP_TAP_KEY(3, KC_SCLN), // Mousekey layer with Semicolon* | ||
| 194 | [4] = ACTION_RMOD_TAP_KEY(KC_RCTL, KC_ENT), // RControl with tap Enter* | ||
| 195 | [5] = ACTION_LMOD_ONESHOT(KC_LSFT), // Oneshot Shift* | ||
| 196 | // [6] = ACTION_KEYMAP_TAP_KEY(4, KC_SPC), // Half-qwerty layer with Space | ||
| 197 | [6] = ACTION_KEYMAP_TAP_KEY(5, KC_SPC), // Mousekey layer with Space | ||
| 198 | // [7] = ACTION_KEYMAP(3), // Mousekey layer | ||
| 199 | [7] = ACTION_KEYMAP_TOGGLE(3), // Mousekey layer(toggle) | ||
| 189 | 200 | ||
| 190 | ACTION_LAYER_SET(3), // FN4 | 201 | // [8] = ACTION_LMOD_TAP_KEY(KC_LCTL, KC_BSPC), // LControl with tap Backspace |
| 191 | // ACTION_LAYER_SET_TOGGLE(3), // FN4 | 202 | // [9] = ACTION_LMOD_TAP_KEY(KC_LCTL, KC_ESC), // LControl with tap Esc |
| 192 | // ACTION_FUNCTION(MACRO, 0), // FN4 | 203 | // [11] = ACTION_FUNCTION_TAP(LSHIFT_LPAREN), // Function: LShift with tap '(' |
| 193 | ACTION_LAYER_SET_TAP_KEY(5, KC_SPC), // FN5 | 204 | // [12] = ACTION_FUNCTION_TAP(RSHIFT_RPAREN), // Function: RShift with tap ')' |
| 194 | // ACTION_LMOD_TAP_KEY(KC_LCTL, KC_BSPC), // FN6 Control with tap Backspace | 205 | // [13] = ACTION_MACRO_TAP(LSHIFT_PAREN), // Macro: LShift with tap '(' |
| 195 | ACTION_LMOD_TAP_KEY(KC_LCTL, KC_ESC), // FN6 Control with tap Backspace | 206 | // [14] = ACTION_MACRO_TAP(RSHIFT_PAREN), // Macro: RShift with tap ')' |
| 196 | ACTION_RMOD_TAP_KEY(KC_RCTL, KC_ENT), // FN7 Control with tap Enter | 207 | // [15] = ACTION_MACRO(HELLO), // Macro: say hello |
| 197 | ACTION_LMOD_ONESHOT(KC_LSFT), // FN8 Oneshot Shift | ||
| 198 | ACTION_LAYER_SET_TAP_TOGGLE(1), // FN9 | ||
| 199 | ACTION_LAYER_BIT_TAP_KEY(1, KC_GRV), // FN10 Layer with Grave | ||
| 200 | //ACTION_LAYER_BIT(1), // FN10 | ||
| 201 | //ACTION_LAYER_BIT_TAP_TOGGLE(1), // FN10 | ||
| 202 | ACTION_FUNCTION_TAP(LSHIFT_LPAREN), // FN11 Function: LShift with tap '(' | ||
| 203 | ACTION_FUNCTION_TAP(RSHIFT_RPAREN), // FN12 Function: RShift with tap ')' | ||
| 204 | ACTION_FUNCTION(MACRO, 1), // FN13 Macro: | ||
| 205 | }; | 208 | }; |
| 206 | 209 | ||
| 207 | 210 | ||
| 208 | /* | 211 | /* |
| 209 | * Macro definition | 212 | * Macro definition |
| 210 | */ | 213 | */ |
| 211 | #define MACRO(...) ({ static prog_macro_t _m[] PROGMEM = { __VA_ARGS__ }; _m; }) | 214 | const prog_macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) |
| 212 | #define MACRO_NONE 0 | ||
| 213 | static const prog_macro_t *get_macro(uint8_t id, bool pressed) | ||
| 214 | { | 215 | { |
| 216 | keyevent_t event = record->event; | ||
| 217 | tap_t tap = record->tap; | ||
| 218 | |||
| 215 | switch (id) { | 219 | switch (id) { |
| 216 | case 0: | 220 | case LSHIFT_PAREN: |
| 217 | return (pressed ? | 221 | if (tap.count > 0 && !tap.interrupted) { |
| 218 | MACRO( MD(LSHIFT), D(D), END ) : | 222 | return (event.pressed ? |
| 219 | MACRO( U(D), MU(LSHIFT), END ) ); | 223 | MACRO( MD(LSHIFT), D(9), U(9), MU(LSHIFT), END ) : MACRO_NONE); |
| 220 | case 1: | 224 | } else { |
| 221 | return (pressed ? | 225 | return (event.pressed ? |
| 222 | MACRO( I(255), T(H), T(E), T(L), T(L), W(255), T(O), END ) : | 226 | MACRO( MD(LSHIFT), END ) : MACRO( MU(LSHIFT), END ) ); |
| 227 | } | ||
| 228 | case RSHIFT_PAREN: | ||
| 229 | if (tap.count > 0 && !tap.interrupted) { | ||
| 230 | return (event.pressed ? | ||
| 231 | MACRO( MD(RSHIFT), D(0), U(0), MU(RSHIFT), END ) : MACRO_NONE); | ||
| 232 | } else { | ||
| 233 | return (event.pressed ? | ||
| 234 | MACRO( MD(RSHIFT), END ) : MACRO( MU(RSHIFT), END ) ); | ||
| 235 | } | ||
| 236 | case HELLO: | ||
| 237 | return (event.pressed ? | ||
| 238 | MACRO( I(0), T(H), T(E), T(L), T(L), W(255), T(O), END ) : | ||
| 223 | MACRO_NONE ); | 239 | MACRO_NONE ); |
| 224 | } | 240 | } |
| 225 | return 0; | 241 | return MACRO_NONE; |
| 226 | } | 242 | } |
| 227 | 243 | ||
| 228 | 244 | ||
| @@ -230,82 +246,51 @@ static const prog_macro_t *get_macro(uint8_t id, bool pressed) | |||
| 230 | /* | 246 | /* |
| 231 | * user defined action function | 247 | * user defined action function |
| 232 | */ | 248 | */ |
| 233 | void keymap_call_function(keyrecord_t *record, uint8_t id, uint8_t opt) | 249 | void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) |
| 234 | { | 250 | { |
| 235 | keyevent_t event = record->event; | 251 | keyevent_t event = record->event; |
| 236 | uint8_t tap_count = record->tap_count; | 252 | tap_t tap = record->tap; |
| 237 | |||
| 238 | debug("action_call_function: "); | ||
| 239 | if (event.pressed) debug("pressed"); else debug("released"); | ||
| 240 | debug(" id: "); debug_hex(id); | ||
| 241 | debug(" tap_count: "); debug_dec(tap_count); | ||
| 242 | debug("\n"); | ||
| 243 | 253 | ||
| 244 | switch (id) { | 254 | switch (id) { |
| 245 | case LSHIFT_LPAREN: | 255 | case LSHIFT_LPAREN: |
| 246 | // LShft + tap '(' | 256 | // LShft + tap '(' |
| 257 | // NOTE: cant use register_code to avoid conflicting with magic key bind | ||
| 247 | if (event.pressed) { | 258 | if (event.pressed) { |
| 248 | if (tap_count == 0) { | 259 | if (tap.count == 0 || tap.interrupted) { |
| 249 | add_mods(MOD_BIT(KC_LSHIFT)); | 260 | add_mods(MOD_BIT(KC_LSHIFT)); |
| 250 | } else { | 261 | } else { |
| 251 | if (waiting_buffer_has_anykey_pressed()) { | 262 | host_add_mods(MOD_BIT(KC_LSHIFT)); |
| 252 | // ad hoc: set 0 to cancel tap | 263 | host_add_key(KC_9); |
| 253 | record->tap_count = 0; | 264 | host_send_keyboard_report(); |
| 254 | add_mods(MOD_BIT(KC_LSHIFT)); | ||
| 255 | } else { | ||
| 256 | // NOTE to avoid conflicting command key bind(LShift+RShift) | ||
| 257 | //register_code(KC_LSHIFT); | ||
| 258 | //register_code(KC_9); | ||
| 259 | host_add_mods(MOD_BIT(KC_LSHIFT)); | ||
| 260 | host_add_key(KC_9); | ||
| 261 | host_send_keyboard_report(); | ||
| 262 | } | ||
| 263 | } | ||
| 264 | } else { | ||
| 265 | if (tap_count == 0) { | ||
| 266 | del_mods(MOD_BIT(KC_LSHIFT)); | ||
| 267 | } else { | ||
| 268 | //unregister_code(KC_9); | ||
| 269 | //unregister_code(KC_LSHIFT); | ||
| 270 | host_del_mods(MOD_BIT(KC_LSHIFT)); | 265 | host_del_mods(MOD_BIT(KC_LSHIFT)); |
| 271 | host_del_key(KC_9); | 266 | host_del_key(KC_9); |
| 272 | host_send_keyboard_report(); | 267 | host_send_keyboard_report(); |
| 273 | } | 268 | } |
| 269 | } else { | ||
| 270 | if (tap.count == 0 || tap.interrupted) { | ||
| 271 | del_mods(MOD_BIT(KC_LSHIFT)); | ||
| 272 | } | ||
| 274 | } | 273 | } |
| 275 | break; | 274 | break; |
| 276 | case RSHIFT_RPAREN: | 275 | case RSHIFT_RPAREN: |
| 277 | // RShift + tap ')' | 276 | // RShift + tap ')' |
| 278 | if (event.pressed) { | 277 | if (event.pressed) { |
| 279 | if (tap_count == 0) { | 278 | if (tap.count == 0 || tap.interrupted) { |
| 280 | add_mods(MOD_BIT(KC_RSHIFT)); | 279 | add_mods(MOD_BIT(KC_RSHIFT)); |
| 281 | } else { | 280 | } else { |
| 282 | if (waiting_buffer_has_anykey_pressed()) { | 281 | host_add_mods(MOD_BIT(KC_RSHIFT)); |
| 283 | // ad hoc: set 0 to cancel tap | 282 | host_add_key(KC_0); |
| 284 | record->tap_count = 0; | 283 | host_send_keyboard_report(); |
| 285 | add_mods(MOD_BIT(KC_RSHIFT)); | ||
| 286 | } else { | ||
| 287 | //register_code(KC_RSHIFT); | ||
| 288 | //register_code(KC_0); | ||
| 289 | host_add_mods(MOD_BIT(KC_RSHIFT)); | ||
| 290 | host_add_key(KC_0); | ||
| 291 | host_send_keyboard_report(); | ||
| 292 | } | ||
| 293 | } | ||
| 294 | } else { | ||
| 295 | if (tap_count == 0) { | ||
| 296 | del_mods(MOD_BIT(KC_RSHIFT)); | ||
| 297 | } else { | ||
| 298 | //unregister_code(KC_0); | ||
| 299 | //unregister_code(KC_RSHIFT); | ||
| 300 | host_del_mods(MOD_BIT(KC_RSHIFT)); | 284 | host_del_mods(MOD_BIT(KC_RSHIFT)); |
| 301 | host_del_key(KC_0); | 285 | host_del_key(KC_0); |
| 302 | host_send_keyboard_report(); | 286 | host_send_keyboard_report(); |
| 303 | } | 287 | } |
| 288 | } else { | ||
| 289 | if (tap.count == 0 || tap.interrupted) { | ||
| 290 | del_mods(MOD_BIT(KC_RSHIFT)); | ||
| 291 | } | ||
| 304 | } | 292 | } |
| 305 | break; | 293 | break; |
| 306 | case MACRO: | ||
| 307 | action_macro_play(get_macro(opt, event.pressed)); | ||
| 308 | break; | ||
| 309 | } | 294 | } |
| 310 | } | 295 | } |
| 311 | 296 | ||
| @@ -328,15 +313,3 @@ action_t keymap_fn_to_action(uint8_t keycode) | |||
| 328 | } | 313 | } |
| 329 | return action; | 314 | return action; |
| 330 | } | 315 | } |
| 331 | |||
| 332 | /* convert key to action */ | ||
| 333 | action_t action_for_key(uint8_t layer, key_t key) | ||
| 334 | { | ||
| 335 | uint8_t keycode = keymap_key_to_keycode(layer, key); | ||
| 336 | switch (keycode) { | ||
| 337 | case KC_FN0 ... KC_FN31: | ||
| 338 | return keymap_fn_to_action(keycode); | ||
| 339 | default: | ||
| 340 | return keymap_keycode_to_action(keycode); | ||
| 341 | } | ||
| 342 | } | ||
