diff options
Diffstat (limited to 'keyboards')
| -rw-r--r-- | keyboards/atreus/keymaps/erlandsona/keymap.c | 15 | ||||
| -rw-r--r-- | keyboards/atreus/keymaps/khitsule/keymap.c | 24 | ||||
| -rw-r--r-- | keyboards/bpiphany/kitten_paw/keymaps/ickerwx/keymap.c | 154 | ||||
| -rw-r--r-- | keyboards/clueboard/66/keymaps/magicmonty/keymap.c | 30 | ||||
| -rw-r--r-- | keyboards/clueboard/66/keymaps/tetris/keymap.c | 126 | ||||
| -rw-r--r-- | keyboards/gh60/revc/keymaps/dbroqua_7U/keymap.c | 33 | ||||
| -rw-r--r-- | keyboards/infinity60/keymaps/jpetermans/keymap.c | 101 | ||||
| -rw-r--r-- | keyboards/whitefox/keymaps/kim-kim/keymap.c | 15 | ||||
| -rw-r--r-- | keyboards/whitefox/keymaps/matt3o/keymap.c | 60 |
9 files changed, 206 insertions, 352 deletions
diff --git a/keyboards/atreus/keymaps/erlandsona/keymap.c b/keyboards/atreus/keymaps/erlandsona/keymap.c index 151288edc..c261e892d 100644 --- a/keyboards/atreus/keymaps/erlandsona/keymap.c +++ b/keyboards/atreus/keymaps/erlandsona/keymap.c | |||
| @@ -1,6 +1,3 @@ | |||
| 1 | // this is the style you want to emulate. | ||
| 2 | // This is the canonical layout file for the Quantum project. If you want to add another keyboard, | ||
| 3 | |||
| 4 | #include QMK_KEYBOARD_H | 1 | #include QMK_KEYBOARD_H |
| 5 | 2 | ||
| 6 | // Each layer gets a name for readability, which is then used in the keymap matrix below. | 3 | // Each layer gets a name for readability, which is then used in the keymap matrix below. |
| @@ -23,21 +20,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 23 | KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_LPRN, KC_RPRN, KC_MINS, KC_EQL , KC_LBRC, | 20 | KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_LPRN, KC_RPRN, KC_MINS, KC_EQL , KC_LBRC, |
| 24 | KC_TAB , KC_5 , KC_6 , KC_7 , KC_8 , KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, KC_RBRC, | 21 | KC_TAB , KC_5 , KC_6 , KC_7 , KC_8 , KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, KC_RBRC, |
| 25 | _______, KC_9 , KC_0 , KC_DOT , KC_COMM, KC_HOME, KC_PGDN, KC_PGUP, KC_END , _______, | 22 | _______, KC_9 , KC_0 , KC_DOT , KC_COMM, KC_HOME, KC_PGDN, KC_PGUP, KC_END , _______, |
| 26 | _______, _______, _______, _______, KC_DEL , F(MOUS), _______, _______, _______, _______, _______, _______ | 23 | _______, _______, _______, _______, KC_DEL , TG(MOUS), _______, _______, _______, _______, _______, _______ |
| 27 | ), | 24 | ), |
| 28 | 25 | ||
| 29 | [MOUS] = LAYOUT( /* Mouse and Media Keys */ | 26 | [MOUS] = LAYOUT( /* Mouse and Media Keys */ |
| 30 | KC_SLCK, KC_PAUSE, KC_F11 , KC_F10 , KC_F9 , KC_F8 , KC_F7 , KC_F6 , KC_F5 , KC_F4, | 27 | KC_SLCK, KC_PAUSE, KC_F11 , KC_F10 , KC_F9 , KC_F8 , KC_F7 , KC_F6 , KC_F5 , KC_F4, |
| 31 | KC_VOLD, KC_ACL0 , KC_ACL1, KC_ACL2, KC_VOLU, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_F3, | 28 | KC_VOLD, KC_ACL0 , KC_ACL1, KC_ACL2, KC_VOLU, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_F3, |
| 32 | KC_MUTE, KC_MPRV , KC_MPLY, KC_MNXT, KC_MUTE, KC_WH_R, KC_WH_U, KC_WH_D, KC_WH_L, KC_F2, | 29 | KC_MUTE, KC_MPRV , KC_MPLY, KC_MNXT, KC_MUTE, KC_WH_R, KC_WH_U, KC_WH_D, KC_WH_L, KC_F2, |
| 33 | _______, _______ , _______, _______, _______, _______, _______, KC_BTN1, F(BASE), RESET , KC_F12 , KC_F1 | 30 | _______, _______ , _______, _______, _______, _______, _______, KC_BTN1, TO(BASE), RESET , KC_F12 , KC_F1 |
| 34 | ), | 31 | ), |
| 35 | }; | 32 | }; |
| 36 | |||
| 37 | |||
| 38 | // I prefer this layer switching strategy to the TG and MO functions. | ||
| 39 | // so that I can get out of mouse mode just by tapping/holding my base layer FN key. | ||
| 40 | const uint16_t PROGMEM fn_actions[] = { | ||
| 41 | [BASE] = ACTION_LAYER_OFF(2, 1), // switch back to layer 0 | ||
| 42 | [MOUS] = ACTION_LAYER_ON(2, 1) // switch to layer 2 | ||
| 43 | }; | ||
diff --git a/keyboards/atreus/keymaps/khitsule/keymap.c b/keyboards/atreus/keymaps/khitsule/keymap.c index e6a536691..1190efa3c 100644 --- a/keyboards/atreus/keymaps/khitsule/keymap.c +++ b/keyboards/atreus/keymaps/khitsule/keymap.c | |||
| @@ -16,12 +16,6 @@ enum layers { | |||
| 16 | #define KM_DRIGHT LGUI(LCTL(KC_RIGHT)) | 16 | #define KM_DRIGHT LGUI(LCTL(KC_RIGHT)) |
| 17 | #define TSKMGR LCTL(LSFT(KC_ESC)) | 17 | #define TSKMGR LCTL(LSFT(KC_ESC)) |
| 18 | 18 | ||
| 19 | #define tap_mod_macro(record, mod, macro) ( ((record)->event.pressed) ? \ | ||
| 20 | ( ((record)->tap.count <= 0 || (record)->tap.interrupted) ? MACRO(D(mod), END) : MACRO_NONE ) : \ | ||
| 21 | ( ((record)->tap.count > 0 && !((record)->tap.interrupted)) ? (macro) : MACRO(U(mod), END) ) ) | ||
| 22 | |||
| 23 | |||
| 24 | |||
| 25 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 19 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
| 26 | [ALPH] = LAYOUT( | 20 | [ALPH] = LAYOUT( |
| 27 | KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, | 21 | KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, |
| @@ -54,21 +48,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 54 | RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS | 48 | RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS |
| 55 | ) | 49 | ) |
| 56 | }; | 50 | }; |
| 57 | |||
| 58 | const uint16_t PROGMEM fn_actions[] = { | ||
| 59 | [1] = ACTION_MACRO_TAP(1), | ||
| 60 | [2] = ACTION_MACRO_TAP(2) | ||
| 61 | }; | ||
| 62 | |||
| 63 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { | ||
| 64 | switch(id) { | ||
| 65 | case 1: | ||
| 66 | return tap_mod_macro(record, LGUI, MACRO( D(LSFT), T(9), U(LSFT), END)); | ||
| 67 | break; | ||
| 68 | case 2: | ||
| 69 | return tap_mod_macro(record, LALT, MACRO( D(LSFT), T(0), U(LSFT), END)); | ||
| 70 | break; | ||
| 71 | |||
| 72 | } | ||
| 73 | return MACRO_NONE; | ||
| 74 | }; | ||
diff --git a/keyboards/bpiphany/kitten_paw/keymaps/ickerwx/keymap.c b/keyboards/bpiphany/kitten_paw/keymaps/ickerwx/keymap.c index e2b56132b..cc4d0bca6 100644 --- a/keyboards/bpiphany/kitten_paw/keymaps/ickerwx/keymap.c +++ b/keyboards/bpiphany/kitten_paw/keymaps/ickerwx/keymap.c | |||
| @@ -1,12 +1,6 @@ | |||
| 1 | #include QMK_KEYBOARD_H | 1 | #include QMK_KEYBOARD_H |
| 2 | #include "mousekey.h" | 2 | #include "mousekey.h" |
| 3 | 3 | ||
| 4 | #undef C | ||
| 5 | #undef S | ||
| 6 | #define C(kc) LCTL(KC_##kc) | ||
| 7 | #define S(kc) LSFT(KC_##kc) | ||
| 8 | #define RA(kc) RALT(KC_##kc) | ||
| 9 | #define KC_SLCT KC_SELECT | ||
| 10 | #define MEDAPP LT(MEDIA, KC_APP) | 4 | #define MEDAPP LT(MEDIA, KC_APP) |
| 11 | 5 | ||
| 12 | uint8_t current_layer_global = 255; | 6 | uint8_t current_layer_global = 255; |
| @@ -21,19 +15,16 @@ enum layers { | |||
| 21 | MISC, | 15 | MISC, |
| 22 | }; | 16 | }; |
| 23 | 17 | ||
| 24 | enum function_id { | 18 | enum custom_keycodes { |
| 25 | LSHFT_PAREN, | 19 | LSHFT_PAREN = SAFE_RANGE, |
| 26 | RSHFT_PAREN, | 20 | RSHFT_PAREN, |
| 27 | LCTRL_BRACKET, | 21 | LCTRL_BRACKET, |
| 28 | RCTRL_BRACKET, | 22 | RCTRL_BRACKET, |
| 29 | LALT_CURLY, | 23 | LALT_CURLY, |
| 30 | RALT_CURLY, | 24 | RALT_CURLY, |
| 31 | CTRL_CLICK | 25 | CTRL_CLICK, |
| 32 | }; | 26 | M_GRV, |
| 33 | 27 | M_CFLEX | |
| 34 | enum macro_id { | ||
| 35 | GRV, | ||
| 36 | CFLEX | ||
| 37 | }; | 28 | }; |
| 38 | 29 | ||
| 39 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 30 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
| @@ -42,25 +33,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 42 | KC_GRV, 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_BSPC, KC_INS,KC_HOME,KC_PGUP, KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS, \ | 33 | KC_GRV, 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_BSPC, KC_INS,KC_HOME,KC_PGUP, KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS, \ |
| 43 | 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, KC_DEL, KC_END,KC_PGDN, KC_P7, KC_P8, KC_P9,KC_PPLS, \ | 34 | 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, KC_DEL, KC_END,KC_PGDN, KC_P7, KC_P8, KC_P9,KC_PPLS, \ |
| 44 | TT(MOUSE1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L,KC_SCLN,KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, \ | 35 | TT(MOUSE1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L,KC_SCLN,KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, \ |
| 45 | F(8),KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM, KC_DOT,KC_SLSH, F(9), KC_UP, KC_P1, KC_P2, KC_P3,KC_PENT, \ | 36 | LSHFT_PAREN,KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM, KC_DOT,KC_SLSH, RSHFT_PAREN, KC_UP, KC_P1, KC_P2, KC_P3,KC_PENT, \ |
| 46 | F(1),KC_LGUI, F(3), LT(MISC, KC_SPC), F(4),TT(PROG1), MEDAPP, F(2), KC_LEFT,KC_DOWN,KC_RGHT, KC_P0,KC_PDOT), | 37 | LCTRL_BRACKET,KC_LGUI, LALT_CURLY, LT(MISC, KC_SPC), RALT_CURLY,TT(PROG1), MEDAPP, RCTRL_BRACKET, KC_LEFT,KC_DOWN,KC_RGHT, KC_P0,KC_PDOT), |
| 47 | /* Layer 1: Programming Layer 1, emulating US l ayout */ | 38 | /* Layer 1: Programming Layer 1, emulating US l ayout */ |
| 48 | [PROG1] = LAYOUT(\ | 39 | [PROG1] = LAYOUT(\ |
| 49 | KC_ESC,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \ | 40 | KC_ESC,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \ |
| 50 | M(GRV),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,KC_SLSH, S(0),_______, _______,_______,_______, _______,_______,_______,_______, \ | 41 | M_GRV,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,KC_SLSH,S(KC_0),_______, _______,_______,_______, _______,_______,_______,_______, \ |
| 51 | _______,_______,_______,_______,_______,_______, KC_Z,_______,_______,_______,_______, RA(8), RA(9),RA(MINS), _______,_______,_______, _______,_______,_______,_______, \ | 42 | _______,_______,_______,_______,_______,_______, KC_Z,_______,_______,_______,_______,ALGR(KC_8),ALGR(KC_9),ALGR(KC_MINS), _______,_______,_______, _______,_______,_______,_______, \ |
| 52 | _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,S(COMM),S(BSLS), _______, _______,_______,_______, \ | 43 | _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,S(KC_COMM),S(KC_BSLS), _______, _______,_______,_______, \ |
| 53 | MO(PROG2),_______, KC_Y,_______,_______,_______,_______,_______,_______,_______,_______, S(7), MO(PROG2), _______, _______,_______,_______,_______, \ | 44 | MO(PROG2),_______, KC_Y,_______,_______,_______,_______,_______,_______,_______,_______, S(KC_7), MO(PROG2), _______, _______,_______,_______,_______, \ |
| 54 | _______,_______,_______, _______, _______,_______,_______,_______, _______,_______,_______, _______,_______), | 45 | _______,_______,_______, _______, _______,_______,_______,_______, _______,_______,_______, _______,_______), |
| 55 | /* Layer 2: programming layer 2 | 46 | /* Layer 2: programming layer 2 |
| 56 | all keys that are not FN keys are sent as LSFT+key on this layer | 47 | all keys that are not FN keys are sent as LSFT+key on this layer |
| 57 | */ | 48 | */ |
| 58 | [PROG2] = LAYOUT(\ | 49 | [PROG2] = LAYOUT(\ |
| 59 | _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \ | 50 | _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \ |
| 60 | RA(RBRC),_______, RA(Q),KC_BSLS,_______,_______,M(CFLEX), S(6),S(RBRC), S(8), S(9),S(SLSH),KC_RBRC,_______, _______,_______,_______, _______,_______,_______,_______, \ | 51 | ALGR(KC_RBRC),_______, ALGR(KC_Q),KC_BSLS,_______,_______,M_CFLEX, S(KC_6),S(KC_RBRC), S(KC_8),S(KC_9),S(KC_SLSH),KC_RBRC,_______, _______,_______,_______, _______,_______,_______,_______, \ |
| 61 | _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, RA(7), RA(0),RA(NUBS), _______,_______,_______, _______,_______,_______,_______, \ | 52 | _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, ALGR(KC_7),ALGR(KC_0),ALGR(KC_NUBS), _______,_______,_______, _______,_______,_______,_______, \ |
| 62 | _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, S(DOT), S(2), _______, _______,_______,_______, \ | 53 | _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, S(KC_DOT), S(KC_2), _______, _______,_______,_______, \ |
| 63 | _______,S(NUBS),_______,_______,_______,_______,_______,_______,_______,KC_NUBS,S(NUBS),S(MINS), _______, _______, _______,_______,_______,_______, \ | 54 | _______,S(KC_NUBS),_______,_______,_______,_______,_______,_______,_______,KC_NUBS,S(KC_NUBS),S(KC_MINS), _______, _______, _______,_______,_______,_______, \ |
| 64 | _______,_______,_______, _______, _______,_______,_______,_______, _______,_______,_______, _______,_______), | 55 | _______,_______,_______, _______, _______,_______,_______,_______, _______,_______,_______, _______,_______), |
| 65 | /* Layer 3: media layer */ | 56 | /* Layer 3: media layer */ |
| 66 | [MEDIA] = LAYOUT(\ | 57 | [MEDIA] = LAYOUT(\ |
| @@ -72,11 +63,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 72 | XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX,_______,XXXXXXX, KC_MRWD,KC_MSTP,KC_MFFD, XXXXXXX,XXXXXXX), | 63 | XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX,_______,XXXXXXX, KC_MRWD,KC_MSTP,KC_MFFD, XXXXXXX,XXXXXXX), |
| 73 | /* Layer 4: Mouse layer */ | 64 | /* Layer 4: Mouse layer */ |
| 74 | [MOUSE1] = LAYOUT(\ | 65 | [MOUSE1] = LAYOUT(\ |
| 75 | F(6),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \ | 66 | TO(DEFAULT),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \ |
| 76 | _______,KC_ACL0,KC_ACL1,KC_ACL2,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \ | 67 | _______,KC_ACL0,KC_ACL1,KC_ACL2,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \ |
| 77 | _______,KC_BTN4,KC_WH_D,KC_MS_U,KC_WH_U,_______, C(Z),_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \ | 68 | _______,KC_BTN4,KC_WH_D,KC_MS_U,KC_WH_U,_______, C(KC_Z),_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \ |
| 78 | _______,KC_BTN5,KC_MS_L,KC_MS_D,KC_MS_R, F(7),KC_WH_L,KC_WH_D,KC_WH_U,KC_WH_R,_______,_______, _______, _______,_______,_______, \ | 69 | _______,KC_BTN5,KC_MS_L,KC_MS_D,KC_MS_R, CTRL_CLICK,KC_WH_L,KC_WH_D,KC_WH_U,KC_WH_R,_______,_______, _______, _______,_______,_______, \ |
| 79 | MO(MOUSE2),_______, C(Y), C(X), C(C), C(V),_______,KC_BTN2,KC_BTN3,C(PGUP),C(PGDN),_______, KC_RSFT, _______, _______,_______,_______,_______, \ | 70 | MO(MOUSE2),_______,C(KC_Y),C(KC_X),C(KC_C),C(KC_V),_______,KC_BTN2,KC_BTN3,C(KC_PGUP),C(KC_PGDN),_______, KC_RSFT, _______, _______,_______,_______,_______, \ |
| 80 | KC_LCTL,_______,KC_LALT, KC_BTN1, KC_RALT,KC_RGUI, KC_APP,KC_RCTL, _______,_______,_______, _______,_______), | 71 | KC_LCTL,_______,KC_LALT, KC_BTN1, KC_RALT,KC_RGUI, KC_APP,KC_RCTL, _______,_______,_______, _______,_______), |
| 81 | /* Layer 5: Mouse layer 2*/ | 72 | /* Layer 5: Mouse layer 2*/ |
| 82 | [MOUSE2] = LAYOUT(\ | 73 | [MOUSE2] = LAYOUT(\ |
| @@ -90,44 +81,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 90 | [MISC] = LAYOUT(\ | 81 | [MISC] = LAYOUT(\ |
| 91 | _______, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, _______,_______,_______, \ | 82 | _______, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, _______,_______,_______, \ |
| 92 | _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \ | 83 | _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \ |
| 93 | _______,KC_SLCT, C(W), KC_UP,_______,_______,_______,_______,KC_BSPC, KC_DEL,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \ | 84 | _______,KC_SLCT, C(KC_W), KC_UP,_______,_______,_______,_______,KC_BSPC, KC_DEL,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \ |
| 94 | _______,_______,KC_LEFT,KC_DOWN,KC_RGHT,_______,KC_HOME,KC_PGDN,KC_PGUP,_______,_______,_______, _______, _______,_______,_______, \ | 85 | _______,_______,KC_LEFT,KC_DOWN,KC_RGHT,_______,KC_HOME,KC_PGDN,KC_PGUP,_______,_______,_______, _______, _______,_______,_______, \ |
| 95 | KC_LSFT,_______, C(Y), C(X), C(C), C(V), KC_SPC, KC_END,_______,C(PGUP),C(PGDN),_______, _______, _______, _______,_______,_______,_______, \ | 86 | KC_LSFT,_______,C(KC_Y),C(KC_X),C(KC_C),C(KC_V), KC_SPC, KC_END,_______,C(KC_PGUP),C(KC_PGDN),_______, _______, _______, _______,_______,_______,_______, \ |
| 96 | _______,_______,_______, LT(MISC, KC_SPC), _______,_______,_______,_______, _______,_______,_______, _______,_______), | 87 | _______,_______,_______, LT(MISC, KC_SPC), _______,_______,_______,_______, _______,_______,_______, _______,_______), |
| 97 | }; | 88 | }; |
| 98 | 89 | ||
| 99 | const uint16_t PROGMEM fn_actions[] = { | ||
| 100 | [1] = ACTION_FUNCTION_TAP(LCTRL_BRACKET), // tap to print [ | ||
| 101 | [2] = ACTION_FUNCTION_TAP(RCTRL_BRACKET), // tap to print ] | ||
| 102 | [3] = ACTION_FUNCTION_TAP(LALT_CURLY), // tap to print { | ||
| 103 | [4] = ACTION_FUNCTION_TAP(RALT_CURLY), // tap to print } | ||
| 104 | [6] = ACTION_LAYER_SET_CLEAR(DEFAULT), | ||
| 105 | [7] = ACTION_FUNCTION_TAP(CTRL_CLICK), | ||
| 106 | [8] = ACTION_FUNCTION_TAP(LSHFT_PAREN), // tap to print ( | ||
| 107 | [9] = ACTION_FUNCTION_TAP(RSHFT_PAREN), // tap to print ) | ||
| 108 | }; | ||
| 109 | |||
| 110 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | ||
| 111 | { | ||
| 112 | // MACRODOWN only works in this function | ||
| 113 | switch(id) { | ||
| 114 | case GRV: // macro to print accent grave | ||
| 115 | return (record->event.pressed ? | ||
| 116 | MACRO( D(LSFT), T(EQL), U(RALT), T(SPC), END) : | ||
| 117 | MACRO_NONE ); | ||
| 118 | case CFLEX: // print accent circonflex | ||
| 119 | return (record->event.pressed ? | ||
| 120 | MACRO( T(GRV), T(SPC), END ) : | ||
| 121 | MACRO_NONE ); | ||
| 122 | } | ||
| 123 | return MACRO_NONE; | ||
| 124 | }; | ||
| 125 | |||
| 126 | |||
| 127 | void matrix_init_user(void) { | ||
| 128 | |||
| 129 | } | ||
| 130 | |||
| 131 | void matrix_scan_user(void) { | 90 | void matrix_scan_user(void) { |
| 132 | uint8_t layer; | 91 | uint8_t layer; |
| 133 | layer = biton32(layer_state); | 92 | layer = biton32(layer_state); |
| @@ -147,10 +106,6 @@ void matrix_scan_user(void) { | |||
| 147 | } | 106 | } |
| 148 | } | 107 | } |
| 149 | 108 | ||
| 150 | void led_set_user(uint8_t usb_led) { | ||
| 151 | |||
| 152 | } | ||
| 153 | |||
| 154 | void tap_helper(keyrecord_t *record, uint16_t orig_mod, uint16_t macro_mod, uint16_t macro_kc ) { | 109 | void tap_helper(keyrecord_t *record, uint16_t orig_mod, uint16_t macro_mod, uint16_t macro_kc ) { |
| 155 | if (record->event.pressed) { | 110 | if (record->event.pressed) { |
| 156 | if (record->tap.count > 0 && !record->tap.interrupted) { | 111 | if (record->tap.count > 0 && !record->tap.interrupted) { |
| @@ -175,28 +130,45 @@ void tap_helper(keyrecord_t *record, uint16_t orig_mod, uint16_t macro_mod, uint | |||
| 175 | } | 130 | } |
| 176 | } | 131 | } |
| 177 | 132 | ||
| 178 | /* if LCTRL is tabbed, print (, or ) if RCTRL is tabbed, same for LALT/RALT and [/] */ | 133 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { |
| 179 | void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { | 134 | uint8_t layer; |
| 180 | // The code is copied from keymap_hasu.c in the tmk keyboards hhkb folder | 135 | layer = biton32(layer_state); |
| 181 | switch (id) { | 136 | if (layer == PROG2) { |
| 137 | if (keycode >= KC_A && keycode <= KC_EXSEL && \ | ||
| 138 | !( // do not send LSFT + these keycodes, they are needed for emulating the US layout | ||
| 139 | keycode == KC_NONUS_BSLASH || | ||
| 140 | keycode == KC_RBRC || | ||
| 141 | keycode == KC_BSLS || | ||
| 142 | keycode == KC_GRV | ||
| 143 | )) { | ||
| 144 | // LSFT is the modifier for this layer, so we set LSFT for every key to get the expected behavior | ||
| 145 | if (record->event.pressed) { | ||
| 146 | register_mods(MOD_LSFT); | ||
| 147 | } else { | ||
| 148 | unregister_mods(MOD_LSFT); | ||
| 149 | } | ||
| 150 | } | ||
| 151 | } | ||
| 152 | |||
| 153 | switch (keycode) { | ||
| 182 | case LCTRL_BRACKET: | 154 | case LCTRL_BRACKET: |
| 183 | tap_helper(record, KC_LCTL, KC_RALT, KC_8); | 155 | tap_helper(record, KC_LCTL, KC_RALT, KC_8); |
| 184 | break; | 156 | return false; |
| 185 | case RCTRL_BRACKET: | 157 | case RCTRL_BRACKET: |
| 186 | tap_helper(record, KC_RCTL, KC_RALT, KC_9); | 158 | tap_helper(record, KC_RCTL, KC_RALT, KC_9); |
| 187 | break; | 159 | return false; |
| 188 | case LALT_CURLY: | 160 | case LALT_CURLY: |
| 189 | tap_helper(record, KC_LALT, KC_RALT, KC_7); | 161 | tap_helper(record, KC_LALT, KC_RALT, KC_7); |
| 190 | break; | 162 | return false; |
| 191 | case RALT_CURLY: | 163 | case RALT_CURLY: |
| 192 | tap_helper(record, KC_RALT, KC_RALT, KC_0); | 164 | tap_helper(record, KC_RALT, KC_RALT, KC_0); |
| 193 | break; | 165 | return false; |
| 194 | case LSHFT_PAREN: | 166 | case LSHFT_PAREN: |
| 195 | tap_helper(record, KC_LSFT, KC_LSFT, KC_8); | 167 | tap_helper(record, KC_LSFT, KC_LSFT, KC_8); |
| 196 | break; | 168 | return false; |
| 197 | case RSHFT_PAREN: | 169 | case RSHFT_PAREN: |
| 198 | tap_helper(record, KC_RSFT, KC_LSFT, KC_9); | 170 | tap_helper(record, KC_RSFT, KC_LSFT, KC_9); |
| 199 | break; | 171 | return false; |
| 200 | case CTRL_CLICK: | 172 | case CTRL_CLICK: |
| 201 | if (record->event.pressed) { | 173 | if (record->event.pressed) { |
| 202 | mousekey_clear(); | 174 | mousekey_clear(); |
| @@ -212,28 +184,16 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { | |||
| 212 | unregister_mods(MOD_BIT(KC_LCTL)); | 184 | unregister_mods(MOD_BIT(KC_LCTL)); |
| 213 | send_keyboard_report(); | 185 | send_keyboard_report(); |
| 214 | } | 186 | } |
| 215 | break; | 187 | return false; |
| 188 | case M_GRV: | ||
| 189 | tap_code16(S(KC_EQL)); | ||
| 190 | tap_code(KC_SPC); | ||
| 191 | return false; | ||
| 192 | case M_CFLEX: | ||
| 193 | tap_code(KC_GRV); | ||
| 194 | tap_code(KC_SPC); | ||
| 195 | return false; | ||
| 216 | } | 196 | } |
| 217 | } | ||
| 218 | 197 | ||
| 219 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
| 220 | uint8_t layer; | ||
| 221 | layer = biton32(layer_state); | ||
| 222 | if (layer == PROG2) { | ||
| 223 | if (keycode >= KC_A && keycode <= KC_EXSEL && \ | ||
| 224 | !( // do not send LSFT + these keycodes, they are needed for emulating the US layout | ||
| 225 | keycode == KC_NONUS_BSLASH || | ||
| 226 | keycode == KC_RBRC || | ||
| 227 | keycode == KC_BSLS || | ||
| 228 | keycode == KC_GRV | ||
| 229 | )) { | ||
| 230 | // LSFT is the modifier for this layer, so we set LSFT for every key to get the expected behavior | ||
| 231 | if (record->event.pressed) { | ||
| 232 | register_mods(MOD_LSFT); | ||
| 233 | } else { | ||
| 234 | unregister_mods(MOD_LSFT); | ||
| 235 | } | ||
| 236 | } | ||
| 237 | } | ||
| 238 | return true; | 198 | return true; |
| 239 | } | 199 | } |
diff --git a/keyboards/clueboard/66/keymaps/magicmonty/keymap.c b/keyboards/clueboard/66/keymaps/magicmonty/keymap.c index 54420d31b..56d4c4707 100644 --- a/keyboards/clueboard/66/keymaps/magicmonty/keymap.c +++ b/keyboards/clueboard/66/keymaps/magicmonty/keymap.c | |||
| @@ -40,8 +40,9 @@ | |||
| 40 | // CTRL when held, ESC when tapped | 40 | // CTRL when held, ESC when tapped |
| 41 | #define CTL_ESC CTL_T(KC_ESC) | 41 | #define CTL_ESC CTL_T(KC_ESC) |
| 42 | 42 | ||
| 43 | // Reset RGB mode to layer signalling | 43 | enum custom_keycodes { |
| 44 | #define RGB_RST F(0) | 44 | RGB_RST = SAFE_RANGE |
| 45 | }; | ||
| 45 | 46 | ||
| 46 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 47 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
| 47 | /* Keymap _BL: Base Layer (Default Layer) */ | 48 | /* Keymap _BL: Base Layer (Default Layer) */ |
| @@ -103,21 +104,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 103 | #endif | 104 | #endif |
| 104 | }; | 105 | }; |
| 105 | 106 | ||
| 106 | /* This is a list of user defined functions. F(N) corresponds to item N | 107 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { |
| 107 | of this list. | 108 | switch (keycode) { |
| 108 | */ | 109 | case RGB_RST: |
| 109 | const uint16_t PROGMEM fn_actions[] = { | 110 | if (record->event.pressed) { |
| 110 | [0] = ACTION_FUNCTION(0), // Calls action_function() | 111 | rgblight_mode(1); |
| 111 | }; | 112 | rgblight_sethsv(206, 255, 255); |
| 112 | 113 | } | |
| 113 | void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { | 114 | return false; |
| 114 | switch (id) { | 115 | } |
| 115 | case 0: | 116 | return true; |
| 116 | if (record->event.pressed) { | ||
| 117 | rgblight_mode(1); | ||
| 118 | rgblight_sethsv(206, 255, 255); | ||
| 119 | } | ||
| 120 | } | ||
| 121 | } | 117 | } |
| 122 | 118 | ||
| 123 | enum layer_id { | 119 | enum layer_id { |
diff --git a/keyboards/clueboard/66/keymaps/tetris/keymap.c b/keyboards/clueboard/66/keymaps/tetris/keymap.c index ef3abd667..26dd97fee 100644 --- a/keyboards/clueboard/66/keymaps/tetris/keymap.c +++ b/keyboards/clueboard/66/keymaps/tetris/keymap.c | |||
| @@ -1,9 +1,6 @@ | |||
| 1 | #include QMK_KEYBOARD_H | 1 | #include QMK_KEYBOARD_H |
| 2 | #include "tetris_text.h" | 2 | #include "tetris_text.h" |
| 3 | 3 | ||
| 4 | // Helpful defines | ||
| 5 | #define GRAVE_MODS (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)|MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI)|MOD_BIT(KC_LALT)|MOD_BIT(KC_RALT)) | ||
| 6 | |||
| 7 | // Each layer gets a name for readability, which is then used in the keymap matrix below. | 4 | // Each layer gets a name for readability, which is then used in the keymap matrix below. |
| 8 | // The underscores don't mean anything - you can have a layer called STUFF or any other name. | 5 | // The underscores don't mean anything - you can have a layer called STUFF or any other name. |
| 9 | // Layer names don't all need to be of the same length, obviously, and you can also skip them | 6 | // Layer names don't all need to be of the same length, obviously, and you can also skip them |
| @@ -12,11 +9,15 @@ | |||
| 12 | #define _FL 1 | 9 | #define _FL 1 |
| 13 | #define _CL 2 | 10 | #define _CL 2 |
| 14 | 11 | ||
| 12 | enum custom_keycodes { | ||
| 13 | TETRIS_START = SAFE_RANGE | ||
| 14 | }; | ||
| 15 | |||
| 15 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 16 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
| 16 | /* Keymap _BL: Base Layer (Default Layer) | 17 | /* Keymap _BL: Base Layer (Default Layer) |
| 17 | */ | 18 | */ |
| 18 | [_BL] = LAYOUT( | 19 | [_BL] = LAYOUT( |
| 19 | F(0), 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, KC_PGUP, | 20 | KC_GESC, 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, KC_PGUP, |
| 20 | 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, KC_PGDN, | 21 | 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, KC_PGDN, |
| 21 | KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, | 22 | KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, |
| 22 | KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, | 23 | KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, |
| @@ -41,71 +42,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 41 | _______, _______, _______,_______, RGB_MOD, RGB_MOD, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_HUI), | 42 | _______, _______, _______,_______, RGB_MOD, RGB_MOD, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_HUI), |
| 42 | }; | 43 | }; |
| 43 | 44 | ||
| 44 | /* This is a list of user defined functions. F(N) corresponds to item N | ||
| 45 | of this list. | ||
| 46 | */ | ||
| 47 | const uint16_t PROGMEM fn_actions[] = { | ||
| 48 | [0] = ACTION_FUNCTION(0), // Calls action_function() | ||
| 49 | [1] = ACTION_FUNCTION(1) | ||
| 50 | }; | ||
| 51 | |||
| 52 | static uint8_t tetris_key_presses = 0; | 45 | static uint8_t tetris_key_presses = 0; |
| 53 | static uint16_t tetris_timer = 0; | 46 | static uint16_t tetris_timer = 0; |
| 54 | static uint8_t tetris_running = 0; | 47 | static uint8_t tetris_running = 0; |
| 55 | static int tetris_keypress = 0; | 48 | static int tetris_keypress = 0; |
| 56 | 49 | ||
| 57 | void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { | ||
| 58 | static uint8_t mods_pressed; | ||
| 59 | static bool mod_flag; | ||
| 60 | |||
| 61 | switch (id) { | ||
| 62 | case 0: | ||
| 63 | // clueboard specific hook to make escape quite tetris | ||
| 64 | if (tetris_running) { | ||
| 65 | tetris_running = 0; | ||
| 66 | return; | ||
| 67 | } | ||
| 68 | |||
| 69 | /* Handle the combined Grave/Esc key | ||
| 70 | */ | ||
| 71 | mods_pressed = get_mods()&GRAVE_MODS; // Check to see what mods are pressed | ||
| 72 | |||
| 73 | if (record->event.pressed) { | ||
| 74 | /* The key is being pressed. | ||
| 75 | */ | ||
| 76 | if (mods_pressed) { | ||
| 77 | mod_flag = true; | ||
| 78 | add_key(KC_GRV); | ||
| 79 | send_keyboard_report(); | ||
| 80 | } else { | ||
| 81 | add_key(KC_ESC); | ||
| 82 | send_keyboard_report(); | ||
| 83 | } | ||
| 84 | } else { | ||
| 85 | /* The key is being released. | ||
| 86 | */ | ||
| 87 | if (mod_flag) { | ||
| 88 | mod_flag = false; | ||
| 89 | del_key(KC_GRV); | ||
| 90 | send_keyboard_report(); | ||
| 91 | } else { | ||
| 92 | del_key(KC_ESC); | ||
| 93 | send_keyboard_report(); | ||
| 94 | } | ||
| 95 | } | ||
| 96 | break; | ||
| 97 | case 1: | ||
| 98 | if (record->event.pressed) { | ||
| 99 | tetris_running = 1; | ||
| 100 | tetris_timer = 0; | ||
| 101 | tetris_keypress = 0; | ||
| 102 | // set randomness using total number of key presses | ||
| 103 | tetris_start(tetris_key_presses); | ||
| 104 | } | ||
| 105 | break; | ||
| 106 | } | ||
| 107 | } | ||
| 108 | |||
| 109 | /* | 50 | /* |
| 110 | * Set up tetris | 51 | * Set up tetris |
| 111 | */ | 52 | */ |
| @@ -130,6 +71,25 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
| 130 | } | 71 | } |
| 131 | } | 72 | } |
| 132 | 73 | ||
| 74 | switch (keycode) { | ||
| 75 | case KC_GESC: | ||
| 76 | // clueboard specific hook to make escape quite tetris | ||
| 77 | if (tetris_running) { | ||
| 78 | tetris_running = 0; | ||
| 79 | return false; | ||
| 80 | } | ||
| 81 | break; | ||
| 82 | case TETRIS_START: | ||
| 83 | if (record->event.pressed) { | ||
| 84 | tetris_running = 1; | ||
| 85 | tetris_timer = 0; | ||
| 86 | tetris_keypress = 0; | ||
| 87 | // set randomness using total number of key presses | ||
| 88 | tetris_start(tetris_key_presses); | ||
| 89 | } | ||
| 90 | return false; | ||
| 91 | } | ||
| 92 | |||
| 133 | return true; | 93 | return true; |
| 134 | } | 94 | } |
| 135 | 95 | ||
| @@ -148,57 +108,45 @@ void matrix_scan_user(void) { | |||
| 148 | } | 108 | } |
| 149 | } | 109 | } |
| 150 | 110 | ||
| 151 | void send_keycode(uint16_t keycode) { | ||
| 152 | register_code(keycode); | ||
| 153 | unregister_code(keycode); | ||
| 154 | } | ||
| 155 | |||
| 156 | void send_keycode_shift(uint16_t keycode) { | ||
| 157 | register_code(KC_LSFT); | ||
| 158 | register_code(keycode); | ||
| 159 | unregister_code(keycode); | ||
| 160 | unregister_code(KC_LSFT); | ||
| 161 | } | ||
| 162 | |||
| 163 | void tetris_send_up(void) { | 111 | void tetris_send_up(void) { |
| 164 | send_keycode(KC_UP); | 112 | tap_code(KC_UP); |
| 165 | } | 113 | } |
| 166 | void tetris_send_left(void) { | 114 | void tetris_send_left(void) { |
| 167 | send_keycode(KC_LEFT); | 115 | tap_code(KC_LEFT); |
| 168 | } | 116 | } |
| 169 | void tetris_send_down(void) { | 117 | void tetris_send_down(void) { |
| 170 | send_keycode(KC_DOWN); | 118 | tap_code(KC_DOWN); |
| 171 | } | 119 | } |
| 172 | void tetris_send_right(void) { | 120 | void tetris_send_right(void) { |
| 173 | send_keycode(KC_RGHT); | 121 | tap_code(KC_RGHT); |
| 174 | } | 122 | } |
| 175 | void tetris_send_backspace(void) { | 123 | void tetris_send_backspace(void) { |
| 176 | send_keycode(KC_BSPC); | 124 | tap_code(KC_BSPC); |
| 177 | } | 125 | } |
| 178 | void tetris_send_delete(void) { | 126 | void tetris_send_delete(void) { |
| 179 | send_keycode(KC_DEL); | 127 | tap_code(KC_DEL); |
| 180 | } | 128 | } |
| 181 | 129 | ||
| 182 | void tetris_send_string(const char *s) { | 130 | void tetris_send_string(const char *s) { |
| 183 | for (int i = 0; s[i] != 0; i++) { | 131 | for (int i = 0; s[i] != 0; i++) { |
| 184 | if (s[i] >= 'a' && s[i] <= 'z') { | 132 | if (s[i] >= 'a' && s[i] <= 'z') { |
| 185 | send_keycode(KC_A + (s[i] - 'a')); | 133 | tap_code(KC_A + (s[i] - 'a')); |
| 186 | } else if (s[i] >= 'A' && s[i] <= 'Z') { | 134 | } else if (s[i] >= 'A' && s[i] <= 'Z') { |
| 187 | send_keycode_shift(KC_A + (s[i] - 'A')); | 135 | tap_code16(S(KC_A + (s[i] - 'A'))); |
| 188 | } else if (s[i] >= '1' && s[i] <= '9') { | 136 | } else if (s[i] >= '1' && s[i] <= '9') { |
| 189 | send_keycode(KC_1 + (s[i] - '1')); | 137 | tap_code(KC_1 + (s[i] - '1')); |
| 190 | } else { | 138 | } else { |
| 191 | switch (s[i]) { | 139 | switch (s[i]) { |
| 192 | case ' ': send_keycode(KC_SPACE); break; | 140 | case ' ': tap_code(KC_SPACE); break; |
| 193 | case '.': send_keycode(KC_DOT); break; | 141 | case '.': tap_code(KC_DOT); break; |
| 194 | case '0': send_keycode(KC_0); break; | 142 | case '0': tap_code(KC_0); break; |
| 195 | } | 143 | } |
| 196 | } | 144 | } |
| 197 | } | 145 | } |
| 198 | } | 146 | } |
| 199 | 147 | ||
| 200 | void tetris_send_newline(void) { | 148 | void tetris_send_newline(void) { |
| 201 | send_keycode(KC_ENT); | 149 | tap_code(KC_ENT); |
| 202 | } | 150 | } |
| 203 | 151 | ||
| 204 | int tetris_get_keypress(void) { | 152 | int tetris_get_keypress(void) { |
diff --git a/keyboards/gh60/revc/keymaps/dbroqua_7U/keymap.c b/keyboards/gh60/revc/keymaps/dbroqua_7U/keymap.c index 5b58d7686..a79b89e9c 100644 --- a/keyboards/gh60/revc/keymaps/dbroqua_7U/keymap.c +++ b/keyboards/gh60/revc/keymaps/dbroqua_7U/keymap.c | |||
| @@ -3,6 +3,10 @@ | |||
| 3 | #define _DEFAULT 0 | 3 | #define _DEFAULT 0 |
| 4 | #define _FN 1 | 4 | #define _FN 1 |
| 5 | 5 | ||
| 6 | enum custom_keycodes { | ||
| 7 | LED_TOGGLE = SAFE_RANGE | ||
| 8 | }; | ||
| 9 | |||
| 6 | int esc_led = 0; | 10 | int esc_led = 0; |
| 7 | 11 | ||
| 8 | // Fillers to make layering more clear | 12 | // Fillers to make layering more clear |
| @@ -44,7 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 44 | * `-----------------------------------------------------------------' | 48 | * `-----------------------------------------------------------------' |
| 45 | */ | 49 | */ |
| 46 | [_FN] = LAYOUT_60_ansi_split_bs_rshift( /* Layer 1 */ | 50 | [_FN] = LAYOUT_60_ansi_split_bs_rshift( /* Layer 1 */ |
| 47 | F(0), 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, \ | 51 | LED_TOGGLE,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, \ |
| 48 | KC_CAPS, ______, ______, ______, ______, ______, ______, ______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, ______, ______, \ | 52 | KC_CAPS, ______, ______, ______, ______, ______, ______, ______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, ______, ______, \ |
| 49 | ______, KC_VOLD, KC_VOLU, KC_MUTE, ______, ______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT,______, \ | 53 | ______, KC_VOLD, KC_VOLU, KC_MUTE, ______, ______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT,______, \ |
| 50 | ______, KC_MPRV, KC_MPLY, KC_MNXT, ______, ______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, ______, ______, \ | 54 | ______, KC_MPRV, KC_MPLY, KC_MNXT, ______, ______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, ______, ______, \ |
| @@ -52,14 +56,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 52 | ) | 56 | ) |
| 53 | }; | 57 | }; |
| 54 | 58 | ||
| 55 | enum function_id { | ||
| 56 | LED_TOGGLE | ||
| 57 | }; | ||
| 58 | |||
| 59 | const uint16_t PROGMEM fn_actions[] = { | ||
| 60 | [0] = ACTION_FUNCTION(LED_TOGGLE) | ||
| 61 | }; | ||
| 62 | |||
| 63 | void esc_led_toggle(void) { | 59 | void esc_led_toggle(void) { |
| 64 | if (esc_led == 0){ | 60 | if (esc_led == 0){ |
| 65 | esc_led = 1; | 61 | esc_led = 1; |
| @@ -70,12 +66,13 @@ void esc_led_toggle(void) { | |||
| 70 | } | 66 | } |
| 71 | } | 67 | } |
| 72 | 68 | ||
| 73 | void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { | 69 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { |
| 74 | switch (id) { | 70 | switch (keycode) { |
| 75 | case LED_TOGGLE: | 71 | case LED_TOGGLE: |
| 76 | if (record->event.pressed) { | 72 | if (record->event.pressed) { |
| 77 | esc_led_toggle(); | 73 | esc_led_toggle(); |
| 78 | } | 74 | } |
| 79 | break; | 75 | return false; |
| 80 | } | 76 | } |
| 81 | } \ No newline at end of file | 77 | return true; |
| 78 | } | ||
diff --git a/keyboards/infinity60/keymaps/jpetermans/keymap.c b/keyboards/infinity60/keymaps/jpetermans/keymap.c index c34d56ec8..3c2e0d4da 100644 --- a/keyboards/infinity60/keymaps/jpetermans/keymap.c +++ b/keyboards/infinity60/keymaps/jpetermans/keymap.c | |||
| @@ -11,20 +11,25 @@ | |||
| 11 | //IS31 chip has 8 available led pages, using 0 for all leds and 7 for single toggles | 11 | //IS31 chip has 8 available led pages, using 0 for all leds and 7 for single toggles |
| 12 | #define max_pages 6 | 12 | #define max_pages 6 |
| 13 | 13 | ||
| 14 | enum ic60_keycodes { | 14 | enum led_modes { |
| 15 | NUMPAD, | 15 | MODE_ALL, |
| 16 | FNAV, | 16 | MODE_GAME, |
| 17 | MEDIA, | ||
| 18 | BACKLIGHT, | ||
| 19 | BRIGHT, | ||
| 20 | DIM, | ||
| 21 | ALL, | ||
| 22 | GAME, | ||
| 23 | MODE_SINGLE, | 17 | MODE_SINGLE, |
| 24 | MODE_PAGE, | 18 | MODE_PAGE, |
| 25 | MODE_FLASH | 19 | MODE_FLASH |
| 26 | }; | 20 | }; |
| 27 | 21 | ||
| 22 | enum macro_id { | ||
| 23 | LED_ALL = SAFE_RANGE, | ||
| 24 | LED_GAME, | ||
| 25 | LED_BACKLIGHT, | ||
| 26 | LED_BRIGHT, | ||
| 27 | LED_DIM, | ||
| 28 | LED_SINGLE, | ||
| 29 | LED_PAGE, | ||
| 30 | LED_FLASH | ||
| 31 | }; | ||
| 32 | |||
| 28 | uint8_t current_layer_global = 0; | 33 | uint8_t current_layer_global = 0; |
| 29 | uint8_t led_mode_global = MODE_SINGLE; | 34 | uint8_t led_mode_global = MODE_SINGLE; |
| 30 | uint8_t backlight_status_global = 1; //init on/off state of backlight | 35 | uint8_t backlight_status_global = 1; //init on/off state of backlight |
| @@ -77,10 +82,10 @@ const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 77 | 82 | ||
| 78 | /* media */ | 83 | /* media */ |
| 79 | [_MEDIA] = LAYOUT_60_ansi_split_bs_rshift( \ | 84 | [_MEDIA] = LAYOUT_60_ansi_split_bs_rshift( \ |
| 80 | _______,F(MODE_SINGLE),F(MODE_PAGE),F(MODE_FLASH),_______,_______,_______, _______, _______, _______,KC_MUTE, KC_VOLD, KC_VOLU,_______,KC_NO,\ | 85 | _______,LED_SINGLE,LED_PAGE,LED_FLASH,_______,_______,_______, _______, _______, _______,KC_MUTE, KC_VOLD, KC_VOLU,_______,KC_NO,\ |
| 81 | _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______,\ | 86 | _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______,\ |
| 82 | _______,_______,_______,_______,_______,F(GAME),_______, _______, _______, _______,_______, _______,_______, \ | 87 | _______,_______,_______,_______,_______,LED_GAME,_______, _______, _______, _______,_______, _______,_______, \ |
| 83 | _______,_______,F(ALL) ,F(BRIGHT),F(DIM),F(BACKLIGHT),_______, _______, KC_MPRV, KC_MNXT,KC_MSTP, _______,KC_NO, \ | 88 | _______,_______,LED_ALL ,LED_BRIGHT,LED_DIM,LED_BACKLIGHT,_______, _______, KC_MPRV, KC_MNXT,KC_MSTP, _______,KC_NO, \ |
| 84 | _______,_______,_______, KC_MPLY, _______,_______, _______,_______ \ | 89 | _______,_______,_______, KC_MPLY, _______,_______, _______,_______ \ |
| 85 | ), | 90 | ), |
| 86 | /* ~ */ | 91 | /* ~ */ |
| @@ -101,22 +106,6 @@ const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 101 | ), | 106 | ), |
| 102 | }; | 107 | }; |
| 103 | 108 | ||
| 104 | //id for user defined functions and macros | ||
| 105 | enum function_id { | ||
| 106 | NONE, | ||
| 107 | }; | ||
| 108 | |||
| 109 | enum macro_id { | ||
| 110 | ACTION_LEDS_ALL, | ||
| 111 | ACTION_LEDS_GAME, | ||
| 112 | ACTION_LEDS_BACKLIGHT, | ||
| 113 | ACTION_LEDS_BRIGHT, | ||
| 114 | ACTION_LEDS_DIM, | ||
| 115 | ACTION_LEDS_SINGLE, | ||
| 116 | ACTION_LEDS_PAGE, | ||
| 117 | ACTION_LEDS_FLASH | ||
| 118 | }; | ||
| 119 | |||
| 120 | /* ================================== | 109 | /* ================================== |
| 121 | * LED MAPPING | 110 | * LED MAPPING |
| 122 | * ==================================*/ | 111 | * ==================================*/ |
| @@ -158,74 +147,62 @@ uint8_t led_game[5] = { | |||
| 158 | 47,48,51 | 147 | 47,48,51 |
| 159 | }; | 148 | }; |
| 160 | 149 | ||
| 161 | //======== qmk functions ========= | 150 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { |
| 162 | const uint16_t fn_actions[] = { | ||
| 163 | [ALL] = ACTION_FUNCTION(ACTION_LEDS_ALL), | ||
| 164 | [GAME] = ACTION_FUNCTION(ACTION_LEDS_GAME), | ||
| 165 | [BACKLIGHT] = ACTION_FUNCTION(ACTION_LEDS_BACKLIGHT), | ||
| 166 | [BRIGHT] = ACTION_FUNCTION(ACTION_LEDS_BRIGHT), | ||
| 167 | [DIM] = ACTION_FUNCTION(ACTION_LEDS_DIM), | ||
| 168 | [MODE_SINGLE] = ACTION_FUNCTION(ACTION_LEDS_SINGLE), | ||
| 169 | [MODE_PAGE] = ACTION_FUNCTION(ACTION_LEDS_PAGE), | ||
| 170 | [MODE_FLASH] = ACTION_FUNCTION(ACTION_LEDS_FLASH), | ||
| 171 | }; | ||
| 172 | |||
| 173 | /* custom action function */ | ||
| 174 | void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { | ||
| 175 | msg_t msg; | 151 | msg_t msg; |
| 176 | 152 | ||
| 177 | switch(id) { | 153 | switch(keycode) { |
| 178 | case ACTION_LEDS_ALL: | 154 | case LED_ALL: |
| 179 | if(record->event.pressed) { | 155 | if(record->event.pressed) { |
| 180 | led_mode_global = led_mode_global == ALL ? MODE_SINGLE : ALL; | 156 | led_mode_global = led_mode_global == MODE_ALL ? MODE_SINGLE : MODE_ALL; |
| 181 | msg=TOGGLE_ALL; | 157 | msg=TOGGLE_ALL; |
| 182 | chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); | 158 | chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); |
| 183 | } | 159 | } |
| 184 | break; | 160 | return false; |
| 185 | 161 | ||
| 186 | case ACTION_LEDS_BACKLIGHT: | 162 | case LED_BACKLIGHT: |
| 187 | if(record->event.pressed) { | 163 | if(record->event.pressed) { |
| 188 | backlight_status_global ^= 1; | 164 | backlight_status_global ^= 1; |
| 189 | msg=(backlight_status_global << 8) | TOGGLE_BACKLIGHT; | 165 | msg=(backlight_status_global << 8) | TOGGLE_BACKLIGHT; |
| 190 | chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); | 166 | chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); |
| 191 | } | 167 | } |
| 192 | break; | 168 | return false; |
| 193 | 169 | ||
| 194 | case ACTION_LEDS_GAME: | 170 | case LED_GAME: |
| 195 | if(record->event.pressed) { | 171 | if(record->event.pressed) { |
| 196 | led_mode_global = led_mode_global == GAME ? MODE_SINGLE : GAME; | 172 | led_mode_global = led_mode_global == MODE_GAME ? MODE_SINGLE : MODE_GAME; |
| 197 | 173 | ||
| 198 | msg=(4 << 8) | DISPLAY_PAGE; | 174 | msg=(4 << 8) | DISPLAY_PAGE; |
| 199 | chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); | 175 | chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); |
| 200 | } | 176 | } |
| 201 | break; | 177 | return false; |
| 202 | 178 | ||
| 203 | case ACTION_LEDS_BRIGHT: | 179 | case LED_BRIGHT: |
| 204 | if(record->event.pressed) { | 180 | if(record->event.pressed) { |
| 205 | msg=(1 << 8) | STEP_BRIGHTNESS; | 181 | msg=(1 << 8) | STEP_BRIGHTNESS; |
| 206 | chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); | 182 | chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); |
| 207 | } | 183 | } |
| 208 | break; | 184 | return false; |
| 209 | 185 | ||
| 210 | case ACTION_LEDS_DIM: | 186 | case LED_DIM: |
| 211 | if(record->event.pressed) { | 187 | if(record->event.pressed) { |
| 212 | msg=(0 << 8) | STEP_BRIGHTNESS; | 188 | msg=(0 << 8) | STEP_BRIGHTNESS; |
| 213 | chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); | 189 | chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); |
| 214 | } | 190 | } |
| 215 | break; | 191 | return false; |
| 216 | 192 | ||
| 217 | //set led_mode for matrix_scan to toggle leds | 193 | //set led_mode for matrix_scan to toggle leds |
| 218 | case ACTION_LEDS_SINGLE: | 194 | case LED_SINGLE: |
| 219 | led_mode_global = MODE_SINGLE; | 195 | led_mode_global = MODE_SINGLE; |
| 220 | break; | 196 | return false; |
| 221 | case ACTION_LEDS_PAGE: | 197 | case LED_PAGE: |
| 222 | led_mode_global = MODE_PAGE; | 198 | led_mode_global = MODE_PAGE; |
| 223 | break; | 199 | return false; |
| 224 | case ACTION_LEDS_FLASH: | 200 | case LED_FLASH: |
| 225 | led_mode_global = MODE_FLASH; | 201 | led_mode_global = MODE_FLASH; |
| 226 | break; | 202 | return false; |
| 227 | 203 | ||
| 228 | } | 204 | } |
| 205 | return true; | ||
| 229 | } | 206 | } |
| 230 | 207 | ||
| 231 | // Runs just one time when the keyboard initializes. | 208 | // Runs just one time when the keyboard initializes. |
| @@ -257,7 +234,7 @@ void matrix_scan_user(void) { | |||
| 257 | return; | 234 | return; |
| 258 | } | 235 | } |
| 259 | 236 | ||
| 260 | if (led_layer_state != layer_state && led_mode_global != GAME && led_mode_global != ALL) { | 237 | if (led_layer_state != layer_state && led_mode_global != MODE_GAME && led_mode_global != MODE_ALL) { |
| 261 | //check mode | 238 | //check mode |
| 262 | //Turn on layer indicator or page depending on mode | 239 | //Turn on layer indicator or page depending on mode |
| 263 | switch(led_mode_global) { | 240 | switch(led_mode_global) { |
diff --git a/keyboards/whitefox/keymaps/kim-kim/keymap.c b/keyboards/whitefox/keymaps/kim-kim/keymap.c index a25406758..baaa13687 100644 --- a/keyboards/whitefox/keymaps/kim-kim/keymap.c +++ b/keyboards/whitefox/keymaps/kim-kim/keymap.c | |||
| @@ -51,18 +51,3 @@ const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 51 | _______,_______,_______, _______, _______,_______,_______, KC_HOME,_______,KC_END \ | 51 | _______,_______,_______, _______, _______,_______,_______, KC_HOME,_______,KC_END \ |
| 52 | ), | 52 | ), |
| 53 | }; | 53 | }; |
| 54 | |||
| 55 | /* Give numbers some descriptive names */ | ||
| 56 | #define ACTION_LEDS_ALL 1 | ||
| 57 | #define ACTION_LEDS_GAME 2 | ||
| 58 | |||
| 59 | const uint16_t fn_actions[] = { | ||
| 60 | [2] = ACTION_FUNCTION(ACTION_LEDS_ALL), | ||
| 61 | [3] = ACTION_FUNCTION(ACTION_LEDS_GAME), | ||
| 62 | |||
| 63 | [4] = ACTION_USAGE_CONSUMER(0x1B4), | ||
| 64 | [5] = ACTION_USAGE_CONSUMER(0x196), | ||
| 65 | [6] = ACTION_USAGE_CONSUMER(0x1A6), | ||
| 66 | [7] = ACTION_USAGE_CONSUMER(0x1A0), | ||
| 67 | |||
| 68 | }; | ||
diff --git a/keyboards/whitefox/keymaps/matt3o/keymap.c b/keyboards/whitefox/keymaps/matt3o/keymap.c index f6987fe1a..bb8419668 100644 --- a/keyboards/whitefox/keymaps/matt3o/keymap.c +++ b/keyboards/whitefox/keymaps/matt3o/keymap.c | |||
| @@ -16,6 +16,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 16 | */ | 16 | */ |
| 17 | #include QMK_KEYBOARD_H | 17 | #include QMK_KEYBOARD_H |
| 18 | 18 | ||
| 19 | enum custom_keycodes { | ||
| 20 | AL_FILE = SAFE_RANGE, | ||
| 21 | AL_WWW, | ||
| 22 | AL_HELP, | ||
| 23 | AL_CMD | ||
| 24 | }; | ||
| 25 | |||
| 19 | const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 26 | const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
| 20 | /* Layer 0: Default Layer | 27 | /* Layer 0: Default Layer |
| 21 | * ,---------------------------------------------------------------. | 28 | * ,---------------------------------------------------------------. |
| @@ -45,25 +52,44 @@ const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 45 | KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_HOME,KC_PGDN,KC_END \ | 52 | KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_HOME,KC_PGDN,KC_END \ |
| 46 | ), | 53 | ), |
| 47 | [2] = LAYOUT( \ | 54 | [2] = LAYOUT( \ |
| 48 | KC_SLEP,KC_P1, KC_P2, KC_P3, KC_P4, KC_P5, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_FN2, \ | 55 | KC_SLEP,KC_P1, KC_P2, KC_P3, KC_P4, KC_P5, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_NO, \ |
| 49 | KC_TRNS,KC_TRNS,KC_FN5 ,KC_FN6 ,KC_TRNS,KC_FN7 ,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PSCR,KC_TRNS,KC_TRNS,KC_TRNS, KC_FN3, \ | 56 | KC_TRNS,KC_TRNS,AL_WWW ,AL_HELP ,KC_TRNS,AL_CMD ,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PSCR,KC_TRNS,KC_TRNS,KC_TRNS, KC_NO, \ |
| 50 | KC_CAPS,KC_TRNS,KC_TRNS,KC_TRNS,KC_FN4 ,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,\ | 57 | KC_CAPS,KC_TRNS,KC_TRNS,KC_TRNS,AL_FILE ,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,\ |
| 51 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_CALC,KC_TRNS,KC_TRNS,KC_TRNS,KC_MAIL,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,\ | 58 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_CALC,KC_TRNS,KC_TRNS,KC_TRNS,KC_MAIL,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,\ |
| 52 | KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS \ | 59 | KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS \ |
| 53 | ), | 60 | ), |
| 54 | }; | 61 | }; |
| 55 | 62 | ||
| 56 | /* Give numbers some descriptive names */ | 63 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { |
| 57 | #define ACTION_LEDS_ALL 1 | 64 | switch (keycode) { |
| 58 | #define ACTION_LEDS_GAME 2 | 65 | case AL_FILE: |
| 59 | 66 | if (record->event.pressed) { | |
| 60 | const uint16_t fn_actions[] = { | 67 | host_consumer_send(0x1B4); // AL File Browser |
| 61 | [2] = ACTION_FUNCTION(ACTION_LEDS_ALL), | 68 | } else { |
| 62 | [3] = ACTION_FUNCTION(ACTION_LEDS_GAME), | 69 | host_consumer_send(0); |
| 63 | 70 | } | |
| 64 | [4] = ACTION_USAGE_CONSUMER(0x1B4), | 71 | return false; |
| 65 | [5] = ACTION_USAGE_CONSUMER(0x196), | 72 | case AL_WWW: |
| 66 | [6] = ACTION_USAGE_CONSUMER(0x1A6), | 73 | if (record->event.pressed) { |
| 67 | [7] = ACTION_USAGE_CONSUMER(0x1A0), | 74 | host_consumer_send(0x196); // AL Internet Browser |
| 68 | 75 | } else { | |
| 69 | }; | 76 | host_consumer_send(0); |
| 77 | } | ||
| 78 | return false; | ||
| 79 | case AL_HELP: | ||
| 80 | if (record->event.pressed) { | ||
| 81 | host_consumer_send(0x1A6); // AL Integrated Help Center | ||
| 82 | } else { | ||
| 83 | host_consumer_send(0); | ||
| 84 | } | ||
| 85 | return false; | ||
| 86 | case AL_CMD: | ||
| 87 | if (record->event.pressed) { | ||
| 88 | host_consumer_send(0x1A0); // AL Command Line Processor/Run | ||
| 89 | } else { | ||
| 90 | host_consumer_send(0); | ||
| 91 | } | ||
| 92 | return false; | ||
| 93 | } | ||
| 94 | return true; | ||
| 95 | } | ||
