logo

qmk_firmware

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

keymap.c (3389B)


  1. // Copyright 2018-2022 Nick Brassel (@tzarc)
  2. // SPDX-License-Identifier: GPL-3.0-or-later
  3. #include QMK_KEYBOARD_H
  4. enum { _QWERTY, _LOWER, _RAISE, _ADJUST };
  5. #define LOWER MO(_LOWER)
  6. #define RAISE MO(_RAISE)
  7. // Left-hand home row mods
  8. #define HOME_A LGUI_T(KC_A)
  9. #define HOME_S LALT_T(KC_S)
  10. #define HOME_D LSFT_T(KC_D)
  11. #define HOME_F LCTL_T(KC_F)
  12. // Right-hand home row mods
  13. #define HOME_J RCTL_T(KC_J)
  14. #define HOME_K RSFT_T(KC_K)
  15. #define HOME_L LALT_T(KC_L)
  16. #define HOME_SCLN RGUI_T(KC_SCLN)
  17. #define SFT_ESC LSFT_T(KC_ESC)
  18. extern void ui_init(void);
  19. extern void ui_task(void);
  20. // clang-format off
  21. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  22. [_QWERTY] = LAYOUT(
  23. KC_Q, KC_W, KC_E, KC_R, KC_T, RM_NEXT, KC_Y, KC_U, KC_I, KC_O, KC_P,
  24. HOME_A, HOME_S, HOME_D, HOME_F, KC_G, KC_H, HOME_J, HOME_K, HOME_L, HOME_SCLN,
  25. KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
  26. SFT_ESC, KC_LCTL, KC_LGUI, KC_SPC, LOWER, RAISE, KC_SPC, KC_LALT, KC_BSPC, SC_SENT
  27. ),
  28. [_LOWER] = LAYOUT(
  29. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_NEXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  30. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  31. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  32. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
  33. ),
  34. [_RAISE] = LAYOUT(
  35. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_NEXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  36. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  37. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  38. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
  39. ),
  40. [_ADJUST] = LAYOUT(
  41. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_NEXT, KC_TRNS, KC_TRNS, DB_TOGG, EE_CLR, QK_BOOT,
  42. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  43. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  44. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
  45. )
  46. };
  47. // clang-format on
  48. const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
  49. [_QWERTY] = {ENCODER_CCW_CW(RM_HUEU, RM_HUED)},
  50. [_LOWER] = {ENCODER_CCW_CW(RM_HUEU, RM_HUED)},
  51. [_RAISE] = {ENCODER_CCW_CW(RM_HUEU, RM_HUED)},
  52. [_ADJUST] = {ENCODER_CCW_CW(RM_HUEU, RM_HUED)},
  53. };
  54. layer_state_t layer_state_set_user(layer_state_t state) {
  55. return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
  56. }
  57. void keyboard_post_init_user(void) {
  58. // Init the display
  59. ui_init();
  60. }
  61. void housekeeping_task_user(void) {
  62. // Draw the display
  63. ui_task();
  64. }