Исправления, чтоб QMK дал скомпилироваться

This commit is contained in:
Buliway 2023-12-02 03:41:43 +03:00
parent bd738453ce
commit 6d1b406bf2
4 changed files with 60 additions and 44 deletions

View file

@ -9,7 +9,15 @@
2) Сделать нормальный once shift, а не через смену слоя на +1 как в стандартном lang_shift
3) Написать более подробный гайд по прошивке ниже
# Как прошить
# Как прошить на Linux
## Vial
Когда то будет
https://get.vial.today/docs/porting-to-vial.html
А пока старый вариант гайда
Создать файл прошивки
@ -19,9 +27,17 @@ make crkbd/rev1:vial
qmk flash -kb crkbd/rev1 -km vial
https://get.vial.today/docs/porting-to-vial.html
## QMK
https://docs.qmk.fm/#/newbs_getting_started
В терминале пишем это
1) sudo pacman --needed --noconfirm -S git python-pip libffi
2) paru -S qmk-git
3) qmk setup
4) Переносим в каталог ~/qmk_firmware/keyboards/crkbd/keymaps/default свои настройки. Либо можно создать свой каталог в keymaps вместо default и туда засунуть свои настройки.
5) qmk compile -kb crkbd/rev1 -km default
https://docs.qmk.fm/#/newbs_flashing
# Моя раскладка
![Keyboard](/img/layers.png)

View file

@ -138,7 +138,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//|-----------+-----------+-----------+-----------+-----------+-----------| |-----------+-----------+-----------+-----------+-----------+-----------|
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, LT(L_NUM, KC_ESC) KC_H, KC_SPC, LT(L_FUN, KC_ENT)
KC_LALT, KC_SPC, LT(L_NUM, KC_ESC), KC_H, KC_SPC, LT(L_FUN, KC_ENT)
//`+--------------------+--------------------+--------------------||--------------------+--------------------+--------------------+'
)
};
@ -160,13 +160,13 @@ void user_timer(void) {
layer_state_t default_layer_state_set_user(layer_state_t state) {
switch (get_highest_layer(state)) {
case L_ENG:
rgblight_sethsv(HSV_ROSE);
rgblight_sethsv(HSV_PINK); // HSV_PINK
break;
case L_GAME:
rgblight_sethsv(HSV_ORANGE);
rgblight_sethsv(HSV_ORANGE); // HSV_ORANGE
break;
default: // for any other layers, or the default layer
rgblight_sethsv(HSV_WHITE);
rgblight_sethsv(HSV_WHITE); // HSV_WHITE
break;
}
return state;
@ -175,28 +175,28 @@ layer_state_t default_layer_state_set_user(layer_state_t state) {
layer_state_t layer_state_set_user(layer_state_t state) {
switch (get_highest_layer(state)) {
case L_RU:
rgblight_sethsv(HSV_VIOLET);
rgblight_sethsv(HSV_PURPLE); // HSV_PURPLE
break;
case L_MEDIA:
rgblight_sethsv(HSV_MAGENTA);
rgblight_sethsv(HSV_MAGENTA); // HSV_MAGENTA
break;
case L_NAV:
rgblight_sethsv(HSV_CYAN);
rgblight_sethsv(HSV_CYAN); // HSV_CYAN
break;
case L_MOUSE:
rgblight_sethsv(HSV_YELLOW);
rgblight_sethsv(HSV_YELLOW); // HSV_YELLOW
break;
case L_SYM:
rgblight_sethsv(HSV_GREEN);
rgblight_sethsv(HSV_GREEN); // HSV_GREEN
break;
case L_NUM:
rgblight_sethsv(HSV_BLUE);
rgblight_sethsv(HSV_BLUE); // HSV_BLUE
break;
case L_FUN:
rgblight_sethsv(HSV_RED);
rgblight_sethsv(HSV_RED); // HSV_RED
break;
default: // for any other layers, or the default layer
rgblight_sethsv(HSV_WHITE);
rgblight_sethsv(HSV_WHITE); // HSV_WHITE
break;
}
return state;

View file

@ -120,9 +120,9 @@ void shift_activate(Shift shift) {
if (shift_current != shift) {
shift_timer = timer_read();
if (shift) {
register_code(KC_LSHIFT);
register_code(KC_LSFT);
} else {
unregister_code(KC_LSHIFT);
unregister_code(KC_LSFT);
}
}
shift_current = shift;
@ -328,10 +328,10 @@ void lang_synchronize(void) {
case LANG_CHANGE_CAPS: {
// Костыль, потому что при нажатии Shift+Caps включается режим Caps, а не переключение языка :facepalm:
if (shift_current == 1) {
unregister_code(KC_LSHIFT);
unregister_code(KC_LSFT);
register_code(KC_CAPS);
unregister_code(KC_CAPS);
register_code(KC_LSHIFT);
register_code(KC_LSFT);
} else {
register_code(KC_CAPS);
unregister_code(KC_CAPS);
@ -339,46 +339,46 @@ void lang_synchronize(void) {
} break;
case LANG_CHANGE_ALT_SHIFT: {
register_code(KC_LALT);
register_code(KC_LSHIFT);
unregister_code(KC_LSHIFT);
register_code(KC_LSFT);
unregister_code(KC_LSFT);
unregister_code(KC_LALT);
// Костыль, потому что при зажатом шифте если хочется нажать клавишу, которая переключает язык, то шифт слетает...
if (shift_current == 1) {
register_code(KC_LSHIFT);
register_code(KC_LSFT);
}
} break;
case LANG_CHANGE_SHIFT_ALT: {
register_code(KC_LSHIFT);
register_code(KC_LSFT);
register_code(KC_LALT);
unregister_code(KC_LALT);
unregister_code(KC_LSHIFT);
unregister_code(KC_LSFT);
// Костыль, потому что при зажатом шифте если хочется нажать клавишу, которая переключает язык, то шифт слетает...
if (shift_current == 1) {
register_code(KC_LSHIFT);
register_code(KC_LSFT);
}
} break;
case LANG_CHANGE_CTRL_SHIFT: {
register_code(KC_LCTRL);
register_code(KC_LSHIFT);
unregister_code(KC_LSHIFT);
register_code(KC_LCTL);
register_code(KC_LSFT);
unregister_code(KC_LSFT);
unregister_code(KC_LCTL);
// Костыль, потому что при зажатом шифте если хочется нажать клавишу, которая переключает язык, то шифт слетает...
if (shift_current == 1) {
register_code(KC_LSHIFT);
register_code(KC_LSFT);
}
} break;
case LANG_CHANGE_SHIFT_CTRL: {
register_code(KC_LSHIFT);
register_code(KC_LCTRL);
register_code(KC_LSFT);
register_code(KC_LCTL);
unregister_code(KC_LCTL);
unregister_code(KC_LSHIFT);
unregister_code(KC_LSFT);
// Костыль, потому что при зажатом шифте если хочется нажать клавишу, которая переключает язык, то шифт слетает...
if (shift_current == 1) {
register_code(KC_LSHIFT);
register_code(KC_LSFT);
}
} break;
case LANG_CHANGE_WIN_SPACE: {
@ -602,21 +602,21 @@ bool lang_shift_process_english_modifiers(Key key, keyrecord_t* record) {
#define Un(x) unregister_code(KC_L ## x)
switch (key) {
PROCESS(CTRL_0, Rg(CTRL), Un(CTRL), false);
PROCESS(CTRL_0, Rg(CTL), Un(CTL), false);
PROCESS(ALT_0, Rg(ALT), Un(ALT), false);
PROCESS(WIN_0, Rg(GUI), Un(GUI), false);
PROCESS(CTAL_0, { Rg(CTRL); Rg(ALT); }, { Un(ALT); Un(CTRL); }, false);
PROCESS(SHAL_0, { Rg(SHIFT); Rg(ALT); }, { Un(ALT); Un(SHIFT); }, false);
PROCESS(CTSH_0, { Rg(CTRL); Rg(SHIFT); }, { Un(SHIFT); Un(CTRL); }, false);
PROCESS(MCAS_0, { Rg(CTRL); Rg(ALT); Rg(SHIFT); }, { Un(SHIFT); Un(ALT); Un(CTRL); }, false);
PROCESS(CTAL_0, { Rg(CTL); Rg(ALT); }, { Un(ALT); Un(CTL); }, false);
PROCESS(SHAL_0, { Rg(SFT); Rg(ALT); }, { Un(ALT); Un(SFT); }, false);
PROCESS(CTSH_0, { Rg(CTL); Rg(SFT); }, { Un(SFT); Un(CTL); }, false);
PROCESS(MCAS_0, { Rg(CTL); Rg(ALT); Rg(SFT); }, { Un(SFT); Un(ALT); Un(CTL); }, false);
PROCESS(CTRL_EN, Rg(CTRL), Un(CTRL), true);
PROCESS(CTRL_EN, Rg(CTL), Un(CTL), true);
PROCESS(ALT_EN, Rg(ALT), Un(ALT), true);
PROCESS(WIN_EN, Rg(GUI), Un(GUI), true);
PROCESS(CTAL_EN, { Rg(CTRL); Rg(ALT); }, { Un(ALT); Un(CTRL); }, true);
PROCESS(SHAL_EN, { Rg(SHIFT); Rg(ALT); }, { Un(ALT); Un(SHIFT); }, true);
PROCESS(CTSH_EN, { Rg(CTRL); Rg(SHIFT); }, { Un(SHIFT); Un(CTRL); }, true);
PROCESS(MCAS_EN, { Rg(CTRL); Rg(ALT); Rg(SHIFT); }, { Un(SHIFT); Un(ALT); Un(CTRL); }, true);
PROCESS(CTAL_EN, { Rg(CTL); Rg(ALT); }, { Un(ALT); Un(CTL); }, true);
PROCESS(SHAL_EN, { Rg(SFT); Rg(ALT); }, { Un(ALT); Un(SFT); }, true);
PROCESS(CTSH_EN, { Rg(CTL); Rg(SFT); }, { Un(SFT); Un(CTL); }, true);
PROCESS(MCAS_EN, { Rg(CTL); Rg(ALT); Rg(SFT); }, { Un(SFT); Un(ALT); Un(CTL); }, true);
}
return true;

View file

@ -14,7 +14,7 @@ NKRO_ENABLE = yes
RGBLIGHT_ENABLE = yes
# Enable keyboard underlight functionality
TAP_DANCE_ENABLE = yes
TAP_DANCE_ENABLE = no
# Чтоб на нажатие клавиши было что-то одно, а на зажатие - другое. Называется TapDance
# TAPPING_TERM_PER_KEY = yes