From 6d1b406bf2fbd2048ae68b7c6436c74d03db2126 Mon Sep 17 00:00:00 2001 From: Buliway Date: Sat, 2 Dec 2023 03:41:43 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F,=20=D1=87=D1=82=D0=BE=D0=B1=20QMK=20?= =?UTF-8?q?=D0=B4=D0=B0=D0=BB=20=D1=81=D0=BA=D0=BE=D0=BC=D0=BF=D0=B8=D0=BB?= =?UTF-8?q?=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D1=82=D1=8C=D1=81=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 22 ++++++++++++++--- qmk/keymap.c | 24 +++++++++---------- qmk/lang_shift/src.c | 56 ++++++++++++++++++++++---------------------- qmk/rules.mk | 2 +- 4 files changed, 60 insertions(+), 44 deletions(-) diff --git a/README.md b/README.md index 73d775b..29aaa4e 100644 --- a/README.md +++ b/README.md @@ -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) diff --git a/qmk/keymap.c b/qmk/keymap.c index 0ca0b14..9caee63 100644 --- a/qmk/keymap.c +++ b/qmk/keymap.c @@ -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; diff --git a/qmk/lang_shift/src.c b/qmk/lang_shift/src.c index 05d310f..e58eeea 100644 --- a/qmk/lang_shift/src.c +++ b/qmk/lang_shift/src.c @@ -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; diff --git a/qmk/rules.mk b/qmk/rules.mk index 993bda3..8f8c8ab 100644 --- a/qmk/rules.mk +++ b/qmk/rules.mk @@ -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