You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

73 lines
1.8 KiB

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