logo

qmk_firmware

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

keymap.c (6295B)


  1. /* Copyright 2022 DOIO
  2. * Copyright 2022 HorrorTroll <https://github.com/HorrorTroll>
  3. *
  4. * This program is free software: you can redistribute it and/or modify
  5. * it under the terms of the GNU General Public License as published by
  6. * the Free Software Foundation, either version 2 of the License, or
  7. * (at your option) any later version.
  8. *
  9. * This program is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. * GNU General Public License for more details.
  13. *
  14. * You should have received a copy of the GNU General Public License
  15. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  16. */
  17. #include QMK_KEYBOARD_H
  18. // OLED animation
  19. #include "lib/layer_status/layer_status.h"
  20. // Each layer gets a name for readability, which is then used in the keymap matrix below.
  21. // The underscores don't mean anything - you can have a layer called STUFF or any other name.
  22. // Layer names don't all need to be of the same length, obviously, and you can also skip them
  23. // entirely and just use numbers.
  24. enum layer_names {
  25. _BASE,
  26. _FN,
  27. _FN1,
  28. _FN2
  29. };
  30. // enum layer_keycodes { };
  31. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  32. /*
  33. ┌───┬───┬───┬───┐ ┌───┐ ┌───┐
  34. │ 1 │ 2 │ 3 │ 4 │ │Ply│ │TO1│
  35. ├───┼───┼───┼───┤ └───┘ └───┘
  36. │ 5 │ 6 │ 7 │ 8 │
  37. ├───┼───┼───┼───┤
  38. │ 9 │ 0 │ ↑ │Ent│ ┌───┐
  39. ├───┼───┼───┼───┤ │Mut│
  40. │Fn2│ ← │ ↓ │ → │ └───┘
  41. └───┴───┴───┴───┘
  42. ┌───┬───┬───┬───┐ ┌───┐ ┌───┐
  43. │ ! │ @ │ # │ $ │ │ │ │ │
  44. ├───┼───┼───┼───┤ └───┘ └───┘
  45. │ % │ ^ │ & │ * │
  46. ├───┼───┼───┼───┤
  47. │ ( │ ) │ │ │ ┌───┐
  48. ├───┼───┼───┼───┤ │ │
  49. │ │ │ │ │ └───┘
  50. └───┴───┴───┴───┘
  51. */
  52. /* Row: 0 1 2 3 4 */
  53. [_BASE] = LAYOUT(
  54. KC_1, KC_2, KC_3, KC_4, KC_MPLY,
  55. KC_5, KC_6, KC_7, KC_8, TO(_FN),
  56. KC_9, KC_0, KC_UP, KC_ENT, KC_MUTE,
  57. MO(_FN2), KC_LEFT, KC_DOWN, KC_RIGHT
  58. ),
  59. /*
  60. ┌───┬───┬───┬───┐ ┌───┐ ┌───┐
  61. │ │ │ │ │ │ │ │ │
  62. ├───┼───┼───┼───┤ └───┘ └───┘
  63. │ │ │ │ │
  64. ├───┼───┼───┼───┤
  65. │ │ │ │ │ ┌───┐
  66. ├───┼───┼───┼───┤ │ │
  67. │ │ │ │ │ └───┘
  68. └───┴───┴───┴───┘
  69. */
  70. /* Row: 0 1 2 3 4 */
  71. [_FN] = LAYOUT(
  72. _______, _______, _______, _______, _______,
  73. _______, _______, _______, _______, TO(_FN1),
  74. _______, _______, _______, _______, _______,
  75. _______, _______, _______, _______
  76. ),
  77. /*
  78. ┌───┬───┬───┬───┐ ┌───┐ ┌───┐
  79. │ │ │ │ │ │ │ │ │
  80. ├───┼───┼───┼───┤ └───┘ └───┘
  81. │ │ │ │ │
  82. ├───┼───┼───┼───┤
  83. │ │ │ │ │ ┌───┐
  84. ├───┼───┼───┼───┤ │ │
  85. │ │ │ │ │ └───┘
  86. └───┴───┴───┴───┘
  87. */
  88. /* Row: 0 1 2 3 4 */
  89. [_FN1] = LAYOUT(
  90. _______, _______, _______, _______, _______,
  91. _______, _______, _______, _______, TO(_FN2),
  92. _______, _______, _______, _______, _______,
  93. _______, _______, _______, _______
  94. ),
  95. /*
  96. ┌───┬───┬───┬───┐ ┌───┐ ┌───┐
  97. │Spi│Spd│ │ │ │ │ │TO0│
  98. ├───┼───┼───┼───┤ └───┘ └───┘
  99. │Sai│Sad│ │ │
  100. ├───┼───┼───┼───┤
  101. │Tog│Mod│Hui│ │ ┌───┐
  102. ├───┼───┼───┼───┤ │ │
  103. │ │Vai│Hud│Vad│ └───┘
  104. └───┴───┴───┴───┘
  105. */
  106. /* Row: 0 1 2 3 4 */
  107. [_FN2] = LAYOUT(
  108. RM_SPDU, RM_SPDD, _______, QK_BOOT, _______,
  109. RM_SATU, RM_SATD, _______, _______, TO(_BASE),
  110. RM_TOGG, RM_NEXT, RM_HUEU, _______, _______,
  111. _______, RM_VALU, RM_HUED, RM_VALD
  112. ),
  113. };
  114. #ifdef OLED_ENABLE
  115. bool oled_task_user(void) {
  116. render_layer_status();
  117. return true;
  118. }
  119. #endif
  120. #ifdef ENCODER_MAP_ENABLE
  121. const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
  122. [_BASE] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(KC_PGDN, KC_PGUP), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
  123. [_FN] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
  124. [_FN1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
  125. [_FN2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
  126. };
  127. #endif