keycode_config.c 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #include "keycode_config.h"
  2. extern keymap_config_t keymap_config;
  3. uint16_t keycode_config(uint16_t keycode) {
  4. switch (keycode) {
  5. case KC_CAPSLOCK:
  6. case KC_LOCKING_CAPS:
  7. if (keymap_config.swap_control_capslock || keymap_config.capslock_to_control) {
  8. return KC_LCTL;
  9. }
  10. return keycode;
  11. case KC_LCTL:
  12. if (keymap_config.swap_control_capslock) {
  13. return KC_CAPSLOCK;
  14. }
  15. return KC_LCTL;
  16. case KC_LALT:
  17. if (keymap_config.swap_lalt_lgui) {
  18. if (keymap_config.no_gui) {
  19. return KC_NO;
  20. }
  21. return KC_LGUI;
  22. }
  23. return KC_LALT;
  24. case KC_LGUI:
  25. if (keymap_config.swap_lalt_lgui) {
  26. return KC_LALT;
  27. }
  28. if (keymap_config.no_gui) {
  29. return KC_NO;
  30. }
  31. return KC_LGUI;
  32. case KC_RALT:
  33. if (keymap_config.swap_ralt_rgui) {
  34. if (keymap_config.no_gui) {
  35. return KC_NO;
  36. }
  37. return KC_RGUI;
  38. }
  39. return KC_RALT;
  40. case KC_RGUI:
  41. if (keymap_config.swap_ralt_rgui) {
  42. return KC_RALT;
  43. }
  44. if (keymap_config.no_gui) {
  45. return KC_NO;
  46. }
  47. return KC_RGUI;
  48. case KC_GRAVE:
  49. if (keymap_config.swap_grave_esc) {
  50. return KC_ESC;
  51. }
  52. return KC_GRAVE;
  53. case KC_ESC:
  54. if (keymap_config.swap_grave_esc) {
  55. return KC_GRAVE;
  56. }
  57. return KC_ESC;
  58. case KC_BSLASH:
  59. if (keymap_config.swap_backslash_backspace) {
  60. return KC_BSPACE;
  61. }
  62. return KC_BSLASH;
  63. case KC_BSPACE:
  64. if (keymap_config.swap_backslash_backspace) {
  65. return KC_BSLASH;
  66. }
  67. return KC_BSPACE;
  68. default:
  69. return keycode;
  70. }
  71. }