keymap.c 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. #include QMK_KEYBOARD_H
  2. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  3. /* LAYER 0
  4. * ,-----------------------.
  5. * | << | MUTE | >> | ENCODER - PRESS (MUTE) / KNOB (VOLUME CONTROL)
  6. * |-------+-------+-------|
  7. * | STOP | PLAY | MEDIA |
  8. * |-------+-------+-------|
  9. * | CALC | MAIL | PC/FN |
  10. * `-----------------------'
  11. */
  12. [0] = LAYOUT_ortho_3x3(
  13. KC_MPRV, LT(2, KC_MUTE), KC_MNXT,
  14. KC_MSTP, KC_MPLY, KC_MSEL,
  15. KC_CALC, KC_MAIL, LT(1, KC_MYCM)
  16. ),
  17. /* LAYER 1
  18. * ,-----------------------.
  19. * | MODE+ |RGB TOG| MODE- | ENCODER - PRESS (NA) / KNOB (Hue Control)
  20. * |-------+-------+-------|
  21. * | SPD- | SPD+ |Bright |
  22. * |-------+-------+-------|
  23. * | SAT+ | SAT- | |
  24. * `-----------------------'
  25. */
  26. [1] = LAYOUT_ortho_3x3(
  27. RGB_MOD, RGB_TOG, RGB_RMOD,
  28. RGB_SPI, RGB_SPD, RGB_VAI,
  29. RGB_SAI, RGB_SAD, KC_TRNS
  30. ),
  31. /* LAYER 2 (ENCODER)
  32. * ,-----------------------.
  33. * | | | | ENCODER - PRESS (NA) / KNOB (Arrow Left/Right)
  34. * |-------+-------+-------|
  35. * | | | |
  36. * |-------+-------+-------|
  37. * | | | |
  38. * `-----------------------'
  39. */
  40. [2] = LAYOUT_ortho_3x3(
  41. KC_TRNS, KC_TRNS, KC_TRNS,
  42. KC_TRNS, KC_TRNS, KC_TRNS,
  43. KC_TRNS, KC_TRNS, KC_TRNS
  44. )
  45. };
  46. bool encoder_update_user(uint8_t index, bool clockwise) {
  47. switch (get_highest_layer(layer_state)) {
  48. case 1:
  49. if (clockwise) {
  50. rgblight_increase_hue();
  51. } else {
  52. rgblight_decrease_hue();
  53. }
  54. break;
  55. case 2:
  56. if (clockwise) {
  57. tap_code(KC_RGHT);
  58. } else {
  59. tap_code(KC_LEFT);
  60. }
  61. break;
  62. default:
  63. if (clockwise) {
  64. tap_code(KC_VOLU);
  65. } else {
  66. tap_code(KC_VOLD);
  67. }
  68. break;
  69. }
  70. return true;
  71. }