logo

qmk_firmware

custom branch of QMK firmware git clone https://anongit.hacktivis.me/git/qmk_firmware.git

keymap.c (4266B)


  1. /*
  2. Copyright 2023 QVEX Tech
  3. This program is free software: you can redistribute it and/or modify
  4. it under the terms of the GNU General Public License as published by
  5. the Free Software Foundation, either version 2 of the License, or
  6. (at your option) any later version.
  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. GNU General Public License for more details.
  11. You should have received a copy of the GNU General Public License
  12. along with this program. If not, see <http://www.gnu.org/licenses/>.
  13. */
  14. #include QMK_KEYBOARD_H
  15. #define RGB_HUE_LAYER0 0 //default layer
  16. #define RGB_HUE_LAYER1 50
  17. #define RGB_HUE_LAYER2 100
  18. #define RGB_HUE_LAYER3 150
  19. #define RGB_HUE_LAYER4 200
  20. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  21. [0] = LAYOUT //Default
  22. (
  23. G(KC_D), G(KC_TAB), C(G(KC_LEFT)), C(G(KC_RIGHT)),
  24. G(KC_E), XXXXXXX, C(KC_C), C(KC_V),
  25. KC_LGUI, XXXXXXX, XXXXXXX,
  26. KC_VOLU, KC_VOLD, KC_MPRV, KC_MNXT, //joystick up, down, left, right
  27. KC_MPLY, MO(4) //joystick center push, thumbwheel push
  28. ),
  29. [1] = LAYOUT //KiCad
  30. (
  31. KC_ESC, KC_R, KC_M, KC_DEL,
  32. KC_V, KC_G, KC_D, KC_X,
  33. MO(3), KC_B, C(KC_V),
  34. KC_PLUS, KC_MINUS, C(KC_Y), C(KC_Z), //joystick up, down, left, right
  35. KC_PGDN, MO(4) //joystick center push, thumbwheel push
  36. ),
  37. [2] = LAYOUT
  38. (
  39. XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
  40. XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
  41. XXXXXXX, XXXXXXX, XXXXXXX,
  42. XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //joystick up, down, left, right
  43. XXXXXXX, MO(4) //joystick center push, thumbwheel push
  44. ),
  45. [3] = LAYOUT
  46. (
  47. XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
  48. XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
  49. XXXXXXX, XXXXXXX, XXXXXXX,
  50. XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //joystick up, down, left, right
  51. XXXXXXX, MO(4) //joystick center push, thumbwheel push
  52. ),
  53. [4] = LAYOUT
  54. (
  55. TO(0), TO(1), TO(2), TO(3),
  56. BL_TOGG, BL_STEP, XXXXXXX, XXXXXXX,
  57. QK_RBT, EE_CLR, QK_BOOT,
  58. XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //joystick up, down, left, right
  59. UG_TOGG, XXXXXXX //joystick center push, thumbwheel push
  60. )
  61. };
  62. #if defined(ENCODER_MAP_ENABLE)
  63. const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
  64. [0] = {
  65. ENCODER_CCW_CW(KC_VOLD, KC_VOLU),
  66. ENCODER_CCW_CW(KC_VOLD, KC_VOLU)
  67. },
  68. [1] = {
  69. ENCODER_CCW_CW(LSFT(KC_W), KC_W),
  70. ENCODER_CCW_CW(KC_N, LSFT(KC_N))
  71. },
  72. [2] = {
  73. ENCODER_CCW_CW(XXXXXXX, XXXXXXX),
  74. ENCODER_CCW_CW(XXXXXXX, XXXXXXX)
  75. },
  76. [3] = {
  77. ENCODER_CCW_CW(XXXXXXX, XXXXXXX),
  78. ENCODER_CCW_CW(XXXXXXX, XXXXXXX)
  79. },
  80. [4] = {
  81. ENCODER_CCW_CW(UG_VALD, UG_VALU),
  82. ENCODER_CCW_CW(XXXXXXX, XXXXXXX)
  83. }
  84. };
  85. #endif
  86. //set only hue, retain saturation, and value
  87. void rgblight_sethue_noeeprom(uint8_t hue){
  88. //only if rgb led ring is on
  89. if (rgblight_get_mode()) {
  90. rgblight_sethsv_noeeprom(hue,rgblight_get_sat(),rgblight_get_val());
  91. }
  92. }
  93. //set correct layer hue on layer change
  94. layer_state_t layer_state_set_user(layer_state_t state) {
  95. switch (get_highest_layer(state)) {
  96. case 1:
  97. rgblight_sethue_noeeprom(RGB_HUE_LAYER1);
  98. break;
  99. case 2:
  100. rgblight_sethue_noeeprom(RGB_HUE_LAYER2);
  101. break;
  102. case 3:
  103. rgblight_sethue_noeeprom(RGB_HUE_LAYER3);
  104. break;
  105. case 4:
  106. rgblight_sethue_noeeprom(RGB_HUE_LAYER4);
  107. break;
  108. default:
  109. rgblight_sethue_noeeprom(RGB_HUE_LAYER0);
  110. break;
  111. }
  112. return state;
  113. }
  114. //set default layer hue upon init
  115. void keyboard_post_init_user(void) {
  116. rgblight_init();
  117. rgblight_sethue_noeeprom(RGB_HUE_LAYER0);
  118. }