1 #include QMK_KEYBOARD_H
2 #include "konstantin.h"
9 L_RCTRL
= L_RANGE_KEYMAP
,
12 void eeconfig_init_keymap(void) {
13 rgblight_sethsv(MODERN_DOLCH_RED
);
14 rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL
);
17 bool process_record_keymap(uint16_t keycode
, keyrecord_t
*record
) {
20 if (record
->event
.pressed
) {
21 register_code(KC_RCTRL
);
24 unregister_code(KC_RCTRL
);
33 static inline void fn_light() {
34 rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT
);
35 rgblight_sethsv_noeeprom(modern_dolch_red
.h
, modern_dolch_red
.s
, rgblight_get_val());
38 static inline void caps_light() {
39 rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT
);
40 rgblight_sethsv_noeeprom(modern_dolch_cyan
.h
, modern_dolch_cyan
.s
, rgblight_get_val());
43 static inline void restore_light() {
44 rgblight_config_t saved
= { .raw
= eeconfig_read_rgblight() };
45 rgblight_sethsv_noeeprom(saved
.hue
, saved
.sat
, saved
.val
);
46 rgblight_mode_noeeprom(saved
.mode
);
49 static void check_light_layer(uint32_t state
) {
50 if (IS_LAYER_ON_STATE(state
, L_FN
)) {
52 } else if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK
)) {
59 static void check_light_led(uint8_t usb_led
) {
60 if (IS_LED_ON(usb_led
, USB_LED_CAPS_LOCK
)) {
62 } else if (IS_LAYER_ON(L_FN
)) {
69 static bool skip_led
= false;
71 uint32_t layer_state_set_keymap(uint32_t state
) {
72 static uint32_t prev_state
= L_BASE
;
73 if (IS_LAYER_ON_STATE(state
, L_FN
) != IS_LAYER_ON_STATE(prev_state
, L_FN
)) {
74 check_light_layer(state
); // Fn state changed since last time
75 skip_led
= IS_LAYER_ON_STATE(state
, L_FN
);
76 // led_set_keymap will be called automatically after this
78 return prev_state
= state
;
81 void led_set_keymap(uint8_t usb_led
) {
84 return; // Skip calls triggered by the Fn layer turning on
86 check_light_led(usb_led
);
89 const uint16_t PROGMEM keymaps
[][MATRIX_ROWS
][MATRIX_COLS
] = {
91 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
92 * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │ ` │
93 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
94 * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │Bspc │
95 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
96 * │LCtCps│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │
97 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
98 * │LShiftFn│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │RShift│FnF│
99 * └─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┘
100 * │LGu│LAlt │ Space │RAlGu│RCt│
101 * └───┴─────┴───────────────────────────┴─────┴───┘
104 KC_ESC
, KC_1
, KC_2
, KC_3
, KC_4
, KC_5
, KC_6
, KC_7
, KC_8
, KC_9
, KC_0
, KC_MINS
, KC_EQL
, KC_BSLS
, KC_GRV
,
105 KC_TAB
, KC_Q
, KC_W
, KC_E
, KC_R
, KC_T
, KC_Y
, KC_U
, KC_I
, KC_O
, KC_P
, KC_LBRC
, KC_RBRC
, KC_BSPC
,
106 LCT_CPS
, KC_A
, KC_S
, KC_D
, KC_F
, KC_G
, KC_H
, KC_J
, KC_K
, KC_L
, KC_SCLN
, KC_QUOT
, KC_ENT
,
107 LSFT_FN
, KC_Z
, KC_X
, KC_C
, KC_V
, KC_B
, KC_N
, KC_M
, KC_COMM
, KC_DOT
, KC_SLSH
, KC_RSFT
, FN_FNLK
,
108 XXXXXXX
, KC_LGUI
, KC_LALT
, KC_SPC
, RAL_RGU
, RCTRL
, XXXXXXX
112 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
113 * │ │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│PSc│Ins│
114 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
115 * │ │Hom│ ↑ │End│PgU│ │ │ │ │M1 │M↑ │М2 │M3 │ Del │
116 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
117 * │ │ ← │ ↓ │ → │PgD│ │ │ │ │M← │M↓ │M→ │ │
118 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
119 * │ │Mut│Vo-│Vo+│Ply│Prv│Nxt│App│MW↑│M4 │М5 │ │ │
120 * └─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┘
121 * │ │ │ MW↓ │MAcl2│ │
122 * └───┴─────┴───────────────────────────┴─────┴───┘
125 _______
, KC_F1
, KC_F2
, KC_F3
, KC_F4
, KC_F5
, KC_F6
, KC_F7
, KC_F8
, KC_F9
, KC_F10
, KC_F11
, KC_F12
, KC_PSCR
, KC_INS
,
126 _______
, KC_HOME
, KC_UP
, KC_END
, KC_PGUP
, _______
, _______
, _______
, _______
, KC_BTN1
, KC_MS_U
, KC_BTN2
, KC_BTN3
, KC_DEL
,
127 _______
, KC_LEFT
, KC_DOWN
, KC_RGHT
, KC_PGDN
, _______
, _______
, _______
, _______
, KC_MS_L
, KC_MS_D
, KC_MS_R
, _______
,
128 _______
, KC_MUTE
, KC_VOLD
, KC_VOLU
, KC_MPLY
, KC_MPRV
, KC_MNXT
, KC_APP
, KC_WH_U
, KC_BTN4
, KC_BTN5
, _______
, _______
,
129 XXXXXXX
, _______
, _______
, KC_WH_D
, KC_ACL2
, _______
, XXXXXXX
133 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
134 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │Clr│
135 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
136 * │ │Top│Mv↑│Btm│TPr│ │ │ │ │ │ │ │ │DelNx│
137 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
138 * │ │Mv←│Mv↓│Mv→│TNx│ │ │ │ │ │ │ │ │
139 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
140 * │ │RTg│RV-│RV+│RMd│ │ │ │ │ │ │ │ │
141 * └─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┘
143 * └───┴─────┴───────────────────────────┴─────┴───┘
146 _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, CLEAR
,
147 _______
, TOP
, MV_UP
, BOTTOM
, TAB_PRV
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, DEL_NXT
,
148 _______
, MV_LEFT
, MV_DOWN
, MV_RGHT
, TAB_NXT
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
,
149 _______
, RGB_TOG
, RGB_VAD
, RGB_VAI
, RGB_MOD
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
,
150 XXXXXXX
, DST_P_R
, DST_N_A
, _______
, _______
, _______
, XXXXXXX