Advertisement
Guest User

qmk

a guest
Aug 14th, 2019
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.37 KB | None | 0 0
  1. #include QMK_KEYBOARD_H
  2. #define _DESK 0
  3. #define _ENCODERS 1
  4. #define _WOW 2
  5. #define _PHOTOSHOP 3
  6. #define _ILLUSTRATOR 4
  7.  
  8. void matrix_init_user(void) {
  9. // Set default layer, if enabled
  10. rgblight_enable();
  11. rgblight_sethsv(190, 170, 255);
  12. rgblight_mode(RGBLIGHT_MODE_STATIC_LIGHT);
  13. }
  14.  
  15. enum my_keycodes {
  16. ENABLE_SELECTOR = SAFE_RANGE
  17. };
  18.  
  19. layer_state_t selected_layer = 0;
  20.  
  21. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  22.  
  23. /* Macropad
  24. * ,--------------------.
  25. * | Rot1 | Rot2 | Rot3 |
  26. * |------+------+------|
  27. * | 1 | 2 | 3 |
  28. * |------+------+------|
  29. * | 4 | 5 | 6 |
  30. * `--------------------'
  31. */
  32.  
  33. [_DESK] = LAYOUT(
  34. ENABLE_SELECTOR, LT(1,KC_MUTE), LT(1,KC_NO),
  35. KC_MYCM, KC_ENT, KC_ESC
  36. ),
  37. [_ENCODERS] = LAYOUT(
  38. _______, _______, _______,
  39. KC_NO, KC_NO, KC_NO
  40. ),
  41. [_WOW] = LAYOUT(
  42. ENABLE_SELECTOR, _______, LSFT(KC_J),
  43. KC_C, KC_M, KC_U
  44. ),
  45. [_PHOTOSHOP] = LAYOUT(
  46. KC_B, _______, KC_E,
  47. KC_V, KC_P, KC_U
  48. ),
  49. [_ILLUSTRATOR] = LAYOUT(
  50. KC_B, _______, KC_E,
  51. KC_V, KC_P, KC_U
  52. ),
  53. };
  54.  
  55. bool selector_enabled = false;
  56. bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  57. switch (keycode) {
  58. case ENABLE_SELECTOR:
  59. if (record->event.pressed) {
  60. selector_enabled = true;
  61. register_code16(KC_LALT);
  62. tap_code16(KC_TAB);
  63. tap_code16(LSFT(KC_TAB));
  64. } else {
  65. selector_enabled = false;
  66. unregister_code16(KC_LALT);
  67. }
  68. return false;
  69. default:
  70. return true; // Process all other keycodes normally
  71. }
  72. }
  73.  
  74. void encoder_update_user(uint8_t index, bool clockwise) {
  75. // left encoder
  76. if (index == 0) {
  77. switch(index){
  78. default:
  79. if (selector_enabled) {
  80. if (!clockwise) {
  81. tap_code16(LSFT(KC_TAB));
  82. } else {
  83. tap_code16(KC_TAB);
  84. }
  85. }
  86. if (selector_enabled == false) {
  87. if (!clockwise && selected_layer < 10) {
  88. selected_layer ++;
  89. } else if (clockwise && selected_layer > 0){
  90. selected_layer --;
  91. }
  92. layer_clear();
  93. layer_on(selected_layer);
  94. }
  95. break;
  96. }
  97. }
  98. // middle encoder
  99. if (index == 1) {
  100. switch(biton32(layer_state)){
  101. case 1:
  102. if (clockwise){
  103. rgblight_sethsv(190, 170, 255);
  104. } else{
  105. rgblight_sethsv(160, 100, 255);
  106. }
  107. break;
  108. default:
  109. if (clockwise){
  110. tap_code(KC_VOLD);
  111. } else{
  112. tap_code(KC_VOLU);
  113. }
  114. break;
  115. }
  116. }
  117. // right encoder
  118. else if (index == 2) {
  119. switch(biton32(layer_state)){
  120. case 1:
  121. if (clockwise){
  122. tap_code(KC_WFWD);
  123. } else{
  124. tap_code(KC_WBAK);
  125. }
  126. break;
  127. default:
  128. if (clockwise) {
  129. tap_code(KC_WH_D);
  130. } else{
  131. tap_code(KC_WH_U);
  132. }
  133. break;
  134. }
  135. }
  136. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement