diff options
author | Ismael Venegas Castelló <ismael.vc1337@gmail.com> | 2018-12-19 18:49:56 -0600 |
---|---|---|
committer | Drashna Jaelre <drashna@live.com> | 2018-12-19 16:49:56 -0800 |
commit | 5eb8f3f6b51cecc067aaedfb8b2f08cb626381bb (patch) | |
tree | b9e1b89d43ec3be60d03daa052556f90a7190dd6 /keyboards/ergodox_ez/keymaps/hacker_dvorak/user/process_record_user.c | |
parent | b13162f7fd5a4c09dff15ff6f9713526622925a7 (diff) |
Keymap: Refactor Hacker Dvorak (#4688)
Programmer Dvorak based layout for the Ergodox EZ.
Diffstat (limited to 'keyboards/ergodox_ez/keymaps/hacker_dvorak/user/process_record_user.c')
-rw-r--r-- | keyboards/ergodox_ez/keymaps/hacker_dvorak/user/process_record_user.c | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/user/process_record_user.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/user/process_record_user.c new file mode 100644 index 0000000000..7644635824 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/user/process_record_user.c @@ -0,0 +1,75 @@ +// TODO: Improve this currently there is no feedback if activated by other means. +bool CAPS_LOCK = false; +bool NUM_LOCK = false; +bool SCROLL_LOCK = false; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (!process_record_dynamic_macro(keycode, record)) { + return false; + } + + switch (keycode) { + case KC_CLCK: + if (record->event.pressed) { + if (!(CAPS_LOCK)) { + ergodox_right_led_1_on(); + CAPS_LOCK = true; + } else { + ergodox_right_led_1_off(); + CAPS_LOCK = false; + } + } + + return true; + + case KC_NLCK: + if (record->event.pressed) { + if (!(NUM_LOCK)) { + ergodox_right_led_2_on(); + NUM_LOCK = true; + } else { + ergodox_right_led_2_off(); + NUM_LOCK = false; + } + } + + return true; + + case KC_SLCK: + if (record->event.pressed) { + if (!(SCROLL_LOCK)) { + ergodox_right_led_3_on(); + SCROLL_LOCK = true; + } else { + ergodox_right_led_3_off(); + SCROLL_LOCK = false; + } + } + + return true; + + case KC_MS_WH_UP ... KC_MS_WH_RIGHT: + if (record->event.pressed) { + if (SCROLL_LOCK) { + return false; + } else { + return true; + } + } + + case MY_CUSTOM_MACRO: + if (record->event.pressed) { + SEND_STRING("QMK is the best thing ever!"); // this is our macro! + return false; + } + + case MY_OTHER_MACRO: + if (record->event.pressed) { + SEND_STRING(SS_LCTRL("ac")); // selects all and copies + return false; + } + + default: + return true; + } +} |