logo

qmk_firmware

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

keymap.c (2201B)


  1. // Copyright 2022 Sergey Vlasov (@sigprof)
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #include QMK_KEYBOARD_H
  4. // Defines names for use in layer keycodes and the keymap
  5. enum layer_names {
  6. _BASE,
  7. _RGB,
  8. };
  9. // Shorter defines for some QMK keycodes (to keep the keymap aligned)
  10. #define U_LTESC LT(_RGB, KC_ESC)
  11. // clang-format off
  12. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  13. // Base
  14. [_BASE] = LAYOUT_top(
  15. KC_HOME, KC_MUTE, KC_MPLY,
  16. KC_1, KC_2, KC_3, KC_4, KC_5,
  17. KC_6, KC_7, KC_8, KC_9, KC_0,
  18. U_LTESC, KC_TAB, KC_SPC, KC_BSPC, KC_ENT
  19. ),
  20. // RGB configuration
  21. [_RGB] = LAYOUT_top(
  22. RGB_M_P, RGB_M_B, RGB_M_R,
  23. RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU,
  24. RM_PREV, RM_HUED, RM_SATD, RM_VALD, RM_SPDD,
  25. KC_TRNS, RM_TOGG, RGB_M_P, RGB_M_B, RGB_M_R
  26. ),
  27. };
  28. // clang-format on
  29. bool encoder_update_user(uint8_t index, bool clockwise) {
  30. uint8_t layer = get_highest_layer(layer_state | default_layer_state);
  31. switch (index) {
  32. case 0:
  33. // Left encoder
  34. if (layer == _RGB) {
  35. if (clockwise) {
  36. rgblight_increase_hue();
  37. } else {
  38. rgblight_decrease_hue();
  39. }
  40. } else {
  41. tap_code(clockwise ? KC_PGDN : KC_PGUP);
  42. }
  43. break;
  44. case 1:
  45. // Center encoder
  46. if (layer == _RGB) {
  47. if (clockwise) {
  48. rgblight_increase_sat();
  49. } else {
  50. rgblight_decrease_sat();
  51. }
  52. } else {
  53. tap_code_delay(clockwise ? KC_VOLU : KC_VOLD, 10);
  54. }
  55. break;
  56. case 2:
  57. // Right encoder
  58. if (layer == _RGB) {
  59. if (clockwise) {
  60. rgblight_increase_val();
  61. } else {
  62. rgblight_decrease_val();
  63. }
  64. } else {
  65. tap_code_delay(clockwise ? KC_MNXT : KC_MPRV, 10);
  66. }
  67. break;
  68. }
  69. return false;
  70. }