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 /layouts/community | |
| parent | e69c325a9ce84bc144dbc89978f800fc7560757d (diff) | |
| download | qmk_firmware-fd8628ccdc97482aae1814cec5c2059c2978daad.tar.gz qmk_firmware-fd8628ccdc97482aae1814cec5c2059c2978daad.zip | |
Migrate more `fn_actions` stuff (#13502)
Diffstat (limited to 'layouts/community')
8 files changed, 291 insertions, 439 deletions
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 |
