diff options
author | Ryan <fauxpark@gmail.com> | 2021-07-15 03:52:45 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-15 03:52:45 +1000 |
commit | fd8628ccdc97482aae1814cec5c2059c2978daad (patch) | |
tree | b4cb8d8811023236254ddd631bc45120bcd2bb84 | |
parent | e69c325a9ce84bc144dbc89978f800fc7560757d (diff) | |
download | qmk_firmware-fd8628ccdc97482aae1814cec5c2059c2978daad.tar.gz qmk_firmware-fd8628ccdc97482aae1814cec5c2059c2978daad.zip |
Migrate more `fn_actions` stuff (#13502)
17 files changed, 497 insertions, 791 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 | } | ||
diff --git a/layouts/community/ergodox/coderkun_neo2/keymap.c b/layouts/community/ergodox/coderkun_neo2/keymap.c index b38c99f2e..b731ab495 100644 --- a/layouts/community/ergodox/coderkun_neo2/keymap.c +++ b/layouts/community/ergodox/coderkun_neo2/keymap.c | |||
@@ -215,12 +215,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
215 | ), | 215 | ), |
216 | }; | 216 | }; |
217 | 217 | ||
218 | const uint16_t PROGMEM fn_actions[] = { | ||
219 | [BASE] = ACTION_FUNCTION(BASE), | ||
220 | [PMQ] = ACTION_FUNCTION(PMQ), | ||
221 | [PMN] = ACTION_FUNCTION(PMN), | ||
222 | }; | ||
223 | |||
224 | // Runs just one time when the keyboard initializes. | 218 | // Runs just one time when the keyboard initializes. |
225 | void matrix_init_user(void) { | 219 | void matrix_init_user(void) { |
226 | set_unicode_input_mode(UC_LNX); | 220 | set_unicode_input_mode(UC_LNX); |
diff --git a/layouts/community/ergodox/colemak_osx_pc_no/keymap.c b/layouts/community/ergodox/colemak_osx_pc_no/keymap.c index e94e6f219..b9986e0e9 100644 --- a/layouts/community/ergodox/colemak_osx_pc_no/keymap.c +++ b/layouts/community/ergodox/colemak_osx_pc_no/keymap.c | |||
@@ -9,6 +9,18 @@ | |||
9 | #define NUMB_SYMB_MAC 3 // numbers and symbols mac | 9 | #define NUMB_SYMB_MAC 3 // numbers and symbols mac |
10 | #define FUNCTION 4 // function keys | 10 | #define FUNCTION 4 // function keys |
11 | 11 | ||
12 | enum custom_keycodes { | ||
13 | TILDE_NO = SAFE_RANGE, | ||
14 | LESS_NO, | ||
15 | GRTR_NO, | ||
16 | CIRC_NO, | ||
17 | ACUT_NO, | ||
18 | GRV_NO, | ||
19 | LESS_NO_MAC, | ||
20 | GRTR_NO_MAC, | ||
21 | ACUT_NO_MAC | ||
22 | }; | ||
23 | |||
12 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 24 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
13 | 25 | ||
14 | /* Keymap 0: Basic layer PC | 26 | /* Keymap 0: Basic layer PC |
@@ -43,11 +55,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
43 | NO_PLUS, | 55 | NO_PLUS, |
44 | OSM(MOD_LSFT),CTL_T(KC_DOT),ALT_T(NO_MINS), | 56 | OSM(MOD_LSFT),CTL_T(KC_DOT),ALT_T(NO_MINS), |
45 | // right hand | 57 | // right hand |
46 | KC_FN5, NO_DLR, NO_LPRN, NO_RPRN ,KC_FN3, KC_FN4,NO_AT, | 58 | CIRC_NO, NO_DLR, NO_LPRN, NO_RPRN ,LESS_NO, GRTR_NO,NO_AT, |
47 | NO_QUOT, KC_J, KC_L, KC_U, KC_Y, NO_ARNG, NO_AE , | 59 | NO_QUOT, KC_J, KC_L, KC_U, KC_Y, NO_ARNG, NO_AE , |
48 | KC_H, KC_N, KC_E, KC_I, KC_O, NO_OSTR, | 60 | KC_H, KC_N, KC_E, KC_I, KC_O, NO_OSTR, |
49 | NO_EQL, KC_K, KC_M, KC_RIGHT, KC_DOWN, KC_UP, NO_UNDS, | 61 | NO_EQL, KC_K, KC_M, KC_RIGHT, KC_DOWN, KC_UP, NO_UNDS, |
50 | KC_LEFT, KC_ESC, KC_FN7, KC_HASH, MO(2), | 62 | KC_LEFT, KC_ESC, GRV_NO, KC_HASH, MO(2), |
51 | KC_INSERT, NO_SLSH, | 63 | KC_INSERT, NO_SLSH, |
52 | KC_DEL, | 64 | KC_DEL, |
53 | KC_BSPC,KC_ENT,KC_SPC | 65 | KC_BSPC,KC_ENT,KC_SPC |
@@ -83,7 +95,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
83 | KC_TRNS, | 95 | KC_TRNS, |
84 | KC_TRNS,GUI_T(KC_DOT) , KC_TRNS, | 96 | KC_TRNS,GUI_T(KC_DOT) , KC_TRNS, |
85 | // right hand | 97 | // right hand |
86 | KC_TRNS, S(NO_4), KC_TRNS,KC_TRNS,KC_FN8, KC_FN9,NO_QUOT, | 98 | KC_TRNS, S(NO_4), KC_TRNS,KC_TRNS,LESS_NO_MAC, GRTR_NO_MAC,NO_QUOT, |
87 | NO_LABK, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 99 | NO_LABK, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
88 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 100 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
89 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 101 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
@@ -125,7 +137,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
125 | KC_TRNS, KC_TRNS, KC_TRNS, | 137 | KC_TRNS, KC_TRNS, KC_TRNS, |
126 | // right hand | 138 | // right hand |
127 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 139 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
128 | KC_TRNS, KC_TRNS, KC_FN2, KC_FN6 , KC_TRNS, KC_TRNS, KC_TRNS, | 140 | KC_TRNS, KC_TRNS, TILDE_NO, ACUT_NO , KC_TRNS, KC_TRNS, KC_TRNS, |
129 | KC_TRNS, KC_5, KC_6, KC_7, KC_8, KC_TRNS, | 141 | KC_TRNS, KC_5, KC_6, KC_7, KC_8, KC_TRNS, |
130 | KC_TRNS, KC_HOME, KC_9, KC_END, KC_PGDN, KC_PGUP, KC_TRNS, | 142 | KC_TRNS, KC_HOME, KC_9, KC_END, KC_PGDN, KC_PGUP, KC_TRNS, |
131 | KC_HOME, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 143 | KC_HOME, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
@@ -166,7 +178,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
166 | KC_TRNS, KC_TRNS, KC_TRNS, | 178 | KC_TRNS, KC_TRNS, KC_TRNS, |
167 | // right hand | 179 | // right hand |
168 | KC_TRNS, KC_TRNS, KC_TRNS , KC_TRNS, KC_TRNS , KC_TRNS, KC_TRNS, | 180 | KC_TRNS, KC_TRNS, KC_TRNS , KC_TRNS, KC_TRNS , KC_TRNS, KC_TRNS, |
169 | KC_TRNS, KC_TRNS, KC_FN2, KC_FN10, KC_TRNS, KC_TRNS, KC_TRNS, | 181 | KC_TRNS, KC_TRNS, TILDE_NO, ACUT_NO_MAC, KC_TRNS, KC_TRNS, KC_TRNS, |
170 | KC_TRNS, KC_5, KC_6, KC_7, KC_8, KC_TRNS, | 182 | KC_TRNS, KC_5, KC_6, KC_7, KC_8, KC_TRNS, |
171 | KC_TRNS, KC_HOME, KC_9, KC_END, KC_PGDN, KC_PGUP, KC_TRNS, | 183 | KC_TRNS, KC_HOME, KC_9, KC_END, KC_PGDN, KC_PGUP, KC_TRNS, |
172 | KC_HOME, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 184 | KC_HOME, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
@@ -217,47 +229,57 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
217 | ) | 229 | ) |
218 | }; | 230 | }; |
219 | 231 | ||
220 | enum macro_id { | 232 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { |
221 | TILDE_NO, LESS_NO, GRTR_NO, CIRC_NO, ACUT_NO, GRV_NO, LESS_NO_MAC, GRTR_NO_MAC, ACUT_NO_MAC | 233 | switch (keycode) { |
222 | }; | ||
223 | |||
224 | const uint16_t PROGMEM fn_actions[] = { | ||
225 | [2] = ACTION_MACRO(TILDE_NO), // Completed ~ character(pc and mac), no space needed. | ||
226 | [3] = ACTION_MACRO(LESS_NO), // < completed on keypress down, to avoid shifting the next character if it is not released first. | ||
227 | [4] = ACTION_MACRO(GRTR_NO), // > completed on keypress down, to avoid shifting the next character if it is not released first. | ||
228 | [5] = ACTION_MACRO(CIRC_NO), // Completed ^ character, no space needed. | ||
229 | [6] = ACTION_MACRO(ACUT_NO), // Completed ´ character, no space needed. | ||
230 | [7] = ACTION_MACRO(GRV_NO), // Completed ` character, no space needed. | ||
231 | [8] = ACTION_MACRO(LESS_NO_MAC), // < completed on keypress down, to avoid same button problem when typing <> quickly | ||
232 | [9] = ACTION_MACRO(GRTR_NO_MAC), // > completed on keypress down, to avoid same button problem when typing <> quickly | ||
233 | [10] = ACTION_MACRO(ACUT_NO_MAC), // Completed ´ character, no space needed | ||
234 | }; | ||
235 | |||
236 | |||
237 | |||
238 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | ||
239 | { | ||
240 | keyevent_t event = record->event; | ||
241 | |||
242 | switch (id) { | ||
243 | case TILDE_NO: | 234 | case TILDE_NO: |
244 | return (event.pressed ? MACRO( D(RALT), T(RBRC), U(RALT), T(SPC), END ) : MACRO_NONE); | 235 | if (record->event.pressed) { |
236 | tap_code16(ALGR(KC_RBRC)); | ||
237 | tap_code(KC_SPC); | ||
238 | } | ||
239 | return false; | ||
245 | case LESS_NO: | 240 | case LESS_NO: |
246 | return (event.pressed ? MACRO( T(NUBS), END ) : MACRO_NONE); | 241 | if (record->event.pressed) { |
242 | tap_code(KC_NUBS); | ||
243 | } | ||
244 | return false; | ||
247 | case GRTR_NO: | 245 | case GRTR_NO: |
248 | return (event.pressed ? MACRO( D(LSFT), T(NUBS), U(LSFT), END ) : MACRO_NONE); | 246 | if (record->event.pressed) { |
247 | tap_code16(S(KC_NUBS)); | ||
248 | } | ||
249 | return false; | ||
249 | case CIRC_NO: | 250 | case CIRC_NO: |
250 | return (event.pressed ? MACRO( D(LSFT), T(RBRC), U(LSFT), T(SPC), END ) : MACRO_NONE); | 251 | if (record->event.pressed) { |
252 | tap_code16(S(KC_RBRC)); | ||
253 | tap_code(KC_SPC); | ||
254 | } | ||
255 | return false; | ||
251 | case ACUT_NO: | 256 | case ACUT_NO: |
252 | return (event.pressed ? MACRO( D(RALT), T(EQL), U(RALT), T(SPC), END ) : MACRO_NONE); | 257 | if (record->event.pressed) { |
258 | tap_code16(ALGR(KC_EQL)); | ||
259 | tap_code(KC_SPC); | ||
260 | } | ||
261 | return false; | ||
253 | case GRV_NO: | 262 | case GRV_NO: |
254 | return (event.pressed ? MACRO( D(LSFT), T(EQL), T(SPC), U(LSFT), END ) : MACRO_NONE); | 263 | if (record->event.pressed) { |
264 | SEND_STRING(SS_LSFT("= ")); | ||
265 | } | ||
266 | return false; | ||
255 | case LESS_NO_MAC: | 267 | case LESS_NO_MAC: |
256 | return (event.pressed ? MACRO( T(GRV), END ) : MACRO_NONE); | 268 | if (record->event.pressed) { |
269 | tap_code(KC_GRV); | ||
270 | } | ||
271 | return false; | ||
257 | case GRTR_NO_MAC: | 272 | case GRTR_NO_MAC: |
258 | return (event.pressed ? MACRO( D(LSFT), T(GRV), U(LSFT), END ) : MACRO_NONE); | 273 | if (record->event.pressed) { |
274 | tap_code16(S(KC_GRV)); | ||
275 | } | ||
276 | return false; | ||
259 | case ACUT_NO_MAC: | 277 | case ACUT_NO_MAC: |
260 | return (event.pressed ? MACRO( T(EQL), T(SPC), END ) : MACRO_NONE); | 278 | if (record->event.pressed) { |
279 | tap_code(KC_EQL); | ||
280 | tap_code(KC_SPC); | ||
281 | } | ||
282 | return false; | ||
261 | } | 283 | } |
262 | return MACRO_NONE; | 284 | return true; |
263 | }; | 285 | } |
diff --git a/layouts/community/ergodox/deadcyclo/keymap.c b/layouts/community/ergodox/deadcyclo/keymap.c index 0ae1ef7fb..345e25e03 100644 --- a/layouts/community/ergodox/deadcyclo/keymap.c +++ b/layouts/community/ergodox/deadcyclo/keymap.c | |||
@@ -1,6 +1,4 @@ | |||
1 | #include QMK_KEYBOARD_H | 1 | #include QMK_KEYBOARD_H |
2 | #include "debug.h" | ||
3 | #include "action_layer.h" | ||
4 | #include "version.h" | 2 | #include "version.h" |
5 | 3 | ||
6 | #define BASE 0 // default layer | 4 | #define BASE 0 // default layer |
@@ -9,45 +7,19 @@ | |||
9 | #define UNI 3 // unicode 1 | 7 | #define UNI 3 // unicode 1 |
10 | #define UNI2 4 // unicode 2 | 8 | #define UNI2 4 // unicode 2 |
11 | 9 | ||
12 | enum macros { | 10 | enum custom_keycodes { |
13 | RUN | 11 | I3_RUN = SAFE_RANGE, |
14 | }; | ||
15 | |||
16 | enum function_ids { | ||
17 | EMOJI, | ||
18 | EMOJI2, | ||
19 | EPRM, | ||
20 | VRSN, | 12 | VRSN, |
21 | RGB_SLD, | 13 | I3_GO_GROUP_1, |
22 | GO_GROUP | 14 | I3_GO_GROUP_2, |
23 | }; | 15 | I3_GO_GROUP_3, |
24 | 16 | I3_GO_GROUP_4, | |
25 | /* opt can only be 0-15 */ | 17 | I3_GO_GROUP_5, |
26 | enum emojis { | 18 | I3_GO_GROUP_6, |
27 | SHRUG, | 19 | I3_GO_GROUP_7, |
28 | YAY, | 20 | I3_GO_GROUP_8, |
29 | HUG, | 21 | I3_GO_GROUP_9, |
30 | SMILE, | 22 | I3_GO_GROUP_10, |
31 | SMILE2, | ||
32 | HMM1, | ||
33 | HMM2, | ||
34 | BEAR1, | ||
35 | BEAR2, | ||
36 | FUU, | ||
37 | EGGY1, | ||
38 | EGGY2, | ||
39 | FACE1, | ||
40 | FACE2, | ||
41 | UHU, | ||
42 | SMRK1 | ||
43 | }; | ||
44 | |||
45 | enum emojis2 { | ||
46 | SMRK2, | ||
47 | LOVE | ||
48 | }; | ||
49 | |||
50 | enum progmem_ids { | ||
51 | EMOJI_SHRUG, | 23 | EMOJI_SHRUG, |
52 | EMOJI_YAY, | 24 | EMOJI_YAY, |
53 | EMOJI_HUG, | 25 | EMOJI_HUG, |
@@ -65,20 +37,7 @@ enum progmem_ids { | |||
65 | EMOJI_UHU, | 37 | EMOJI_UHU, |
66 | EMOJI_SMRK1, | 38 | EMOJI_SMRK1, |
67 | EMOJI_SMRK2, | 39 | EMOJI_SMRK2, |
68 | EMOJI_LOVE, | 40 | EMOJI_LOVE |
69 | F_EPRM, | ||
70 | F_VRSN, | ||
71 | F_RGB_SLD, | ||
72 | I3_GO_GROUP_10, | ||
73 | I3_GO_GROUP_1, | ||
74 | I3_GO_GROUP_2, | ||
75 | I3_GO_GROUP_3, | ||
76 | I3_GO_GROUP_4, | ||
77 | I3_GO_GROUP_5, | ||
78 | I3_GO_GROUP_6, | ||
79 | I3_GO_GROUP_7, | ||
80 | I3_GO_GROUP_8, | ||
81 | I3_GO_GROUP_9, | ||
82 | }; | 41 | }; |
83 | 42 | ||
84 | // TODO: Finish the macros for i3 (Macros should potentially be own function instead to make things easier? some of them at least, f. ex. the ones that use 1-0 keys so we can have a single switch) | 43 | // TODO: Finish the macros for i3 (Macros should potentially be own function instead to make things easier? some of them at least, f. ex. the ones that use 1-0 keys so we can have a single switch) |
@@ -163,7 +122,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
163 | KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS, | 122 | KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS, |
164 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, | 123 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, |
165 | RGB_TOG,RGB_MOD, | 124 | RGB_TOG,RGB_MOD, |
166 | F(F_RGB_SLD), | 125 | RGB_M_P, |
167 | RGB_VAD,RGB_VAI,KC_TRNS, | 126 | RGB_VAD,RGB_VAI,KC_TRNS, |
168 | // right hand | 127 | // right hand |
169 | KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, | 128 | KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, |
@@ -173,7 +132,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
173 | KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS, | 132 | KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS, |
174 | RGB_HUD, RGB_HUI, | 133 | RGB_HUD, RGB_HUI, |
175 | KC_TRNS, | 134 | KC_TRNS, |
176 | F(F_EPRM), KC_DEL, KC_TRNS | 135 | EEP_RST, KC_DEL, KC_TRNS |
177 | ), | 136 | ), |
178 | /* Keymap 2: Media, mouse and navigation | 137 | /* Keymap 2: Media, mouse and navigation |
179 | * | 138 | * |
@@ -198,8 +157,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
198 | */ | 157 | */ |
199 | // MEDIA , MOUSE and NAVIGATION | 158 | // MEDIA , MOUSE and NAVIGATION |
200 | [MDIA] = LAYOUT_ergodox( | 159 | [MDIA] = LAYOUT_ergodox( |
201 | KC_TRNS, F(I3_GO_GROUP_1), F(I3_GO_GROUP_2), F(I3_GO_GROUP_3), F(I3_GO_GROUP_4), F(I3_GO_GROUP_5), F(I3_GO_GROUP_6), | 160 | KC_TRNS, I3_GO_GROUP_1, I3_GO_GROUP_2, I3_GO_GROUP_3, I3_GO_GROUP_4, I3_GO_GROUP_5, I3_GO_GROUP_6, |
202 | KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, M(RUN), KC_TRNS, KC_TRNS, | 161 | KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, I3_RUN, KC_TRNS, KC_TRNS, |
203 | KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, | 162 | KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, |
204 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 163 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
205 | KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, | 164 | KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, |
@@ -207,7 +166,7 @@ KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, M(RUN), KC_TRNS, KC_TRNS, | |||
207 | KC_TRNS, | 166 | KC_TRNS, |
208 | KC_TRNS, KC_TRNS, KC_TRNS, | 167 | KC_TRNS, KC_TRNS, KC_TRNS, |
209 | // right hand | 168 | // right hand |
210 | F(I3_GO_GROUP_6), F(I3_GO_GROUP_7), F(I3_GO_GROUP_8), F(I3_GO_GROUP_9), F(I3_GO_GROUP_10), KC_TRNS, KC_TRNS, | 169 | I3_GO_GROUP_6, I3_GO_GROUP_7, I3_GO_GROUP_8, I3_GO_GROUP_9, I3_GO_GROUP_10, KC_TRNS, KC_TRNS, |
211 | KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, | 170 | KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, |
212 | KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_MPLY, | 171 | KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_MPLY, |
213 | KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, | 172 | KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, |
@@ -241,10 +200,10 @@ KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, M(RUN), KC_TRNS, KC_TRNS, | |||
241 | // Unicode | 200 | // Unicode |
242 | [UNI] = LAYOUT_ergodox( | 201 | [UNI] = LAYOUT_ergodox( |
243 | KC_TRNS, UC(0x250c), UC(0x2510), UC(0x2514), UC(0x2518), UC(0x2502), UC(0x2500), | 202 | KC_TRNS, UC(0x250c), UC(0x2510), UC(0x2514), UC(0x2518), UC(0x2502), UC(0x2500), |
244 | KC_TRNS, F(EMOJI_SHRUG), F(EMOJI_YAY), F(EMOJI_HUG), F(EMOJI_SMILE), F(EMOJI_SMILE2), KC_TRNS, | 203 | KC_TRNS, EMOJI_SHRUG, EMOJI_YAY, EMOJI_HUG, EMOJI_SMILE, EMOJI_SMILE2, KC_TRNS, |
245 | KC_TRNS, F(EMOJI_HMM1), F(EMOJI_HMM2), F(EMOJI_BEAR1), F(EMOJI_BEAR2), F(EMOJI_FUU), | 204 | KC_TRNS, EMOJI_HMM1, EMOJI_HMM2, EMOJI_BEAR1, EMOJI_BEAR2, EMOJI_FUU, |
246 | KC_TRNS, F(EMOJI_EGGY1), F(EMOJI_EGGY2), F(EMOJI_FACE1), F(EMOJI_FACE2), F(EMOJI_UHU), KC_TRNS, | 205 | KC_TRNS, EMOJI_EGGY1, EMOJI_EGGY2, EMOJI_FACE1, EMOJI_FACE2, EMOJI_UHU, KC_TRNS, |
247 | KC_TRNS, F(EMOJI_SMRK1), F(EMOJI_SMRK2), F(EMOJI_LOVE), F(F_VRSN), | 206 | KC_TRNS, EMOJI_SMRK1, EMOJI_SMRK2, EMOJI_LOVE, VRSN, |
248 | KC_TRNS, KC_TRNS, | 207 | KC_TRNS, KC_TRNS, |
249 | KC_TRNS, | 208 | KC_TRNS, |
250 | KC_TRNS, KC_TRNS, KC_TRNS, | 209 | KC_TRNS, KC_TRNS, KC_TRNS, |
@@ -302,220 +261,84 @@ KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, M(RUN), KC_TRNS, KC_TRNS, | |||
302 | ), | 261 | ), |
303 | }; | 262 | }; |
304 | 263 | ||
305 | const uint16_t PROGMEM fn_actions[] = { | 264 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { |
306 | [EMOJI_SHRUG] = ACTION_FUNCTION_OPT(EMOJI, SHRUG), | 265 | if (record->event.pressed) { |
307 | [EMOJI_YAY] = ACTION_FUNCTION_OPT(EMOJI, YAY), | 266 | switch (keycode) { |
308 | [EMOJI_HUG] = ACTION_FUNCTION_OPT(EMOJI,HUG), | 267 | case I3_RUN: |
309 | [EMOJI_SMILE] = ACTION_FUNCTION_OPT(EMOJI,SMILE), | 268 | tap_code16(C(KC_I)); |
310 | [EMOJI_SMILE2] = ACTION_FUNCTION_OPT(EMOJI,SMILE2), | 269 | tap_code(KC_R); |
311 | [EMOJI_HMM1] = ACTION_FUNCTION_OPT(EMOJI,HMM1), | 270 | return false; |
312 | [EMOJI_HMM2] = ACTION_FUNCTION_OPT(EMOJI,HMM2), | 271 | case VRSN: |
313 | [EMOJI_BEAR1] = ACTION_FUNCTION_OPT(EMOJI,BEAR1), | 272 | SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); |
314 | [EMOJI_BEAR2] = ACTION_FUNCTION_OPT(EMOJI,BEAR2), | 273 | return false; |
315 | [EMOJI_FUU] = ACTION_FUNCTION_OPT(EMOJI,FUU), | 274 | case I3_GO_GROUP_1 ... I3_GO_GROUP_10: |
316 | [EMOJI_EGGY1] = ACTION_FUNCTION_OPT(EMOJI,EGGY1), | 275 | tap_code16(C(KC_I)); |
317 | [EMOJI_EGGY2] = ACTION_FUNCTION_OPT(EMOJI,EGGY2), | 276 | tap_code(KC_G); |
318 | [EMOJI_FACE1] = ACTION_FUNCTION_OPT(EMOJI,FACE1), | 277 | if (keycode == I3_GO_GROUP_10) { |
319 | [EMOJI_FACE2] = ACTION_FUNCTION_OPT(EMOJI,FACE2), | 278 | tap_code(KC_0); |
320 | [EMOJI_UHU] = ACTION_FUNCTION_OPT(EMOJI,UHU), | 279 | } else { |
321 | [EMOJI_SMRK1] = ACTION_FUNCTION_OPT(EMOJI,SMRK1), | 280 | tap_code(KC_1 + (keycode - I3_GO_GROUP_1)); |
322 | [EMOJI_SMRK2] = ACTION_FUNCTION_OPT(EMOJI2,SMRK2), | 281 | } |
323 | [EMOJI_LOVE] = ACTION_FUNCTION_OPT(EMOJI2,LOVE), | 282 | return false; |
324 | [F_EPRM] = ACTION_FUNCTION(EPRM), | 283 | case EMOJI_SHRUG: |
325 | [F_VRSN] = ACTION_FUNCTION(VRSN), | 284 | send_unicode_string("¯\\_(ツ)_/¯"); |
326 | [F_RGB_SLD] = ACTION_FUNCTION(RGB_SLD), | 285 | return false; |
327 | [I3_GO_GROUP_10]= ACTION_FUNCTION_OPT(GO_GROUP,0), | 286 | case EMOJI_YAY: |
328 | [I3_GO_GROUP_1] = ACTION_FUNCTION_OPT(GO_GROUP,1), | 287 | SEND_STRING("\\o/"); |
329 | [I3_GO_GROUP_2] = ACTION_FUNCTION_OPT(GO_GROUP,2), | 288 | return false; |
330 | [I3_GO_GROUP_3] = ACTION_FUNCTION_OPT(GO_GROUP,3), | 289 | case EMOJI_HUG: |
331 | [I3_GO_GROUP_4] = ACTION_FUNCTION_OPT(GO_GROUP,4), | 290 | send_unicode_string("༼ つ ◕_◕ ༽つ"); |
332 | [I3_GO_GROUP_5] = ACTION_FUNCTION_OPT(GO_GROUP,5), | 291 | return false; |
333 | [I3_GO_GROUP_6] = ACTION_FUNCTION_OPT(GO_GROUP,6), | 292 | case EMOJI_SMILE: |
334 | [I3_GO_GROUP_7] = ACTION_FUNCTION_OPT(GO_GROUP,7), | 293 | send_unicode_string("ʘ‿ʘ"); |
335 | [I3_GO_GROUP_8] = ACTION_FUNCTION_OPT(GO_GROUP,8), | 294 | return false; |
336 | [I3_GO_GROUP_9] = ACTION_FUNCTION_OPT(GO_GROUP,9), | 295 | case EMOJI_SMILE2: |
337 | }; | 296 | send_unicode_string("(ʘ‿ʘ)"); |
338 | 297 | return false; | |
339 | #define TAP_ONCE(code) \ | 298 | case EMOJI_HMM1: |
340 | register_code (code); \ | 299 | send_unicode_string("ಠ_ಠ"); |
341 | unregister_code (code) | 300 | return false; |
342 | 301 | case EMOJI_HMM2: | |
343 | void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { | 302 | send_unicode_string("(ಠ_ಠ)"); |
344 | if (record->event.pressed) { | 303 | return false; |
345 | switch(id) { | 304 | case EMOJI_BEAR1: |
346 | case EPRM: | 305 | send_unicode_string("ʕ•ᴥ•ʔ"); |
347 | eeconfig_init(); | 306 | return false; |
348 | break; | 307 | case EMOJI_BEAR2: |
349 | case VRSN: | 308 | send_unicode_string("(ᵔᴥᵔ)"); |
350 | SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); | 309 | return false; |
351 | break; | 310 | case EMOJI_FUU: |
352 | case RGB_SLD: | 311 | send_unicode_string("╭∩╮(-_-)╭∩╮"); |
353 | #ifdef RGBLIGHT_ENABLE | 312 | return false; |
354 | rgblight_mode(1); | 313 | case EMOJI_EGGY1: |
355 | #endif | 314 | send_unicode_string("(╯°□°)╯"); |
356 | break; | 315 | return false; |
357 | case GO_GROUP: | 316 | case EMOJI_EGGY2: |
358 | register_code(KC_LCTL); TAP_ONCE(KC_I); unregister_code(KC_LCTL); | 317 | send_unicode_string("ノ( ゜-゜ノ)"); |
359 | TAP_ONCE(KC_G); | 318 | return false; |
360 | if (opt == 0) { | 319 | case EMOJI_FACE1: |
361 | TAP_ONCE(39); | 320 | SEND_STRING("(-_-)"); |
362 | } else { | 321 | return false; |
363 | TAP_ONCE(29+opt); | 322 | case EMOJI_FACE2: |
364 | } | 323 | send_unicode_string("(•_•)"); |
365 | break; | 324 | return false; |
366 | case EMOJI: | 325 | case EMOJI_UHU: |
367 | switch(opt) { | 326 | send_unicode_string("⊙﹏⊙"); |
368 | case SHRUG: | 327 | return false; |
369 | unicode_input_start(); register_hex(0xaf); unicode_input_finish(); | 328 | case EMOJI_SMRK1: |
370 | TAP_ONCE (KC_BSLS); | 329 | send_unicode_string("^̮^"); |
371 | register_code (KC_RSFT); TAP_ONCE (KC_MINS); TAP_ONCE (KC_9); unregister_code (KC_RSFT); | 330 | return false; |
372 | unicode_input_start (); register_hex(0x30c4); unicode_input_finish(); | 331 | case EMOJI_SMRK2: |
373 | register_code (KC_RSFT); TAP_ONCE (KC_0); TAP_ONCE (KC_MINS); unregister_code (KC_RSFT); | 332 | send_unicode_string("(^̮^)"); |
374 | TAP_ONCE (KC_SLSH); | 333 | return false; |
375 | unicode_input_start (); register_hex(0xaf); unicode_input_finish(); | 334 | case EMOJI_LOVE: |
376 | break; | 335 | send_unicode_string("♥‿♥"); |
377 | case YAY: | 336 | return false; |
378 | SEND_STRING ("\\o/"); | 337 | } |
379 | break; | ||
380 | case HUG: | ||
381 | unicode_input_start(); register_hex(0x0f3c); unicode_input_finish(); | ||
382 | TAP_ONCE (KC_SPC); | ||
383 | unicode_input_start(); register_hex(0x3064); unicode_input_finish(); | ||
384 | TAP_ONCE (KC_SPC); | ||
385 | unicode_input_start(); register_hex(0x25d5); unicode_input_finish(); | ||
386 | unicode_input_start(); register_hex(0x005f); unicode_input_finish(); | ||
387 | unicode_input_start(); register_hex(0x25d5); unicode_input_finish(); | ||
388 | TAP_ONCE (KC_SPC); | ||
389 | unicode_input_start(); register_hex(0x0f3d); unicode_input_finish(); | ||
390 | unicode_input_start(); register_hex(0x3064); unicode_input_finish(); | ||
391 | break; | ||
392 | case SMILE: | ||
393 | unicode_input_start(); register_hex(0x0298); unicode_input_finish(); | ||
394 | unicode_input_start(); register_hex(0x203f); unicode_input_finish(); | ||
395 | unicode_input_start(); register_hex(0x0298); unicode_input_finish(); | ||
396 | break; | ||
397 | case SMILE2: | ||
398 | unicode_input_start(); register_hex(0x0028); unicode_input_finish(); | ||
399 | unicode_input_start(); register_hex(0x0298); unicode_input_finish(); | ||
400 | unicode_input_start(); register_hex(0x203f); unicode_input_finish(); | ||
401 | unicode_input_start(); register_hex(0x0298); unicode_input_finish(); | ||
402 | unicode_input_start(); register_hex(0x0029); unicode_input_finish(); | ||
403 | break; | ||
404 | case HMM1: | ||
405 | unicode_input_start(); register_hex(0x0ca0); unicode_input_finish(); | ||
406 | unicode_input_start(); register_hex(0x005f); unicode_input_finish(); | ||
407 | unicode_input_start(); register_hex(0x0ca0); unicode_input_finish(); | ||
408 | break; | ||
409 | case HMM2: | ||
410 | unicode_input_start(); register_hex(0x0028); unicode_input_finish(); | ||
411 | unicode_input_start(); register_hex(0x0ca0); unicode_input_finish(); | ||
412 | unicode_input_start(); register_hex(0x005f); unicode_input_finish(); | ||
413 | unicode_input_start(); register_hex(0x0ca0); unicode_input_finish(); | ||
414 | unicode_input_start(); register_hex(0x0029); unicode_input_finish(); | ||
415 | break; | ||
416 | case BEAR1: | ||
417 | unicode_input_start(); register_hex(0x0295); unicode_input_finish(); | ||
418 | unicode_input_start(); register_hex(0x2022); unicode_input_finish(); | ||
419 | unicode_input_start(); register_hex(0x1d25); unicode_input_finish(); | ||
420 | unicode_input_start(); register_hex(0x2022); unicode_input_finish(); | ||
421 | unicode_input_start(); register_hex(0x0294); unicode_input_finish(); | ||
422 | break; | ||
423 | case BEAR2: | ||
424 | unicode_input_start(); register_hex(0x0028); unicode_input_finish(); | ||
425 | unicode_input_start(); register_hex(0x1d54); unicode_input_finish(); | ||
426 | unicode_input_start(); register_hex(0x1d25); unicode_input_finish(); | ||
427 | unicode_input_start(); register_hex(0x1d54); unicode_input_finish(); | ||
428 | unicode_input_start(); register_hex(0x0029); unicode_input_finish(); | ||
429 | break; | ||
430 | case FUU: | ||
431 | unicode_input_start(); register_hex(0x256d); unicode_input_finish(); | ||
432 | unicode_input_start(); register_hex(0x2229); unicode_input_finish(); | ||
433 | unicode_input_start(); register_hex(0x256e); unicode_input_finish(); | ||
434 | unicode_input_start(); register_hex(0x0028); unicode_input_finish(); | ||
435 | unicode_input_start(); register_hex(0x002d); unicode_input_finish(); | ||
436 | unicode_input_start(); register_hex(0x005f); unicode_input_finish(); | ||
437 | unicode_input_start(); register_hex(0x002d); unicode_input_finish(); | ||
438 | unicode_input_start(); register_hex(0x0029); unicode_input_finish(); | ||
439 | unicode_input_start(); register_hex(0x256d); unicode_input_finish(); | ||
440 | unicode_input_start(); register_hex(0x2229); unicode_input_finish(); | ||
441 | unicode_input_start(); register_hex(0x256e); unicode_input_finish(); | ||
442 | break; | ||
443 | case EGGY1: | ||
444 | unicode_input_start(); register_hex(0x0028); unicode_input_finish(); | ||
445 | unicode_input_start(); register_hex(0x256f); unicode_input_finish(); | ||
446 | unicode_input_start(); register_hex(0x00b0); unicode_input_finish(); | ||
447 | unicode_input_start(); register_hex(0x25a1); unicode_input_finish(); | ||
448 | unicode_input_start(); register_hex(0x00b0); unicode_input_finish(); | ||
449 | unicode_input_start(); register_hex(0xff09); unicode_input_finish(); | ||
450 | unicode_input_start(); register_hex(0x256f); unicode_input_finish(); | ||
451 | break; | ||
452 | case EGGY2: | ||
453 | unicode_input_start(); register_hex(0x30ce); unicode_input_finish(); | ||
454 | unicode_input_start(); register_hex(0x0028); unicode_input_finish(); | ||
455 | unicode_input_start(); register_hex(0x0020); unicode_input_finish(); | ||
456 | unicode_input_start(); register_hex(0x309c); unicode_input_finish(); | ||
457 | unicode_input_start(); register_hex(0x002d); unicode_input_finish(); | ||
458 | unicode_input_start(); register_hex(0x309c); unicode_input_finish(); | ||
459 | unicode_input_start(); register_hex(0x30ce); unicode_input_finish(); | ||
460 | unicode_input_start(); register_hex(0x0029); unicode_input_finish(); | ||
461 | break; | ||
462 | case FACE1: | ||
463 | unicode_input_start(); register_hex(0x0028); unicode_input_finish(); | ||
464 | unicode_input_start(); register_hex(0x002d); unicode_input_finish(); | ||
465 | unicode_input_start(); register_hex(0x005f); unicode_input_finish(); | ||
466 | unicode_input_start(); register_hex(0x002d); unicode_input_finish(); | ||
467 | unicode_input_start(); register_hex(0x0029); unicode_input_finish(); | ||
468 | break; | ||
469 | case FACE2: | ||
470 | unicode_input_start(); register_hex(0x0028); unicode_input_finish(); | ||
471 | unicode_input_start(); register_hex(0x2022); unicode_input_finish(); | ||
472 | unicode_input_start(); register_hex(0x005f); unicode_input_finish(); | ||
473 | unicode_input_start(); register_hex(0x2022); unicode_input_finish(); | ||
474 | unicode_input_start(); register_hex(0x0029); unicode_input_finish(); | ||
475 | break; | ||
476 | case UHU: | ||
477 | unicode_input_start(); register_hex(0x2299); unicode_input_finish(); | ||
478 | unicode_input_start(); register_hex(0xfe4f); unicode_input_finish(); | ||
479 | unicode_input_start(); register_hex(0x2299); unicode_input_finish(); | ||
480 | break; | ||
481 | case SMRK1: | ||
482 | unicode_input_start(); register_hex(0x005e); unicode_input_finish(); | ||
483 | unicode_input_start(); register_hex(0x032e); unicode_input_finish(); | ||
484 | unicode_input_start(); register_hex(0x005e); unicode_input_finish(); | ||
485 | break; | ||
486 | } | ||
487 | break; | ||
488 | case EMOJI2: | ||
489 | switch(opt) { | ||
490 | case SMRK2: | ||
491 | unicode_input_start(); register_hex(0x0028); unicode_input_finish(); | ||
492 | unicode_input_start(); register_hex(0x005e); unicode_input_finish(); | ||
493 | unicode_input_start(); register_hex(0x032e); unicode_input_finish(); | ||
494 | unicode_input_start(); register_hex(0x005e); unicode_input_finish(); | ||
495 | unicode_input_start(); register_hex(0x0029); unicode_input_finish(); | ||
496 | break; | ||
497 | case LOVE: | ||
498 | unicode_input_start(); register_hex(0x2665); unicode_input_finish(); | ||
499 | unicode_input_start(); register_hex(0x203f); unicode_input_finish(); | ||
500 | unicode_input_start(); register_hex(0x2665); unicode_input_finish(); | ||
501 | break; | ||
502 | } | ||
503 | break; | ||
504 | } | 338 | } |
505 | } | 339 | return true; |
506 | } | 340 | } |
507 | 341 | ||
508 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { | ||
509 | if (record->event.pressed) { | ||
510 | switch(id) { | ||
511 | case RUN: | ||
512 | return MACRO( D(LCTL), T(I), U(LCTL), T(R), END ); | ||
513 | break; | ||
514 | } | ||
515 | } | ||
516 | return MACRO_NONE; | ||
517 | }; | ||
518 | |||
519 | // Runs just one time when the keyboard initializes. | 342 | // Runs just one time when the keyboard initializes. |
520 | void matrix_init_user(void) { | 343 | void matrix_init_user(void) { |
521 | set_unicode_input_mode(UC_LNX); | 344 | set_unicode_input_mode(UC_LNX); |
diff --git a/layouts/community/ergodox/guni/keymap.c b/layouts/community/ergodox/guni/keymap.c index 0707bcf77..cc67fbdea 100644 --- a/layouts/community/ergodox/guni/keymap.c +++ b/layouts/community/ergodox/guni/keymap.c | |||
@@ -1,7 +1,4 @@ | |||
1 | #include QMK_KEYBOARD_H | 1 | #include QMK_KEYBOARD_H |
2 | #include "debug.h" | ||
3 | #include "action_layer.h" | ||
4 | #include "bootloader.h" | ||
5 | 2 | ||
6 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 3 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
7 | LAYOUT_ergodox( // layer 0 : default | 4 | LAYOUT_ergodox( // layer 0 : default |
@@ -13,7 +10,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
13 | KC_LGUI , KC_GRV,KC_LEFT,KC_RGHT,KC_LALT, | 10 | KC_LGUI , KC_GRV,KC_LEFT,KC_RGHT,KC_LALT, |
14 | KC_NO , KC_NO , | 11 | KC_NO , KC_NO , |
15 | KC_NO , | 12 | KC_NO , |
16 | KC_BSPC,KC_DEL ,KC_FN23, | 13 | KC_BSPC,KC_DEL ,TO(3), |
17 | // right hand | 14 | // right hand |
18 | KC_RBRC , KC_6, KC_7 , KC_8, KC_9, KC_0, KC_MINS, | 15 | KC_RBRC , KC_6, KC_7 , KC_8, KC_9, KC_0, KC_MINS, |
19 | KC_END , KC_Y, KC_U , KC_I, KC_O, KC_P, MT(MOD_RCTL, KC_BSLS), | 16 | KC_END , KC_Y, KC_U , KC_I, KC_O, KC_P, MT(MOD_RCTL, KC_BSLS), |
@@ -34,7 +31,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
34 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, | 31 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, |
35 | KC_TRNS,KC_TRNS, | 32 | KC_TRNS,KC_TRNS, |
36 | KC_TRNS, | 33 | KC_TRNS, |
37 | KC_TRNS,KC_TRNS,KC_FN1, | 34 | KC_TRNS,KC_TRNS,TO(0), |
38 | // right hand | 35 | // right hand |
39 | KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, | 36 | KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, |
40 | KC_TRNS,KC_EXLM,LSFT(KC_COMM),LSFT(KC_DOT),KC_EQL,KC_AMPR, KC_TRNS, | 37 | KC_TRNS,KC_EXLM,LSFT(KC_COMM),LSFT(KC_DOT),KC_EQL,KC_AMPR, KC_TRNS, |
@@ -55,7 +52,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
55 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, | 52 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, |
56 | KC_TRNS,KC_TRNS, | 53 | KC_TRNS,KC_TRNS, |
57 | KC_TRNS, | 54 | KC_TRNS, |
58 | KC_TRNS,KC_TRNS,KC_FN1 , | 55 | KC_TRNS,KC_TRNS,TO(0) , |
59 | // right hand | 56 | // right hand |
60 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, | 57 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, |
61 | KC_TRNS ,KC_TRNS, KC_HOME, KC_TRNS, KC_TRNS, KC_END ,KC_TRNS, | 58 | KC_TRNS ,KC_TRNS, KC_HOME, KC_TRNS, KC_TRNS, KC_END ,KC_TRNS, |
@@ -68,14 +65,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
68 | ), | 65 | ), |
69 | LAYOUT_ergodox( // layer 3 : teensy bootloader functions | 66 | LAYOUT_ergodox( // layer 3 : teensy bootloader functions |
70 | // left hand | 67 | // left hand |
71 | KC_FN0, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, | 68 | RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, |
72 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, | 69 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, |
73 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, | 70 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, |
74 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, | 71 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, |
75 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, | 72 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, |
76 | KC_TRNS,KC_TRNS, | 73 | KC_TRNS,KC_TRNS, |
77 | KC_TRNS, | 74 | KC_TRNS, |
78 | KC_TRNS,KC_TRNS,KC_FN1 , | 75 | KC_TRNS,KC_TRNS,TO(0) , |
79 | // right hand | 76 | // right hand |
80 | KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, | 77 | KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, |
81 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, | 78 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, |
@@ -110,31 +107,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
110 | ), | 107 | ), |
111 | 108 | ||
112 | }; | 109 | }; |
113 | |||
114 | /* id for user defined functions */ | ||
115 | enum function_id { | ||
116 | TEENSY_KEY, | ||
117 | }; | ||
118 | |||
119 | /* | ||
120 | * Fn action definition | ||
121 | */ | ||
122 | const uint16_t PROGMEM fn_actions[] = { | ||
123 | [0] = ACTION_FUNCTION(TEENSY_KEY), // FN0 - Teensy key | ||
124 | [1] = ACTION_LAYER_SET(0, ON_PRESS), | ||
125 | [23] = ACTION_LAYER_SET(3, ON_PRESS), | ||
126 | [24] = ACTION_LAYER_SET(2, ON_PRESS), | ||
127 | [26] = ACTION_LAYER_SET(1, ON_PRESS), | ||
128 | }; | ||
129 | |||
130 | void action_function(keyrecord_t *event, uint8_t id, uint8_t opt) | ||
131 | { | ||
132 | |||
133 | if (id == TEENSY_KEY) { | ||
134 | clear_keyboard(); | ||
135 | print("\n\nJump to bootloader... "); | ||
136 | wait_ms(250); | ||
137 | bootloader_jump(); // should not return | ||
138 | print("not supported.\n"); | ||
139 | } | ||
140 | } | ||
diff --git a/layouts/community/ergodox/norwegian_programmer_osx_pc/keymap.c b/layouts/community/ergodox/norwegian_programmer_osx_pc/keymap.c index 231528449..2ddd7ab20 100644 --- a/layouts/community/ergodox/norwegian_programmer_osx_pc/keymap.c +++ b/layouts/community/ergodox/norwegian_programmer_osx_pc/keymap.c | |||
@@ -7,6 +7,18 @@ | |||
7 | #define BASE_MAC 1 // default layer mac | 7 | #define BASE_MAC 1 // default layer mac |
8 | #define NUMB_FUNC 2 // numbers and function keys | 8 | #define NUMB_FUNC 2 // numbers and function keys |
9 | 9 | ||
10 | enum custom_keycodes { | ||
11 | TILDE_NO = SAFE_RANGE, | ||
12 | LESS_NO, | ||
13 | GRTR_NO, | ||
14 | CIRC_NO, | ||
15 | ACUT_NO, | ||
16 | GRV_NO, | ||
17 | LESS_NO_MAC, | ||
18 | GRTR_NO_MAC, | ||
19 | ACUT_NO_MAC | ||
20 | }; | ||
21 | |||
10 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 22 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
11 | 23 | ||
12 | /* Keymap 0: Basic layer PC | 24 | /* Keymap 0: Basic layer PC |
@@ -32,16 +44,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
32 | */ | 44 | */ |
33 | [BASE] = LAYOUT_ergodox( | 45 | [BASE] = LAYOUT_ergodox( |
34 | // left hand | 46 | // left hand |
35 | KC_PAST, NO_LBRC, NO_RBRC, NO_LCBR, NO_RCBR, KC_FN2, TG(1), | 47 | KC_PAST, NO_LBRC, NO_RBRC, NO_LCBR, NO_RCBR, TILDE_NO, TG(1), |
36 | KC_PPLS, KC_Q, KC_W, KC_E, KC_R, KC_T, NO_DQUO, | 48 | KC_PPLS, KC_Q, KC_W, KC_E, KC_R, KC_T, NO_DQUO, |
37 | KC_PSLS, KC_A, KC_S, KC_D, KC_F, KC_G, | 49 | KC_PSLS, KC_A, KC_S, KC_D, KC_F, KC_G, |
38 | KC_PMNS, KC_Z, KC_X, KC_C, KC_V, KC_B, NO_SCLN, | 50 | KC_PMNS, KC_Z, KC_X, KC_C, KC_V, KC_B, NO_SCLN, |
39 | ALT_T(KC_ESC), KC_EXLM , NO_QUES, NO_COLN, KC_TAB, | 51 | ALT_T(KC_ESC), KC_EXLM , NO_QUES, NO_COLN, KC_TAB, |
40 | KC_HASH, KC_FN7, | 52 | KC_HASH, GRV_NO, |
41 | KC_FN6, | 53 | ACUT_NO, |
42 | OSM(MOD_LSFT),CTL_T(KC_DOT),GUI_T(KC_COMMA), | 54 | OSM(MOD_LSFT),CTL_T(KC_DOT),GUI_T(KC_COMMA), |
43 | // right hand | 55 | // right hand |
44 | KC_FN5, NO_DLR, NO_LPRN, NO_RPRN ,KC_FN3, KC_FN4,NO_AT, | 56 | CIRC_NO, NO_DLR, NO_LPRN, NO_RPRN ,LESS_NO, GRTR_NO,NO_AT, |
45 | NO_QUOT, KC_Y, KC_U, KC_I, KC_O, KC_P, NO_ARNG, | 57 | NO_QUOT, KC_Y, KC_U, KC_I, KC_O, KC_P, NO_ARNG, |
46 | KC_H, KC_J, KC_K, KC_L, NO_OSTR, NO_AE, | 58 | KC_H, KC_J, KC_K, KC_L, NO_OSTR, NO_AE, |
47 | NO_EQL, KC_N, KC_M, KC_RIGHT, KC_DOWN, KC_UP, NO_BSLS, | 59 | NO_EQL, KC_N, KC_M, KC_RIGHT, KC_DOWN, KC_UP, NO_BSLS, |
@@ -78,10 +90,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
78 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 90 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
79 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 91 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
80 | KC_TRNS, ALGR(NO_BSLS), | 92 | KC_TRNS, ALGR(NO_BSLS), |
81 | KC_FN10, | 93 | ACUT_NO_MAC, |
82 | KC_TRNS,GUI_T(KC_DOT) , CTL_T(KC_COMMA), | 94 | KC_TRNS,GUI_T(KC_DOT) , CTL_T(KC_COMMA), |
83 | // right hand | 95 | // right hand |
84 | KC_TRNS, S(NO_4), KC_TRNS,KC_TRNS,KC_FN8, KC_FN9,NO_QUOT, | 96 | KC_TRNS, S(NO_4), KC_TRNS,KC_TRNS,LESS_NO_MAC, GRTR_NO_MAC,NO_QUOT, |
85 | NO_LABK, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 97 | NO_LABK, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
86 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 98 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
87 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S(ALGR(NO_7)), | 99 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S(ALGR(NO_7)), |
@@ -133,47 +145,57 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
133 | ) | 145 | ) |
134 | }; | 146 | }; |
135 | 147 | ||
136 | enum macro_id { | 148 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { |
137 | TILDE_NO, LESS_NO, GRTR_NO, CIRC_NO, ACUT_NO, GRV_NO, LESS_NO_MAC, GRTR_NO_MAC, ACUT_NO_MAC | 149 | switch (keycode) { |
138 | }; | ||
139 | |||
140 | const uint16_t PROGMEM fn_actions[] = { | ||
141 | [2] = ACTION_MACRO(TILDE_NO), // Completed ~ character(pc and mac), no space needed. | ||
142 | [3] = ACTION_MACRO(LESS_NO), // < completed on keypress down, to avoid shifting the next character if it is not released first. | ||
143 | [4] = ACTION_MACRO(GRTR_NO), // > completed on keypress down, to avoid shifting the next character if it is not released first. | ||
144 | [5] = ACTION_MACRO(CIRC_NO), // Completed ^ character, no space needed. | ||
145 | [6] = ACTION_MACRO(ACUT_NO), // Completed ´ character, no space needed. | ||
146 | [7] = ACTION_MACRO(GRV_NO), // Completed ` character, no space needed. | ||
147 | [8] = ACTION_MACRO(LESS_NO_MAC), // < completed on keypress down, to avoid same button problem when typing <> quickly | ||
148 | [9] = ACTION_MACRO(GRTR_NO_MAC), // > completed on keypress down, to avoid same button problem when typing <> quickly | ||
149 | [10] = ACTION_MACRO(ACUT_NO_MAC), // Completed ´ character, no space needed | ||
150 | }; | ||
151 | |||
152 | |||
153 | |||
154 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | ||
155 | { | ||
156 | keyevent_t event = record->event; | ||
157 | |||
158 | switch (id) { | ||
159 | case TILDE_NO: | 150 | case TILDE_NO: |
160 | return (event.pressed ? MACRO( D(RALT), T(RBRC), U(RALT), T(SPC), END ) : MACRO_NONE); | 151 | if (record->event.pressed) { |
152 | tap_code16(ALGR(KC_RBRC)); | ||
153 | tap_code(KC_SPC); | ||
154 | } | ||
155 | return false; | ||
161 | case LESS_NO: | 156 | case LESS_NO: |
162 | return (event.pressed ? MACRO( T(NUBS), END ) : MACRO_NONE); | 157 | if (record->event.pressed) { |
158 | tap_code(KC_NUBS); | ||
159 | } | ||
160 | return false; | ||
163 | case GRTR_NO: | 161 | case GRTR_NO: |
164 | return (event.pressed ? MACRO( D(LSFT), T(NUBS), U(LSFT), END ) : MACRO_NONE); | 162 | if (record->event.pressed) { |
163 | tap_code16(S(KC_NUBS)); | ||
164 | } | ||
165 | return false; | ||
165 | case CIRC_NO: | 166 | case CIRC_NO: |
166 | return (event.pressed ? MACRO( D(LSFT), T(RBRC), U(LSFT), T(SPC), END ) : MACRO_NONE); | 167 | if (record->event.pressed) { |
168 | tap_code16(S(KC_RBRC)); | ||
169 | tap_code(KC_SPC); | ||
170 | } | ||
171 | return false; | ||
167 | case ACUT_NO: | 172 | case ACUT_NO: |
168 | return (event.pressed ? MACRO( D(RALT), T(EQL), U(RALT), T(SPC), END ) : MACRO_NONE); | 173 | if (record->event.pressed) { |
174 | tap_code16(ALGR(KC_EQL)); | ||
175 | tap_code(KC_SPC); | ||
176 | } | ||
177 | return false; | ||
169 | case GRV_NO: | 178 | case GRV_NO: |
170 | return (event.pressed ? MACRO( D(LSFT), T(EQL), T(SPC), U(LSFT), END ) : MACRO_NONE); | 179 | if (record->event.pressed) { |
180 | SEND_STRING(SS_LSFT("= ")); | ||
181 | } | ||
182 | return false; | ||
171 | case LESS_NO_MAC: | 183 | case LESS_NO_MAC: |
172 | return (event.pressed ? MACRO( T(GRV), END ) : MACRO_NONE); | 184 | if (record->event.pressed) { |
185 | tap_code(KC_GRV); | ||
186 | } | ||
187 | return false; | ||
173 | case GRTR_NO_MAC: | 188 | case GRTR_NO_MAC: |
174 | return (event.pressed ? MACRO( D(LSFT), T(GRV), U(LSFT), END ) : MACRO_NONE); | 189 | if (record->event.pressed) { |
190 | tap_code16(S(KC_GRV)); | ||
191 | } | ||
192 | return false; | ||
175 | case ACUT_NO_MAC: | 193 | case ACUT_NO_MAC: |
176 | return (event.pressed ? MACRO( T(EQL), T(SPC), END ) : MACRO_NONE); | 194 | if (record->event.pressed) { |
195 | tap_code(KC_EQL); | ||
196 | tap_code(KC_SPC); | ||
197 | } | ||
198 | return false; | ||
177 | } | 199 | } |
178 | return MACRO_NONE; | 200 | return true; |
179 | }; | 201 | } |
diff --git a/layouts/community/ergodox/norwegian_programmer_osx_pc_colemak/keymap.c b/layouts/community/ergodox/norwegian_programmer_osx_pc_colemak/keymap.c index b9ddefb67..5ca8d40db 100644 --- a/layouts/community/ergodox/norwegian_programmer_osx_pc_colemak/keymap.c +++ b/layouts/community/ergodox/norwegian_programmer_osx_pc_colemak/keymap.c | |||
@@ -7,6 +7,18 @@ | |||
7 | #define BASE_MAC 1 // default layer mac | 7 | #define BASE_MAC 1 // default layer mac |
8 | #define NUMB_FUNC 2 // numbers and function keys | 8 | #define NUMB_FUNC 2 // numbers and function keys |
9 | 9 | ||
10 | enum custom_keycodes { | ||
11 | TILDE_NO = SAFE_RANGE, | ||
12 | LESS_NO, | ||
13 | GRTR_NO, | ||
14 | CIRC_NO, | ||
15 | ACUT_NO, | ||
16 | GRV_NO, | ||
17 | LESS_NO_MAC, | ||
18 | GRTR_NO_MAC, | ||
19 | ACUT_NO_MAC | ||
20 | }; | ||
21 | |||
10 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 22 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
11 | 23 | ||
12 | /* Keymap 0: Basic layer PC | 24 | /* Keymap 0: Basic layer PC |
@@ -32,16 +44,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
32 | */ | 44 | */ |
33 | [BASE] = LAYOUT_ergodox( | 45 | [BASE] = LAYOUT_ergodox( |
34 | // left hand | 46 | // left hand |
35 | KC_PAST, NO_LBRC, NO_RBRC, NO_LCBR, NO_RCBR, KC_FN2, TG(1), | 47 | KC_PAST, NO_LBRC, NO_RBRC, NO_LCBR, NO_RCBR, TILDE_NO, TG(1), |
36 | KC_PPLS, KC_Q, KC_W, KC_F, KC_P, KC_G, NO_DQUO, | 48 | KC_PPLS, KC_Q, KC_W, KC_F, KC_P, KC_G, NO_DQUO, |
37 | KC_PSLS, KC_A, KC_R, KC_S, KC_T, KC_D, | 49 | KC_PSLS, KC_A, KC_R, KC_S, KC_T, KC_D, |
38 | KC_PMNS, KC_Z, KC_X, KC_C, KC_V, KC_B, NO_SCLN, | 50 | KC_PMNS, KC_Z, KC_X, KC_C, KC_V, KC_B, NO_SCLN, |
39 | ALT_T(KC_ESC), KC_EXLM , NO_QUES, NO_COLN, KC_TAB, | 51 | ALT_T(KC_ESC), KC_EXLM , NO_QUES, NO_COLN, KC_TAB, |
40 | KC_HASH, KC_FN7, | 52 | KC_HASH, GRV_NO, |
41 | KC_FN6, | 53 | ACUT_NO, |
42 | OSM(MOD_LSFT),CTL_T(KC_DOT),GUI_T(KC_COMMA), | 54 | OSM(MOD_LSFT),CTL_T(KC_DOT),GUI_T(KC_COMMA), |
43 | // right hand | 55 | // right hand |
44 | KC_FN5, NO_DLR, NO_LPRN, NO_RPRN ,KC_FN3, KC_FN4,NO_AT, | 56 | CIRC_NO, NO_DLR, NO_LPRN, NO_RPRN ,LESS_NO, GRTR_NO,NO_AT, |
45 | NO_QUOT, KC_J, KC_L, KC_U, KC_Y, NO_ARNG, NO_AE , | 57 | NO_QUOT, KC_J, KC_L, KC_U, KC_Y, NO_ARNG, NO_AE , |
46 | KC_H, KC_N, KC_E, KC_I, KC_O, NO_OSTR, | 58 | KC_H, KC_N, KC_E, KC_I, KC_O, NO_OSTR, |
47 | NO_EQL, KC_K, KC_M, KC_RIGHT, KC_DOWN, KC_UP, NO_BSLS, | 59 | NO_EQL, KC_K, KC_M, KC_RIGHT, KC_DOWN, KC_UP, NO_BSLS, |
@@ -78,10 +90,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
78 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 90 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
79 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 91 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
80 | KC_TRNS, ALGR(NO_BSLS), | 92 | KC_TRNS, ALGR(NO_BSLS), |
81 | KC_FN10, | 93 | ACUT_NO_MAC, |
82 | KC_TRNS,GUI_T(KC_DOT) , CTL_T(KC_COMMA), | 94 | KC_TRNS,GUI_T(KC_DOT) , CTL_T(KC_COMMA), |
83 | // right hand | 95 | // right hand |
84 | KC_TRNS, S(NO_4), KC_TRNS,KC_TRNS,KC_FN8, KC_FN9,NO_QUOT, | 96 | KC_TRNS, S(NO_4), KC_TRNS,KC_TRNS,LESS_NO_MAC, GRTR_NO_MAC,NO_QUOT, |
85 | NO_LABK, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 97 | NO_LABK, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
86 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 98 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
87 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S(ALGR(NO_7)), | 99 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S(ALGR(NO_7)), |
@@ -133,47 +145,57 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
133 | ) | 145 | ) |
134 | }; | 146 | }; |
135 | 147 | ||
136 | enum macro_id { | 148 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { |
137 | TILDE_NO, LESS_NO, GRTR_NO, CIRC_NO, ACUT_NO, GRV_NO, LESS_NO_MAC, GRTR_NO_MAC, ACUT_NO_MAC | 149 | switch (keycode) { |
138 | }; | ||
139 | |||
140 | const uint16_t PROGMEM fn_actions[] = { | ||
141 | [2] = ACTION_MACRO(TILDE_NO), // Completed ~ character(pc and mac), no space needed. | ||
142 | [3] = ACTION_MACRO(LESS_NO), // < completed on keypress down, to avoid shifting the next character if it is not released first. | ||
143 | [4] = ACTION_MACRO(GRTR_NO), // > completed on keypress down, to avoid shifting the next character if it is not released first. | ||
144 | [5] = ACTION_MACRO(CIRC_NO), // Completed ^ character, no space needed. | ||
145 | [6] = ACTION_MACRO(ACUT_NO), // Completed ´ character, no space needed. | ||
146 | [7] = ACTION_MACRO(GRV_NO), // Completed ` character, no space needed. | ||
147 | [8] = ACTION_MACRO(LESS_NO_MAC), // < completed on keypress down, to avoid same button problem when typing <> quickly | ||
148 | [9] = ACTION_MACRO(GRTR_NO_MAC), // > completed on keypress down, to avoid same button problem when typing <> quickly | ||
149 | [10] = ACTION_MACRO(ACUT_NO_MAC), // Completed ´ character, no space needed | ||
150 | }; | ||
151 | |||
152 | |||
153 | |||
154 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | ||
155 | { | ||
156 | keyevent_t event = record->event; | ||
157 | |||
158 | switch (id) { | ||
159 | case TILDE_NO: | 150 | case TILDE_NO: |
160 | return (event.pressed ? MACRO( D(RALT), T(RBRC), U(RALT), T(SPC), END ) : MACRO_NONE); | 151 | if (record->event.pressed) { |
152 | tap_code16(ALGR(KC_RBRC)); | ||
153 | tap_code(KC_SPC); | ||
154 | } | ||
155 | return false; | ||
161 | case LESS_NO: | 156 | case LESS_NO: |
162 | return (event.pressed ? MACRO( T(NUBS), END ) : MACRO_NONE); | 157 | if (record->event.pressed) { |
158 | tap_code(KC_NUBS); | ||
159 | } | ||
160 | return false; | ||
163 | case GRTR_NO: | 161 | case GRTR_NO: |
164 | return (event.pressed ? MACRO( D(LSFT), T(NUBS), U(LSFT), END ) : MACRO_NONE); | 162 | if (record->event.pressed) { |
163 | tap_code16(S(KC_NUBS)); | ||
164 | } | ||
165 | return false; | ||
165 | case CIRC_NO: | 166 | case CIRC_NO: |
166 | return (event.pressed ? MACRO( D(LSFT), T(RBRC), U(LSFT), T(SPC), END ) : MACRO_NONE); | 167 | if (record->event.pressed) { |
168 | tap_code16(S(KC_RBRC)); | ||
169 | tap_code(KC_SPC); | ||
170 | } | ||
171 | return false; | ||
167 | case ACUT_NO: | 172 | case ACUT_NO: |
168 | return (event.pressed ? MACRO( D(RALT), T(EQL), U(RALT), T(SPC), END ) : MACRO_NONE); | 173 | if (record->event.pressed) { |
174 | tap_code16(ALGR(KC_EQL)); | ||
175 | tap_code(KC_SPC); | ||
176 | } | ||
177 | return false; | ||
169 | case GRV_NO: | 178 | case GRV_NO: |
170 | return (event.pressed ? MACRO( D(LSFT), T(EQL), T(SPC), U(LSFT), END ) : MACRO_NONE); | 179 | if (record->event.pressed) { |
180 | SEND_STRING(SS_LSFT("= ")); | ||
181 | } | ||
182 | return false; | ||
171 | case LESS_NO_MAC: | 183 | case LESS_NO_MAC: |
172 | return (event.pressed ? MACRO( T(GRV), END ) : MACRO_NONE); | 184 | if (record->event.pressed) { |
185 | tap_code(KC_GRV); | ||
186 | } | ||
187 | return false; | ||
173 | case GRTR_NO_MAC: | 188 | case GRTR_NO_MAC: |
174 | return (event.pressed ? MACRO( D(LSFT), T(GRV), U(LSFT), END ) : MACRO_NONE); | 189 | if (record->event.pressed) { |
190 | tap_code16(S(KC_GRV)); | ||
191 | } | ||
192 | return false; | ||
175 | case ACUT_NO_MAC: | 193 | case ACUT_NO_MAC: |
176 | return (event.pressed ? MACRO( T(EQL), T(SPC), END ) : MACRO_NONE); | 194 | if (record->event.pressed) { |
195 | tap_code(KC_EQL); | ||
196 | tap_code(KC_SPC); | ||
197 | } | ||
198 | return false; | ||
177 | } | 199 | } |
178 | return MACRO_NONE; | 200 | return true; |
179 | }; | 201 | } |
diff --git a/layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/keymap.c b/layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/keymap.c index 729810705..6bf0285ab 100644 --- a/layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/keymap.c +++ b/layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/keymap.c | |||
@@ -49,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
49 | M(KC_CAPS), M(KC_A), M(KC_S), M(KC_D), M(KC_F), M(KC_G), | 49 | M(KC_CAPS), M(KC_A), M(KC_S), M(KC_D), M(KC_F), M(KC_G), |
50 | KC_LSFT, M(KC_Z), M(KC_X), M(KC_C), M(KC_V), M(KC_B), MO(SYMB), | 50 | KC_LSFT, M(KC_Z), M(KC_X), M(KC_C), M(KC_V), M(KC_B), MO(SYMB), |
51 | KC_LCTL, KC_LALT, KC_LGUI, KC_LEFT, KC_RGHT, | 51 | KC_LCTL, KC_LALT, KC_LGUI, KC_LEFT, KC_RGHT, |
52 | KC_TRNS, KC_FN1, | 52 | KC_TRNS, F(1), |
53 | KC_HOME, | 53 | KC_HOME, |
54 | KC_BSPC, KC_DEL, KC_END, | 54 | KC_BSPC, KC_DEL, KC_END, |
55 | // right hand | 55 | // right hand |
@@ -91,7 +91,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
91 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, | 91 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, |
92 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, | 92 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, |
93 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, | 93 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, |
94 | KC_FN3, KC_FN2, | 94 | F(3), F(2), |
95 | KC_TRNS, | 95 | KC_TRNS, |
96 | KC_TRNS,KC_TRNS,KC_TRNS, | 96 | KC_TRNS,KC_TRNS,KC_TRNS, |
97 | // right hand | 97 | // right hand |
@@ -132,7 +132,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
132 | KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, | 132 | KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, |
133 | KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, | 133 | KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, |
134 | KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, | 134 | KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, |
135 | KC_FN4, KC_NO, | 135 | F(4), KC_NO, |
136 | KC_TRNS, | 136 | KC_TRNS, |
137 | KC_TRNS, KC_TRNS, KC_TRNS, | 137 | KC_TRNS, KC_TRNS, KC_TRNS, |
138 | // right hand | 138 | // right hand |
diff --git a/layouts/community/ergodox/workman_osx_mdw/keymap.c b/layouts/community/ergodox/workman_osx_mdw/keymap.c index 81fd3984b..f14d9cf4c 100644 --- a/layouts/community/ergodox/workman_osx_mdw/keymap.c +++ b/layouts/community/ergodox/workman_osx_mdw/keymap.c | |||
@@ -55,7 +55,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
55 | TG(1), KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_BSLS, | 55 | TG(1), KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_BSLS, |
56 | KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT, | 56 | KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT, |
57 | MEH_T(KC_NO),KC_K, KC_L, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, | 57 | MEH_T(KC_NO),KC_K, KC_L, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, |
58 | KC_LEFT,KC_DOWN,KC_UP, KC_RGHT, KC_FN4, | 58 | KC_LEFT,KC_DOWN,KC_UP, KC_RGHT, F(4), |
59 | KC_NO, KC_NO, | 59 | KC_NO, KC_NO, |
60 | KC_PGUP, | 60 | KC_PGUP, |
61 | KC_PGDN,KC_SPC,KC_ENT | 61 | KC_PGDN,KC_SPC,KC_ENT |