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.

176 lines
4.4 KiB

  1. #include "wanleg.h"
  2. // Defines actions for my global custom keycodes. Defined in wanleg.h file
  3. // Then runs the _keymap's record handier if not processed here
  4. bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  5. switch (keycode) {
  6. case QWERTY:
  7. if (record->event.pressed) {
  8. set_single_persistent_default_layer(_QW);
  9. #if defined(RGBLIGHT_ENABLE)
  10. rgblight_sethsv_noeeprom(0,0,128);
  11. rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING);
  12. #endif
  13. }
  14. return false;
  15. break;
  16. case GHERKIN:
  17. if (record->event.pressed) {
  18. set_single_persistent_default_layer(_GK);
  19. #if defined(RGBLIGHT_ENABLE)
  20. rgblight_sethsv_noeeprom(128,255,64);
  21. #endif
  22. }
  23. return false;
  24. break;
  25. case gGHERKIN:
  26. if (record->event.pressed) {
  27. set_single_persistent_default_layer(gGK);
  28. #if defined(RGBLIGHT_ENABLE)
  29. rgblight_sethsv_noeeprom(128,255,128);
  30. rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT);
  31. #endif
  32. }
  33. return false;
  34. break;
  35. case ONEHAND:
  36. if (record->event.pressed) {
  37. set_single_persistent_default_layer(ONE);
  38. }
  39. return false;
  40. break;
  41. case NUMPAD:
  42. if (record->event.pressed) {
  43. set_single_persistent_default_layer(PAD);
  44. }
  45. return false;
  46. break;
  47. case GHERKIN50:
  48. if (record->event.pressed) {
  49. set_single_persistent_default_layer(GK50);
  50. }
  51. return false;
  52. break;
  53. case SUBTER:
  54. if (record->event.pressed) {
  55. layer_on(SUB);
  56. } else {
  57. layer_off(SUB);
  58. }
  59. return false;
  60. break;
  61. case SUPRA:
  62. if (record->event.pressed) {
  63. layer_on(SUP);
  64. } else {
  65. layer_off(SUP);
  66. }
  67. return false;
  68. break;
  69. case NUMBER:
  70. if (record->event.pressed) {
  71. layer_on(NUM);
  72. } else {
  73. layer_off(NUM);
  74. }
  75. return false;
  76. break;
  77. case DIRECTION:
  78. if (record->event.pressed) {
  79. layer_on(DIR);
  80. } else {
  81. layer_off(DIR);
  82. }
  83. return false;
  84. break;
  85. case ETCETERA:
  86. if (record->event.pressed) {
  87. layer_on(ETC);
  88. } else {
  89. layer_off(ETC);
  90. }
  91. return false;
  92. break;
  93. case gNUMBER:
  94. if (record->event.pressed) {
  95. layer_on(gNUM);
  96. } else {
  97. layer_off(gNUM);
  98. }
  99. return false;
  100. break;
  101. case gDIRECTION:
  102. if (record->event.pressed) {
  103. layer_on(gDIR);
  104. } else {
  105. layer_off(gDIR);
  106. }
  107. return false;
  108. break;
  109. case gETCETERA:
  110. if (record->event.pressed) {
  111. layer_on(gETC);
  112. } else {
  113. layer_off(gETC);
  114. }
  115. return false;
  116. break;
  117. case FUNCTION:
  118. if (record->event.pressed) {
  119. layer_on(_FN);
  120. } else {
  121. layer_off(_FN);
  122. }
  123. return false;
  124. break;
  125. //on RESET, underglow red if present
  126. case RESET:
  127. if (record->event.pressed) {
  128. #if defined(RGBLIGHT_ENABLE)
  129. rgblight_enable_noeeprom(); // enables Rgb, without saving settings
  130. rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
  131. rgblight_sethsv_noeeprom_red();
  132. #endif
  133. }
  134. return true; // Let QMK send the press/release events as normal
  135. break;
  136. }
  137. return true;
  138. }
  139. /// Turn off LEDs on ProMicros of Let's Split ///
  140. // LEDs only on by default on Let's Split
  141. // Add reconfigurable functions here, for keymap customization
  142. // This allows for a global, userspace functions, and continued
  143. // customization of the keymap. Use _keymap instead of _user
  144. // functions in the keymaps
  145. __attribute__ ((weak))
  146. void matrix_init_keymap(void) {}
  147. // Call user matrix init, then call the keymap's init function
  148. void matrix_init_user(void) {
  149. //turn off pro micro LEDs
  150. #if defined(KEYBOARD_lets_split_rev2)
  151. DDRD &= ~(1<<5);
  152. PORTD &= ~(1<<5);
  153. DDRB &= ~(1<<0);
  154. PORTB &= ~(1<<0);
  155. #endif
  156. //disable backlight breathing for keyboard using random flashing RGB LEDs for backlight
  157. //(breathing provides insufficient power to integrated LED IC)
  158. #if defined(KEYBOARD_kbdfans_kbd6x) && defined(BACKLIGHT_BREATHING)
  159. breathing_disable();
  160. #endif
  161. matrix_init_keymap();
  162. }
  163. //at end of firmware startup process, change powerup default layer and underglow colour for kbd6x
  164. void keyboard_post_init_user(void) {
  165. #if defined(KEYBOARD_kbdfans_kbd6x)
  166. set_single_persistent_default_layer(_QW);
  167. rgblight_mode_noeeprom(RGBLIGHT_MODE_SNAKE + 5);
  168. rgblight_sethsv_noeeprom(0,0,128);
  169. #endif
  170. }