keymap.c 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. #include QMK_KEYBOARD_H
  2. #include "sethBarberee.h"
  3. extern backlight_config_t backlight_config;
  4. enum layers {
  5. _QWERTY,
  6. _LOWER,
  7. _RAISE,
  8. _ADJUST
  9. };
  10. enum custom_keycodes {
  11. QWERTY = SAFE_RANGE,
  12. LOWER,
  13. RAISE,
  14. ADJUST,
  15. };
  16. #define KC_ KC_TRNS
  17. #define KC_LOWR LOWER
  18. #define KC_RASE RAISE
  19. #define KC_RST RESET
  20. #define KC_BL_S BL_STEP
  21. #define KC_RTOG RGB_TOG
  22. #define KC_RMOD RGB_MOD
  23. #define KC_RHUI RGB_HUI
  24. #define KC_RHUD RGB_HUD
  25. #define KC_RSAI RGB_SAI
  26. #define KC_RSAD RGB_SAD
  27. #define KC_RVAI RGB_VAI
  28. #define KC_RVAD RGB_VAD
  29. #define KC_VK VLK_TOG
  30. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  31. [_QWERTY] = LAYOUT_kc(
  32. //,----+----+----+----+----+----. ,----+----+----+----+----+----.
  33. ECAP, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS,
  34. //|----+----+----+----+----+----| |----+----+----+----+----+----|
  35. TAB , Q , W , E , R , T , Y , U , I , O , P ,DEL ,
  36. //|----+----+----+----+----+----| |----+----+----+----+----+----|
  37. LSFT, A , S , D , F , G , H , J , K , L ,SCLN,QUOT,
  38. //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
  39. LCTL, Z , X , C , V , B , SPC, RASE, N , M ,COMM,DOT ,SLSH,RSFT,
  40. //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
  41. LGUI,LOWR, SPC, BSPC ,ENT,LALT
  42. // `----+----+----' `----+----+----'
  43. ),
  44. [_LOWER] = LAYOUT_kc(
  45. //,----+----+----+----+----+----. ,----+----+----+----+----+----.
  46. TILD,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN,BSPC,
  47. //|----+----+----+----+----+----| |----+----+----+----+----+----|
  48. RST , , , UP , , , GRV , P7 , P8 , P9 , , ,
  49. //|----+----+----+----+----+----| |----+----+----+----+----+----|
  50. DEL , ,LEFT,DOWN,RGHT,LBRC, RBRC, P4 , P5 , P6 ,PLUS,PIPE,
  51. //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
  52. BL_S, , , , ,LCBR,LPRN, RPRN,RCBR, P1 , P2 , P3 ,MINS, ,
  53. //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
  54. , ,LPRN , DEL , , P0
  55. // `----+----+----' `----+----+----'
  56. ),
  57. [_RAISE] = LAYOUT_kc(
  58. //,----+----+----+----+----+----. ,----+----+----+----+----+----.
  59. F12 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 ,
  60. //|----+----+----+----+----+----| |----+----+----+----+----+----|
  61. , , , , , , , , , , , ,
  62. //|----+----+----+----+----+----| |----+----+----+----+----+----|
  63. ,MPRV,MNXT,VOLU,PGUP,UNDS, EQL ,HOME, , , ,BSLS,
  64. //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
  65. MUTE,MSTP,MPLY,VOLD,PGDN,MINS, , ,PLUS,END , , , , ,
  66. //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
  67. , , , , ,
  68. // `----+----+----' `----+----+----'
  69. ),
  70. [_ADJUST] = LAYOUT_kc(
  71. //,----+----+----+----+----+----. ,----+----+----+----+----+----.
  72. , , , , , , , , , , , ,
  73. //|----+----+----+----+----+----| |----+----+----+----+----+----|
  74. RTOG,RMOD,RHUI,RSAI,RVAI, , , , , , , ,
  75. //|----+----+----+----+----+----| |----+----+----+----+----+----|
  76. VK, ,RHUD,RSAD,RVAD, , , , , , , ,
  77. //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
  78. BL_S,RST , , , , , , , , , , , , ,
  79. //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
  80. , , , , ,
  81. // `----+----+----' `----+----+----'
  82. )
  83. };
  84. void keyboard_pre_init_user(void) {
  85. // Make sure the red LEDs don't light
  86. setPinOutput(D5);
  87. writePinHigh(D5);
  88. setPinOutput(B0);
  89. writePinHigh(B0);
  90. }
  91. void keyboard_post_init_user(void){
  92. rgblight_enable_noeeprom(); // enable the RGBs
  93. rgblight_sethsv_noeeprom_red(); // set to red
  94. rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 3); // set to breathing
  95. }
  96. void suspend_power_down_user(void){
  97. backlight_config.enable = false; // disable LED backlight
  98. }
  99. void suspend_wakeup_init_user(void){
  100. backlight_config.enable = true; // enable LED backlight
  101. }
  102. bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  103. switch (keycode) {
  104. case QWERTY:
  105. if (record->event.pressed) {
  106. set_single_persistent_default_layer(_QWERTY);
  107. }
  108. return false;
  109. break;
  110. case LOWER:
  111. if (record->event.pressed) {
  112. layer_on(_LOWER);
  113. update_tri_layer(_LOWER, _RAISE, _ADJUST);
  114. } else {
  115. layer_off(_LOWER);
  116. update_tri_layer(_LOWER, _RAISE, _ADJUST);
  117. }
  118. return false;
  119. break;
  120. case RAISE:
  121. if (record->event.pressed) {
  122. layer_on(_RAISE);
  123. update_tri_layer(_LOWER, _RAISE, _ADJUST);
  124. } else {
  125. layer_off(_RAISE);
  126. update_tri_layer(_LOWER, _RAISE, _ADJUST);
  127. }
  128. return false;
  129. break;
  130. case ADJUST:
  131. if (record->event.pressed) {
  132. layer_on(_ADJUST);
  133. } else {
  134. layer_off(_ADJUST);
  135. }
  136. return false;
  137. break;
  138. }
  139. return true;
  140. }
  141. uint32_t layer_state_set_user(uint32_t state){
  142. switch(biton32(state)) {
  143. case _QWERTY:
  144. rgblight_sethsv_noeeprom(HSV_RED);
  145. break;
  146. case _LOWER:
  147. rgblight_sethsv_noeeprom(HSV_GREEN);
  148. break;
  149. case _RAISE:
  150. rgblight_sethsv_noeeprom(HSV_BLUE);
  151. break;
  152. case _ADJUST:
  153. rgblight_sethsv_noeeprom(HSV_ORANGE);
  154. break;
  155. default:
  156. rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT + 3);
  157. break;
  158. }
  159. return state;
  160. }