diff options
Diffstat (limited to 'users/rs/rs.c')
-rw-r--r-- | users/rs/rs.c | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/users/rs/rs.c b/users/rs/rs.c new file mode 100644 index 000000000..fa634bb92 --- /dev/null +++ b/users/rs/rs.c | |||
@@ -0,0 +1,74 @@ | |||
1 | |||
2 | #include "rs.h" | ||
3 | |||
4 | // process_record_user is like process_record_user for keymaps including this file. | ||
5 | __attribute__ ((weak)) | ||
6 | bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { | ||
7 | return true; | ||
8 | } | ||
9 | |||
10 | // rgb_mod_changed_keymap is called any time the RGB mod has been changed. | ||
11 | __attribute__ ((weak)) | ||
12 | void rgb_mod_changed_keymap(void) { | ||
13 | } | ||
14 | |||
15 | // keylog_set_keymap is called for every key press. | ||
16 | __attribute__ ((weak)) | ||
17 | void keylog_set_keymap(uint16_t keycode, keyrecord_t *record) { | ||
18 | } | ||
19 | |||
20 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
21 | if (record->event.pressed) { | ||
22 | keylog_set_keymap(keycode, record); | ||
23 | } | ||
24 | |||
25 | switch (keycode) { | ||
26 | case NEQL: // != | ||
27 | if (record->event.pressed) { | ||
28 | SEND_STRING("!="); | ||
29 | } | ||
30 | return false; | ||
31 | case LPLT: // ( or < with shift | ||
32 | if (record->event.pressed) { | ||
33 | if (get_mods() & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT))) { | ||
34 | // < | ||
35 | tap_code(KC_COMM); // shift is already registered | ||
36 | } else { | ||
37 | // ( | ||
38 | register_mods(MOD_BIT(KC_LSFT)); | ||
39 | tap_code(KC_9); | ||
40 | unregister_mods(MOD_BIT(KC_LSFT)); | ||
41 | } | ||
42 | } | ||
43 | return false; | ||
44 | case RPGT: // ) or > with shift | ||
45 | if (record->event.pressed) { | ||
46 | if (get_mods() & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT))) { | ||
47 | // < | ||
48 | tap_code(KC_DOT); // shift is already registered | ||
49 | } else { | ||
50 | // ) | ||
51 | register_mods(MOD_BIT(KC_LSFT)); | ||
52 | tap_code(KC_0); | ||
53 | unregister_mods(MOD_BIT(KC_LSFT)); | ||
54 | } | ||
55 | } | ||
56 | return false; | ||
57 | #ifdef RGBLIGHT_ENABLE | ||
58 | case RGB_MOD: | ||
59 | if (record->event.pressed) { | ||
60 | rgblight_step(); | ||
61 | rgb_mod_changed_keymap(); | ||
62 | } | ||
63 | return false; | ||
64 | case RGBRST: | ||
65 | if (record->event.pressed) { | ||
66 | eeconfig_update_rgblight_default(); | ||
67 | rgblight_enable(); | ||
68 | rgb_mod_changed_keymap(); | ||
69 | } | ||
70 | return false; | ||
71 | #endif | ||
72 | } | ||
73 | return process_record_keymap(keycode, record); | ||
74 | } \ No newline at end of file | ||