Ремап и слои в QMK/VIA: быстрый план настройки
Настройка клавиш QMK/VIA сводится к двум сценариям: если клавиатура уже с поддержкой VIA — меняете раскладку «на лету» без компиляции; если VIA не видит устройство — один раз прошиваете QMK с VIA_ENABLE = yes, а дальше настраиваете всё в VIA.
Оглавление
Что выбрать: VIA или QMK
VIA — самый быстрый ремап, QMK — максимум возможностей (но требует сборки и прошивки). Практичный компромисс — QMK + VIA: один раз сделать правильную прошивку, затем менять раскладку в интерфейсе VIA.
Когда достаточно VIA, а когда нужен QMK
| Вариант | Подходит, если нужно | Что может мешать |
|---|---|---|
| VIA | быстро переназначить клавиши, разложить навигацию по слоям, простые макросы | клавиатура не VIA-ready или нужен JSON-лейаут |
| QMK + VIA | то же, но стабильнее и с «планом Б» (boot/reset), плюс больше фич QMK | потребуется один цикл «собрать → прошить» |
| Чистый QMK | сложная логика, combos/tap dance, тонкая обработка нажатий | больше кода и итераций |
Быстрая настройка в VIA
-
Подключите клавиатуру по USB и откройте VIA → вкладка Keymap/Configure.
-
Если клавиатура не определяется, чаще всего причина одна из двух:
- прошивка без поддержки VIA;
- VIA не знает ваш лейаут и просит Draft Definition JSON (загружается в режиме Design/Definitions).
-
Слои (Layers): начните с простой схемы, которая реально приживается:
- Layer 0 (Base): базовая раскладка.
- Layer 1 (Nav): стрелки, Home/End, PgUp/PgDn, Delete.
- Layer 2 (Symbols): скобки,
=,-,_,\,/, кавычки.
- Клавиши управления слоями (обычно доступны в VIA):
MO(layer)— слой активен, пока держите клавишу.TG(layer)— переключатель слоя (вкл/выкл).LT(layer, key)— тап/холд: тап = символ, удержание = слой (если ваша VIA-прошивка это поддерживает).
Для старта поставьте на большие пальцы MO(1) (навигация) и MO(2) (символы). Это быстрее всего даёт прирост удобства и почти не ломает привычки.
- Макросы в VIA: держите их простыми — строка (почта/шаблон) или комбинация клавиш. Чем сложнее сценарий, тем чаще упираются в ограничения конкретной сборки.
QMK + VIA: сборка, прошивка и tap/hold
Если VIA не видит клавиатуру или вы хотите «правильную базу», сделайте прошивку QMK с VIA.
1) Включите VIA в keymap
В rules.mk вашего keymap добавьте:
VIA_ENABLE = yes
Обычно создают keymap via в keyboards/<keyboard>/keymaps/via/.
2) Соберите прошивку
Типовая команда:
qmk compile -kb <keyboard> -km via
3) Прошейте клавиатуру
- RP2040: чаще всего прошивается файлом
.uf2через режим «USB-диск» (BOOTSEL/Reset/клавиша boot). - AVR/DFU и другие: прошивка через утилиту (важно лишь попасть в bootloader и залить правильный файл).
Держите на сервисном слое две команды: вход в загрузчик (QK_BOOT) и сброс настроек (EEPROM reset). Это спасает, когда раскладка «уехала» или клавиатура перестала корректно определяться.
4) Tap/Hold (Mod-Tap, Layer-Tap), если «печатает не то»
Ложные срабатывания почти всегда лечатся настройкой времени распознавания:
- увеличьте
TAPPING_TERM(глобально), или - включите настройку по клавишам, если разные роли у пробела/энтер/клавиш на больших пальцах.
Минимальный пример для per-key:
#define TAPPING_TERM_PER_KEY
uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case SFT_T(KC_SPC): return TAPPING_TERM + 100; // пробел/Shift
case LT(1, KC_ENT): return 170; // Enter/Layer1
default: return TAPPING_TERM;
}
}
Частые ошибки
- VIA не видит клавиатуру: прошивка без
VIA_ENABLE = yes, либо нужен Draft Definition JSON, либо проблема с кабелем/портом/хабом. - После прошивки в VIA “каша” (коды не совпадают, слои странные): сделайте сброс EEPROM (factory reset) и заново настройте слои.
- На RP2040 не шьётся: пытаетесь залить не тот формат (часто нужен
.uf2) или не входите в правильный bootloader. - Mod-Tap/Layer-Tap срабатывает наоборот: слишком маленький
TAPPING_TERMили неудачное размещение tap/hold на «домашнем ряду» без привыкания.
FAQ
Можно ли обойтись только VIA без компиляции?
Да, если клавиатура уже с VIA-поддержкой и вам хватает ремапа/слоёв/простых макросов. Для сложной логики нужен QMK.
Сколько слоёв будет в VIA?
Часто 4, но это зависит от реализации dynamic keymap и памяти устройства.
Что обязательно добавить в раскладку, чтобы не “застрять”?
На отдельный сервисный слой: вход в bootloader (QK_BOOT) и сброс EEPROM. Это самые полезные «страховочные» действия при экспериментах с QMK/VIA.