logo

qmk_firmware

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

keymap.c (5211B)


  1. // Copyright 2023 QMK
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #include QMK_KEYBOARD_H
  4. // Define the layers
  5. enum layer_names {
  6. _LAYER0,
  7. _LAYER0_MOD,
  8. _LAYER1,
  9. _LAYER2
  10. };
  11. #define UNDERGLOW 60
  12. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  13. /*
  14. * ┌───┬───┬───┬───┐
  15. * │ E │ n │ 6 │ 7 │
  16. * ├───┼───┼───┼───┤
  17. * │ B │ n │ 5 │ 8 │
  18. * ├───┼───┼───┼───┤
  19. * │ 2 │ 3 │ 4 │ 9 │
  20. * └───┴───┴───┴───┘
  21. */
  22. [_LAYER0] = LAYOUT( // default
  23. KC_MUTE, LSFT(KC_COMM), LSFT(KC_DOT),
  24. DF(_LAYER1), KC_J, KC_L,
  25. KC_MPRV, KC_MPLY, KC_MNXT, TG(_LAYER0_MOD) // btm-right one shot mod layer
  26. ),
  27. [_LAYER0_MOD] = LAYOUT( // default MOD
  28. _______, RM_VALU, RM_NEXT, // _______ transparent, goes to above layer
  29. _______, RM_VALD, RM_TOGG,
  30. LCTL(LGUI(KC_SPC)), _______, _______, TG(_LAYER0_MOD)
  31. ),
  32. [_LAYER1] = LAYOUT( // FCPX
  33. LSFT(LGUI(KC_B)), LGUI(KC_B), LGUI(KC_EQL),
  34. DF(_LAYER2), LALT(KC_K), LGUI(KC_MINS),
  35. KC_J, KC_K, KC_L, KC_BSPC
  36. ),
  37. [_LAYER2] = LAYOUT( // KICAD
  38. KC_E, KC_ESC, KC_M,
  39. DF(_LAYER0), LGUI(KC_Z), KC_X,
  40. KC_V, KC_D, KC_U, KC_BSPC
  41. )
  42. };
  43. #ifdef ENCODER_MAP_ENABLE
  44. const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
  45. [_LAYER0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, // default
  46. [_LAYER0_MOD] = { ENCODER_CCW_CW(_______, _______) }, // default MOD
  47. [_LAYER1] = { ENCODER_CCW_CW(KC_LEFT, KC_RIGHT) }, // FCPX
  48. [_LAYER2] = { ENCODER_CCW_CW(KC_R, S(KC_R)) } // KICAD
  49. };
  50. #endif
  51. #ifdef OLED_ENABLE
  52. // Function to display the current layer and information on the OLED
  53. bool oled_task_user(void) {
  54. switch (get_highest_layer(layer_state | default_layer_state)) {
  55. case _LAYER0:
  56. oled_write_ln_P(PSTR("(VOL- VOL+) LAYER0"), false);
  57. oled_write_ln_P(PSTR(""), false);
  58. oled_write_ln_P(PSTR("MUTE SLOW FAST"), false);
  59. oled_write_ln_P(PSTR(""), false);
  60. oled_write_ln_P(PSTR("LAYR RSET 10BK 10FW"), false);
  61. oled_write_ln_P(PSTR(""), false);
  62. oled_write_ln_P(PSTR("MREV MPLA MFWD +OPT"), false);
  63. break;
  64. case _LAYER0_MOD:
  65. oled_write_ln_P(PSTR("____ ____ 0-MOD"), false);
  66. oled_write_ln_P(PSTR(""), false);
  67. oled_write_ln_P(PSTR("____ BRI+ ANIM"), false);
  68. oled_write_ln_P(PSTR(""), false);
  69. oled_write_ln_P(PSTR("____ ____ BRI- TOGG"), false);
  70. oled_write_ln_P(PSTR(""), false);
  71. oled_write_ln_P(PSTR("EMOJ ____ ____ -OPT"), false);
  72. break;
  73. case _LAYER1:
  74. oled_write_ln_P(PSTR("(FRA- FRA+) FCPX"), false);
  75. oled_write_ln_P(PSTR(""), false);
  76. oled_write_ln_P(PSTR("XXXX BRAK ZOM+"), false);
  77. oled_write_ln_P(PSTR(""), false);
  78. oled_write_ln_P(PSTR("LAYR RSET KFRA ZOM-"), false);
  79. oled_write_ln_P(PSTR(""), false);
  80. oled_write_ln_P(PSTR("BACK STOP FORW DELT"), false);
  81. break;
  82. case _LAYER2:
  83. oled_write_ln_P(PSTR("(RO L RO R) KICAD"), false);
  84. oled_write_ln_P(PSTR(""), false);
  85. oled_write_ln_P(PSTR("EDIT ESCP MOVE"), false);
  86. oled_write_ln_P(PSTR(""), false);
  87. oled_write_ln_P(PSTR("LAYR RSET UNDO TRAK"), false);
  88. oled_write_ln_P(PSTR(""), false);
  89. oled_write_ln_P(PSTR("VIA DRAG SALL DELT"), false);
  90. break;
  91. }
  92. return false;
  93. }
  94. #endif
  95. bool rgb_matrix_indicators_user(void) {
  96. switch(get_highest_layer(layer_state|default_layer_state)) {
  97. case _LAYER2:
  98. rgb_matrix_set_color(11, 0, 0, UNDERGLOW);
  99. rgb_matrix_set_color(10, 0, 0, UNDERGLOW);
  100. rgb_matrix_set_color(9, 0, 0, UNDERGLOW);
  101. rgb_matrix_set_color(8, 0, 0, UNDERGLOW);
  102. break;
  103. case _LAYER1:
  104. rgb_matrix_set_color(11, 0, UNDERGLOW, 0);
  105. rgb_matrix_set_color(10, 0, UNDERGLOW, 0);
  106. rgb_matrix_set_color(9, 0, UNDERGLOW, 0);
  107. rgb_matrix_set_color(8, 0, UNDERGLOW, 0);
  108. break;
  109. case _LAYER0_MOD:
  110. rgb_matrix_set_color(11, UNDERGLOW/2, 0, UNDERGLOW/2);
  111. rgb_matrix_set_color(10, UNDERGLOW/2, 0, UNDERGLOW/2);
  112. rgb_matrix_set_color(9, UNDERGLOW/2, 0, UNDERGLOW/2);
  113. rgb_matrix_set_color(8, UNDERGLOW/2, 0, UNDERGLOW/2);
  114. break;
  115. case _LAYER0:
  116. rgb_matrix_set_color(11, UNDERGLOW, 0, 0);
  117. rgb_matrix_set_color(10, UNDERGLOW, 0, 0);
  118. rgb_matrix_set_color(9, UNDERGLOW, 0, 0);
  119. rgb_matrix_set_color(8, UNDERGLOW, 0, 0);
  120. break;
  121. default:
  122. break;
  123. }
  124. return false;
  125. }