Подготовка к написанию QMK. Написал конфиги и скопировал часть кода из VIAL

This commit is contained in:
Buliway 2023-11-30 22:24:41 +03:00
parent 3aaad31cf5
commit ee315e6eca
4 changed files with 248 additions and 135 deletions

View file

@ -20,8 +20,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once #pragma once
// #define VIAL_KEYBOARD_UID {0xCE, 0x08, 0x17, 0xF3, 0x0D, 0xE4, 0x4A, 0xC8}
/* Select hand configuration */ /* Select hand configuration */
#define MASTER_LEFT #define MASTER_LEFT
@ -29,10 +27,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define EE_HANDS // #define EE_HANDS
//#define TAPPING_FORCE_HOLD //#define TAPPING_FORCE_HOLD
#define TAPPING_TERM 150 #define TAPPING_TERM 175
#define LANG_CHANGE_DEFAULT LANG_CHANGE_ALT_SHIFT #define LANG_CHANGE_DEFAULT LANG_CHANGE_CAPS
// #define LANG_CHANGE_DEFAULT LANG_CHANGE_ALT_SHIFT
// #define DYNAMIC_KEYMAP_LAYER_COUNT 8 // #define LANG_CHANGE_DEFAULT LANG_CHANGE_CTRL_SHIFT
// #define LANG_CHANGE_DEFAULT LANG_CHANGE_WIN_SPACE
#define RGBLIGHT_LAYERS #define RGBLIGHT_LAYERS

View file

@ -25,108 +25,122 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define L_ENG 0 #define L_ENG 0
#define L_GAME 1 #define L_GAME 1
#define L_RU 2 #define L_RU 2
#define L_PUNC 3 #define L_MEDIA 3
#define L_IDK1 4 #define L_NAV 4
#define L_IDK2 5 #define L_MOUSE 5
#define L_NUMF 6 #define L_SYM 6
#define L_NUM 7
#define L_FUN 8
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[L_ENG] = LAYOUT( [L_ENG] = LAYOUT(
//,-----------------------------------------------------------. ,-----------------------------------------------------------. //,-----------------------------------------------------------------------. ,-----------------------------------------------------------------------.
KC_ESC, EN_F, EN_L, EN_H, EN_V, EN_Z, EN_Q, EN_W, EN_U, EN_O, EN_Y, DF(L_GAME), KC_ESC, EN_F, EN_L, EN_H, EN_V, EN_Z, EN_Q, EN_W, EN_U, EN_O, EN_Y, DF(L_GAME),
//|---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------| //|-----------+-----------+-----------+-----------+-----------+-----------| |-----------+-----------+-----------+-----------+-----------+-----------|
XXXXXXX, EN_S, EN_R, EN_N, EN_T, EN_K, EN_C, EN_D, EN_E, EN_A, EN_I, KC_LWIN, XXXXXXX, TD(3), TD(5), TD(7), TD(9), EN_K, EN_C, TD(10), TD(8), TD(6), TD(4), XXXXXXX,
//|---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------| //|-----------+-----------+-----------+-----------+-----------+-----------| |-----------+-----------+-----------+-----------+-----------+-----------|
CTRL_0 , EN_X, XXXXXXX, EN_B, EN_M, EN_J, EN_P, EN_G, XXXXXXX, XXXXXXX, XXXXXXX, TD(6), XXXXXXX, EN_X, XXXXXXX, EN_B, EN_M, EN_J, EN_P, EN_G, XXXXXXX, XXXXXXX, XXXXXXX, LA_CHNG,
//|---------+---------+---------+---------+---------+---------+---------||---------+---------+---------+---------+---------+---------+---------| //|-----------+-----------+-----------+-----------+-----------+-----------+-----------||-----------+-----------+-----------+-----------+-----------+-----------+-----------|
TD(0), TD(1), KC_LSHIFT, TD(2), TD(3), KC_TAB TD(0), TD(1), MO(L_NAV), MO(L_SYM), TD(2), MO(L_NUM)
//`+---------+---------+---------||---------+---------+---------+' //`+-----------+-----------+-----------||-----------+-----------+-----------+'
), ),
[L_RU] = LAYOUT( [L_RU] = LAYOUT(
//,-----------------------------------------------------------. ,-----------------------------------------------------------. //,-----------------------------------------------------------------------. ,-----------------------------------------------------------------------.
KC_ESC, RU_H, RU_G, RU_JA, RU_Y, RU_U, RU_D, RU_CH, RU_M, RU_ZH, RU_E, RU_SC, KC_ESC, RU_F, RU_E, RU_JA, RU_Y, RU_HD, RU_J, RU_B, RU_L, RU_K, RU_TS, RU_ZH,
//|---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------| //|-----------+-----------+-----------+-----------+-----------+-----------| |-----------+-----------+-----------+-----------+-----------+-----------|
RU_F, RU_N, RU_I, RU_JE, RU_O, RU_SF, RU_P, RU_V, RU_T, RU_S, RU_R, RU_TS, RU_SC, TD(11), TD(13), TD(15), TD(17), RU_SF, RU_D, TD(18), TD(16), TD(14), TD(12), RU_CH,
//|---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------| //|-----------+-----------+-----------+-----------+-----------+-----------| |-----------+-----------+-----------+-----------+-----------+-----------|
TD(5), RU_SH, RU_B, RU_JU, RU_A, RU_JO, RU_HD, RU_K, RU_L, RU_Z, RU_J, ALT_0, LA_CHNG, RU_SH, RU_JU, RU_U, RU_I, RU_JO, RU_G, RU_M, RU_R, RU_P, RU_H, XXXXXXX,
//|---------+---------+---------+---------+---------+---------+---------||---------+---------+---------+---------+---------+---------+---------| //|-----------+-----------+-----------+-----------+-----------+-----------+-----------||-----------+-----------+-----------+-----------+-----------+-----------+-----------|
TD(0), TD(1), KC_LSHIFT, TD(2), TD(3), KC_TAB TD(0), TD(1), MO(L_NAV), MO(L_SYM), TD(2), MO(L_NUM)
//`+---------+---------+---------||---------+---------+---------+' //`+-----------+-----------+-----------||-----------+-----------+-----------+'
), ),
[L_NUMF] = LAYOUT( [L_MEDIA] = LAYOUT(
//,-----------------------------------------------------------. ,-----------------------------------------------------------. //,-----------------------------------------------------------------------. ,-----------------------------------------------------------------------.
XXXXXXX, XXXXXXX, KC_1, KC_2, KC_3, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD, KC_VOLU, LA_SYNC, RGB_TOG, XXXXXXX,
//|---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------| //|-----------+-----------+-----------+-----------+-----------+-----------| |-----------+-----------+-----------+-----------+-----------+-----------|
XXXXXXX, KC_0, KC_4, KC_5, KC_6, KC_PSCR, XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, KC_LWIN, XXXXXXX, KC_LWIN, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, XXXXXXX, KC_MPLY, KC_MPRV, KC_MNXT, KC_MUTE, XXXXXXX,
//|---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------| //|-----------+-----------+-----------+-----------+-----------+-----------| |-----------+-----------+-----------+-----------+-----------+-----------|
KC_LCTL, XXXXXXX, KC_7, KC_8, KC_9, XXXXXXX, XXXXXXX, KC_F9, KC_F10, KC_F11, KC_F12, KC_LALT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LA_CAPS, LA_ALSH, LA_CTSH, LA_WISP, XXXXXXX,
//|---------+---------+---------+---------+---------+---------+---------||---------+---------+---------+---------+---------+---------+---------| //|-----------+-----------+-----------+-----------+-----------+-----------+-----------||-----------+-----------+-----------+-----------+-----------+-----------+-----------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
//`+---------+---------+---------||---------+---------+---------+'
),
[L_PUNC] = LAYOUT(
//,-----------------------------------------------------------. ,-----------------------------------------------------------.
AG_PERC, EN_QUOT, AG_MINS, AG_SLSH, AG_EQL, AG_PLUS, EN_PIPE, AG_RPRN, EN_RCBR, EN_RBRC, EN_GT, EN_TILD,
//|---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------|
EN_CIRC, AG_DQUO, AG_UNDS, AG_COMM, AG_DOT, EN_AT, AG_BSLS, AG_LPRN, EN_LCBR, EN_LBRC, EN_LT, EN_GRV,
//|---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------|
XXXXXXX, EN_DLR, AG_SCLN, AG_ASTR, AG_QUES, RU_NUME, XXXXXXX, AG_EXCL, EN_HASH, AG_COLN, EN_AMPR, XXXXXXX,
//|---------+---------+---------+---------+---------+---------+---------||---------+---------+---------+---------+---------+---------+---------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
//`+---------+---------+---------||---------+---------+---------+'
),
[L_IDK1] = LAYOUT(
//,-----------------------------------------------------------------------. ,-----------------------------------------------------------------------.
XXXXXXX, C(KC_SLSH), C(KC_R), C(KC_Z), C(KC_S), XXXXXXX, XXXXXXX, C(KC_T), C(KC_N), C(S(KC_P)), C(KC_F5), XXXXXXX,
//|-----------+-----------+-----------+-----------+-----------+-----------| |-----------+-----------+-----------+-----------+-----------+-----------|
C(S(KC_V)), C(KC_W), C(KC_A), C(KC_C), C(KC_V), C(KC_X), XXXXXXX, A(KC_D), A(KC_ENT), C(KC_F), C(KC_J), XXXXXXX,
//|-----------+-----------+-----------+-----------+-----------+-----------| |-----------+-----------+-----------+-----------+-----------+-----------|
XXXXXXX, C(S(KC_T)), C(KC_D), C(KC_PGUP), C(KC_PGDN), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, G(KC_L),
//|-----------+-----------+-----------+-----------+-----------+-----------+-----------||-----------+-----------+-----------+-----------+-----------+-----------+-----------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
//`+-----------+-----------+-----------||-----------+-----------+-----------+' //`+-----------+-----------+-----------||-----------+-----------+-----------+'
), ),
[L_IDK2] = LAYOUT( [L_NAV] = LAYOUT(
//,-----------------------------------------------------------------------. ,-----------------------------------------------------------------------------------------. //,-----------------------------------------------------------------------. ,-----------------------------------------------------------------------.
KC_HOME, C(KC_LEFT), C(KC_UP), C(KC_DOWN), C(KC_RGHT), KC_PGUP, LA_SYNC, C(S(KC_LEFT)), C(S(KC_UP)), C(S(KC_DOWN)), C(S(KC_RGHT)), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, C(KC_Y), C(KC_V), C(KC_C), C(KC_X), C(KC_Z), C(KC_S),
//|-----------+-----------+-----------+-----------+-----------+-----------| |--------------+--------------+--------------+--------------+--------------+--------------| //|-----------+-----------+-----------+-----------+-----------+-----------| |-----------+-----------+-----------+-----------+-----------+-----------|
KC_END, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_PGDN, KC_VOLD, KC_MPLY, KC_MNXT, KC_MPRV, KC_MUTE, KC_VOLU, XXXXXXX, KC_LWIN, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_CAPS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TAB,
//|-----------+-----------+-----------+-----------+-----------+-----------| |--------------+--------------+--------------+--------------+--------------+--------------| //|-----------+-----------+-----------+-----------+-----------+-----------| |-----------+-----------+-----------+-----------+-----------+-----------|
KC_LCTL, KC_WH_L, KC_WH_U, KC_WH_D, KC_WH_R, KC_DEL, RGB_TOG, LA_CAPS, LA_ALSH, LA_CTSH, LA_WISP, KC_LALT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_DEL,
//|-----------+-----------+-----------+-----------+-----------+-----------+-----------||-----------+--------------+--------------+--------------+--------------+--------------+--------------| //|-----------+-----------+-----------+-----------+-----------+-----------+-----------||-----------+-----------+-----------+-----------+-----------+-----------+-----------|
XXXXXXX, XXXXXXX, XXXXXXX, KC_LSHIFT, XXXXXXX, XXXXXXX XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
//`+-----------+-----------+-----------||-----------+--------------+--------------+' //`+-----------+-----------+-----------||-----------+-----------+-----------+'
), ),
[L_GAME] = LAYOUT( [L_MOUSE] = LAYOUT(
//,-----------------------------------------------------------. ,-----------------------------------------------------------. //,-----------------------------------------------------------------------. ,-----------------------------------------------------------------------.
KC_TAB, KC_T, KC_Q, KC_W, KC_E, KC_R, KC_Y, KC_U, KC_I, KC_O, KC_P, DF(L_ENG), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_ACL0, C(KC_Y), C(KC_V), C(KC_C), C(KC_X), C(KC_Z), C(KC_S),
//|---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------| //|-----------+-----------+-----------+-----------+-----------+-----------| |-----------+-----------+-----------+-----------+-----------+-----------|
KC_LSFT, KC_G, KC_A, KC_S, KC_D, KC_F, KC_H, KC_J, KC_UP, KC_K, KC_L, KC_GRV, XXXXXXX, KC_LWIN, KC_LALT, KC_LCTL, KC_LSFT, KC_ACL1, KC_BTN5, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, XXXXXXX,
//|---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------| //|-----------+-----------+-----------+-----------+-----------+-----------| |-----------+-----------+-----------+-----------+-----------+-----------|
KC_LCTL, KC_B, KC_Z, KC_X, KC_C, KC_V, KC_N, KC_LEFT, KC_DOWN, KC_RGHT, KC_M, KC_SLSH, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_ACL2, KC_BTN4, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, XXXXXXX,
//|---------+---------+---------+---------+---------+---------+---------||---------+---------+---------+---------+---------+---------+---------| //|-----------+-----------+-----------+-----------+-----------+-----------+-----------||-----------+-----------+-----------+-----------+-----------+-----------+-----------|
KC_LALT, KC_SPC, TD(4), KC_H, KC_SPC, KC_ENTER XXXXXXX, XXXXXXX, XXXXXXX, KC_BTN1, KC_BTN3, KC_BTN2
//`+---------+---------+---------||---------+---------+---------+' //`+-----------+-----------+-----------||-----------+-----------+-----------+'
) ),
// [7] = LAYOUT( [L_SYM] = LAYOUT(
// //,-----------------------------------------------------------. ,-----------------------------------------------------------. //,-----------------------------------------------------------------------. ,-----------------------------------------------------------------------.
// XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, EN_AT, EN_HASH, EN_DLR, AG_PERC, EN_CIRC, EN_AMPR, AG_ASTR, AG_MINS, AG_EQL, AG_PLUS, XXXXXXX,
// //|---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------| //|-----------+-----------+-----------+-----------+-----------+-----------| |-----------+-----------+-----------+-----------+-----------+-----------|
// XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, C(EN_SLSH), AG_EXCL, AG_QUES, AG_COMM, AG_DOT, EN_GRV, AG_BSLS, AG_LPRN, EN_LCBR, EN_LBRC, EN_LT, XXXXXXX,
// //|---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------| //|-----------+-----------+-----------+-----------+-----------+-----------| |-----------+-----------+-----------+-----------+-----------+-----------|
// XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, AG_SLSH, RU_NUME, AG_DQUO, EN_QUOT, EN_TILD, EN_PIPE, AG_RPRN, EN_RCBR, EN_RBRC, EN_GT, XXXXXXX,
// //|---------+---------+---------+---------+---------+---------+---------||---------+---------+---------+---------+---------+---------+---------| //|-----------+-----------+-----------+-----------+-----------+-----------+-----------||-----------+-----------+-----------+-----------+-----------+-----------+-----------|
// XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX AG_UNDS, AG_COLN, AG_SCLN, XXXXXXX, XXXXXXX, XXXXXXX
// //`+---------+---------+---------||---------+---------+---------+' //`+-----------+-----------+-----------||-----------+-----------+-----------+'
// ) ),
[L_NUM] = LAYOUT(
//,-----------------------------------------------------------------------. ,-----------------------------------------------------------------------.
XXXXXXX, XXXXXXX, AG_1, AG_2, AG_3, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|-----------+-----------+-----------+-----------+-----------+-----------| |-----------+-----------+-----------+-----------+-----------+-----------|
XXXXXXX, AG_0, AG_4, AG_5, AG_6, KC_PSCR, XXXXXXX, KC_LSFT, KC_LCTL, KC_LALT, KC_LWIN, XXXXXXX,
//|-----------+-----------+-----------+-----------+-----------+-----------| |-----------+-----------+-----------+-----------+-----------+-----------|
XXXXXXX, XXXXXXX, AG_7, AG_8, AG_9, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|-----------+-----------+-----------+-----------+-----------+-----------+-----------||-----------+-----------+-----------+-----------+-----------+-----------+-----------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
//`+-----------+-----------+-----------||-----------+-----------+-----------+'
),
[L_FUN] = LAYOUT(
//,-----------------------------------------------------------------------. ,-----------------------------------------------------------------------.
XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|-----------+-----------+-----------+-----------+-----------+-----------| |-----------+-----------+-----------+-----------+-----------+-----------|
XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX, XXXXXXX, KC_LSFT, KC_LCTL, KC_LALT, KC_LWIN, XXXXXXX,
//|-----------+-----------+-----------+-----------+-----------+-----------| |-----------+-----------+-----------+-----------+-----------+-----------|
XXXXXXX, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|-----------+-----------+-----------+-----------+-----------+-----------+-----------||-----------+-----------+-----------+-----------+-----------+-----------+-----------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
//`+-----------+-----------+-----------||-----------+-----------+-----------+'
),
[L_GAME] = LAYOUT(
//,-----------------------------------------------------------------------. ,-----------------------------------------------------------------------.
KC_TAB, KC_T, KC_Q, KC_W, KC_E, KC_R, KC_Y, KC_U, KC_I, KC_O, KC_P, DF(L_ENG),
//|-----------+-----------+-----------+-----------+-----------+-----------| |-----------+-----------+-----------+-----------+-----------+-----------|
KC_LSFT, KC_G, KC_A, KC_S, KC_D, KC_F, KC_H, KC_J, KC_UP, KC_K, KC_L, KC_GRV,
//|-----------+-----------+-----------+-----------+-----------+-----------| |-----------+-----------+-----------+-----------+-----------+-----------|
KC_LCTL, KC_B, KC_Z, KC_X, KC_C, KC_V, KC_N, KC_LEFT, KC_DOWN, KC_RGHT, KC_M, KC_SLSH,
//|-----------+-----------+-----------+-----------+-----------+-----------+-----------||-----------+-----------+-----------+-----------+-----------+-----------+-----------|
KC_LALT, KC_SPC, TD(19), KC_H, KC_SPC, TD(20)
//`+-----------+-----------+-----------||-----------+-----------+-----------+'
)
}; };
//idk lang_shift //idk lang_shift
@ -203,14 +217,14 @@ qk_tap_dance_action_t tap_dance_actions[] = {
layer_state_t default_layer_state_set_user(layer_state_t state) { layer_state_t default_layer_state_set_user(layer_state_t state) {
switch (get_highest_layer(state)) { switch (get_highest_layer(state)) {
case L_ENG: case L_ENG:
rgblight_sethsv(HSV_ORANGE); rgblight_sethsv(HSV_ROSE);
break; break;
case L_GAME: case L_GAME:
rgblight_sethsv(HSV_YELLOW); rgblight_sethsv(HSV_ORANGE);
break; break;
default: // for any other layers, or the default layer default: // for any other layers, or the default layer
rgblight_sethsv(HSV_WHITE); rgblight_sethsv(HSV_WHITE);
break; break;
} }
return state; return state;
}; };
@ -218,23 +232,29 @@ layer_state_t default_layer_state_set_user(layer_state_t state) {
layer_state_t layer_state_set_user(layer_state_t state) { layer_state_t layer_state_set_user(layer_state_t state) {
switch (get_highest_layer(state)) { switch (get_highest_layer(state)) {
case L_RU: case L_RU:
rgblight_sethsv(HSV_GREEN); rgblight_sethsv(HSV_VIOLET);
break; break;
case L_PUNC: case L_MEDIA:
rgblight_sethsv(HSV_MAGENTA); rgblight_sethsv(HSV_MAGENTA);
break; break;
case L_IDK1: case L_NAV:
rgblight_sethsv(HSV_BLUE);
break;
case L_IDK2:
rgblight_sethsv(HSV_RED);
break;
case L_NUMF:
rgblight_sethsv(HSV_CYAN); rgblight_sethsv(HSV_CYAN);
break; break;
case L_MOUSE:
rgblight_sethsv(HSV_YELLOW);
break;
case L_SYM:
rgblight_sethsv(HSV_GREEN);
break;
case L_NUM:
rgblight_sethsv(HSV_BLUE);
break;
case L_FUN:
rgblight_sethsv(HSV_RED);
break;
default: // for any other layers, or the default layer default: // for any other layers, or the default layer
rgblight_sethsv(HSV_WHITE); rgblight_sethsv(HSV_WHITE);
break; break;
} }
return state; return state;
}; };
@ -243,12 +263,14 @@ void matrix_scan_user(void) {
user_timer(); user_timer();
// Проверяем, активен ли слой // Проверяем, активен ли слой
if (!layer_state_cmp(layer_state, L_PUNC) && if (!layer_state_cmp(layer_state, L_MEDIA) &&
!layer_state_cmp(layer_state, L_IDK1) && !layer_state_cmp(layer_state, L_NAV) &&
!layer_state_cmp(layer_state, L_IDK2) && !layer_state_cmp(layer_state, L_MOUSE) &&
!layer_state_cmp(layer_state, L_NUMF) && !layer_state_cmp(layer_state, L_SYM) &&
!layer_state_cmp(layer_state, L_NUM) &&
!layer_state_cmp(layer_state, L_FUN) &&
!layer_state_cmp(layer_state, L_RU)) { !layer_state_cmp(layer_state, L_RU)) {
// Если ни один из этих слоев не активен, обновляем подсветку на основе текущего базового слоя // Если ни один из этих слоев не активен, обновляем подсветку на основе текущего базового слоя
default_layer_state_set_user(default_layer_state); default_layer_state_set_user(default_layer_state);
} }
} }

View file

@ -1,13 +1,105 @@
LTO_ENABLE = yes LTO_ENABLE = yes
MOUSEKEY_ENABLE = yes # Enables Link Time Optimization (LTO) when compiling the keyboard. This makes the process take longer, but it can significantly reduce the compiled size (and since the firmware is small, the added time is not noticeable).
EXTRAKEY_ENABLE = yes # Audio control and System control
NKRO_ENABLE = yes MOUSEKEY_ENABLE = yes
RGBLIGHT_ENABLE = yes # This gives you control over cursor movements and clicks via keycodes/custom functions.
TAP_DANCE_ENABLE = yes
EXTRAKEY_ENABLE = yes
# This allows you to use the system and audio control key codes.
NKRO_ENABLE = yes
# This allows the keyboard to tell the host OS that up to 248 keys are held down at once (default without NKRO is 6). NKRO is off by default, even if NKRO_ENABLE is set. NKRO can be forced by adding #define FORCE_NKRO to your config.h or by binding MAGIC_TOGGLE_NKRO to a key and then hitting the key.
# If this doesnt work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
RGBLIGHT_ENABLE = yes
# Enable keyboard underlight functionality
TAP_DANCE_ENABLE = yes
# Чтоб на нажатие клавиши было что-то одно, а на зажатие - другое. Называется TapDance
# TAPPING_TERM_PER_KEY = yes
# Я так понимаю это чтоб задавать задержку до срабатывания не одну на всю клавиатуру, а для каждой клавиши отдельно. https://docs.qmk.fm/#/tap_hold?id=tapping_term
BACKLIGHT_ENABLE = no
# This enables the in-switch LED backlighting. You can specify the backlight pin by putting this in your config.h: #define BACKLIGHT_PIN B7
MUSIC_ENABLE = no
# Не понял что это. В стоке включено. Пишут "This tranlates matrix positions into notes". Хз что это значит
OLED_ENABLE = no
# Чтоб OLED экраном на клавиатуре управлять
COMBO_ENABLE = no
# Key combo feature. https://docs.qmk.fm/#/feature_combo
BACKLIGHT_ENABLE = no
MUSIC_ENABLE = no
OLED_ENABLE = no
COMBO_ENABLE = no
KEY_OVERRIDE_ENABLE = no KEY_OVERRIDE_ENABLE = no
QMK_SETTINGS = no # Enable the key override feature. https://docs.qmk.fm/#/feature_key_overrides
# LEADER_ENABLE = yes
# If youre a Vim user, you probably know what a Leader key is. In contrast to Combos, the Leader key allows you to hit a sequence of up to five keys instead, which triggers some custom functionality once complete. https://docs.qmk.fm/#/feature_leader_key
# UNICODE_ENABLE = yes
# This allows you to send Unicode characters using UC(<code point>) in your keymap. Code points up to 0x7FFF are supported. This covers characters for most modern languages, as well as symbols, but it doesnt cover emoji.
# UNICODEMAP_ENABLE = yes
# This allows you to send Unicode characters using UM(<map index>) in your keymap. You will need to maintain a mapping table in your keymap file. All possible code points (up to 0x10FFFF) are supported.
# UCIS_ENABLE = yes
# This allows you to send Unicode characters by inputting a mnemonic corresponding to the character you want to send. You will need to maintain a mapping table in your keymap file. All possible code points (up to 0x10FFFF) are supported. For further details, as well as limitations, see the Unicode page. https://docs.qmk.fm/#/feature_unicode
# KEY_LOCK_ENABLE = yes
# This enables key lock. https://docs.qmk.fm/#/feature_key_lock
# CUSTOM_MATRIX = ?
# Lets you replace the default matrix scanning routine with your own code. For further details, see the Custom Matrix page. https://docs.qmk.fm/#/custom_matrix
# DEBOUNCE_TYPE = ?
# Lets you replace the default key debouncing routine with an alternative one. If custom you will need to provide your own implementation.
# VARIABLE_TRACE = ?
# Use this to debug changes to variable values, see the tracing variables section of the Unit Testing page for more information.
# AUDIO_ENABLE = ?
# This allows you output audio on the C6 pin (needs abstracting). See the audio page for more information. https://docs.qmk.fm/#/feature_audio
# MIDI_ENABLE = ?
# This enables MIDI sending and receiving with your keyboard. To enter MIDI send mode, you can use the keycode MI_ON, and MI_OFF to turn it off. This is a largely untested feature, but more information can be found in the quantum/quantum.c file.
# SLEEP_LED_ENABLE = ?
# Enables your LED to breath while your computer is sleeping. Timer1 is being used here. This feature is largely unused and untested, and needs updating/abstracting.
# COMMAND_ENABLE = ?
# This enables magic commands, typically fired with the default magic key combo LSHIFT+RSHIFT+KEY. Magic commands include turning on debugging messages (MAGIC+D) or temporarily toggling NKRO (MAGIC+N).
# CONSOLE_ENABLE = ?
# This allows you to print messages that can be read using hid_listen https://www.pjrc.com/teensy/hid_listen.html
# BOOTMAGIC_ENABLE = ?
# This allows you to hold a key (usually Escape by default) to reset the EEPROM settings that persist over power loss and ready your keyboard to accept new firmware.
# MAGIC_ENABLE = ?
# Magic Keycodes are prefixed with MAGIC_, and allow you to access the functionality of the deprecated Bootmagic feature after your keyboard has initialized. To use the keycodes, assign them to your keymap as you would any other keycode. https://docs.qmk.fm/#/keycodes_magic
# DYNAMIC_TAPPING_TERM_ENABLE = ?
# Allows to configure the global tapping term on the fly.
# DEFERRED_EXEC_ENABLE = ?
# Enables deferred executor support timed delays before callbacks are invoked. See https://docs.qmk.fm/#/custom_quantum_functions?id=deferred-execution for more information.
# NO_USB_STARTUP_CHECK = ?
# Disables usb suspend check after keyboard startup. Usually the keyboard waits for the host to wake it up before any tasks are performed. This is useful for split keyboards as one half will not get a wakeup call but must send commands to the master.
# SPLIT_KEYBOARD = ?
# This enables split keyboard support (dual MCU like the lets split and bakingpys boards) and includes all necessary files located at quantum/split_common
# SPLIT_TRANSPORT = ?
# As there is no standard split communication driver for ARM-based split keyboards yet, SPLIT_TRANSPORT = custom must be used for these. It will prevent the standard split keyboard communication code (which is AVR-specific) from being included, allowing a custom implementation to be used.
# RING_BUFFERED_6KRO_REPORT_ENABLE = ?
# USB 6-Key Rollover - Instead of stopping any new input once 6 keys are pressed, the oldest key is released and the new key is pressed.
# BLUETOOTH_ENABLE = ?
# Current options are bluefruit_le, rn42
# WAIT_FOR_USB = ?
# Forces the keyboard to wait for a USB connection to be established before it starts up

View file

@ -29,7 +29,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define EE_HANDS // #define EE_HANDS
//#define TAPPING_FORCE_HOLD //#define TAPPING_FORCE_HOLD
#define TAPPING_TERM 200 #define TAPPING_TERM 175
#define LANG_CHANGE_DEFAULT LANG_CHANGE_CAPS #define LANG_CHANGE_DEFAULT LANG_CHANGE_CAPS
// #define LANG_CHANGE_DEFAULT LANG_CHANGE_ALT_SHIFT // #define LANG_CHANGE_DEFAULT LANG_CHANGE_ALT_SHIFT