feat: initial release of SplitOverlay (KeyOverlay 1.0.0)
CI / build-and-test (push) Canceled after 0s
CI / build-and-test (push) Canceled after 0s
Semi-transparent always-on-top Windows overlay that shows the keymap of a Vial/QMK split keyboard (Silakka54). - draws all layers from a Vial .vil layout, transparent keys fall through - detects the active layer from the keyboard via a Raw HID command (firmware/) - shows characters of the active Windows input language - can split the two halves into separate, independently movable windows - highlights pressed keys; tray menu for opacity, size and options - Inno Setup installer and portable build; GitHub-style CI workflow
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
# Прошивка Silakka54 (LED, v1.4led) с командой «какой слой активен»
|
||||
|
||||
Это исходники релиза [v1.4led](https://github.com/Squalius-cephalus/silakka54/releases/tag/v1.4led)
|
||||
(keymap `vial_led`, подсветка слоёв) плюс файл `keyoverlay_hid.c`. Он добавляет HID-команду `0xE0`:
|
||||
оверлей спрашивает плату, и плата отвечает номером активного слоя. Раскладку и LED команда не затрагивает,
|
||||
работает и при заблокированном Vial.
|
||||
|
||||
## Протокол
|
||||
|
||||
Запрос (хост → клавиатура, Raw HID, 32 байта): `[0xE0, 0x01, ...]`
|
||||
Ответ: `[0xE0, 0x01, highest_layer, layer_state (u32 LE), default_layer_state (u32 LE), ...]`
|
||||
|
||||
Номер `0xE0` не пересекается с командами VIA (`0x01..0x1F`), Vial (`0xFE`) и «не обработано» (`0xFF`).
|
||||
Прошивка только читает состояние. Слой отдаёт та половина, которая подключена к ПК (главная).
|
||||
|
||||
## Готовые файлы
|
||||
|
||||
Собранные `.uf2` лежат в Releases (в git они не хранятся):
|
||||
|
||||
- `silakka54_vial_led_keyoverlay_LEFT.uf2` — в левую половину, собран с `MASTER_LEFT`
|
||||
- `silakka54_vial_led_keyoverlay_RIGHT.uf2` — в правую половину, собран с `MASTER_RIGHT`
|
||||
|
||||
LEFT и RIGHT различаются тем, какая половина считается главной (определяет, в какую USB-розетку
|
||||
втыкать кабель), как и в оригинальных релизах проекта.
|
||||
|
||||
## Прошивка платы (RP2040)
|
||||
|
||||
1. В Vial: File → Save current layout. После обновления прошивки раскладка может сброситься.
|
||||
2. Закрой Vial и оверлей. Отключи кабель между половинами (TRRS) на время прошивки.
|
||||
3. Зажми BOOT на плате и подключи USB (или дважды быстро нажми reset). Появится диск RPI-RP2.
|
||||
4. Скопируй на него файл своей половины. Плата перезагрузится сама. Повтори для второй половины.
|
||||
5. Подключи половины обратно. В Vial загрузи сохранённую раскладку (File → Load saved layout), если слои пропали.
|
||||
|
||||
Откат: прошей оригинальные `silakka54_vial_led_LEFT.uf2` / `..._RIGHT.uf2` из
|
||||
[релиза v1.4led](https://github.com/Squalius-cephalus/silakka54/releases/tag/v1.4led) тем же способом.
|
||||
|
||||
## Сборка
|
||||
|
||||
Нужны Git, bash и Docker.
|
||||
|
||||
```
|
||||
bash firmware/prepare-source.sh # клонирует vial-qmk и silakka54 (v1.4led) в .firmware-work/ и добавляет команду
|
||||
docker build -t keyoverlay-fw-build firmware
|
||||
docker run --rm -v "$PWD/.firmware-work/vial-qmk:/qmk_firmware" -v "$PWD/firmware:/fw" -w /qmk_firmware keyoverlay-fw-build sh /fw/build-in-container.sh
|
||||
```
|
||||
|
||||
(В PowerShell вместо `$PWD/...` используй полные пути: `-v C:\путь\.firmware-work\vial-qmk:/qmk_firmware`.)
|
||||
|
||||
Готовые файлы появятся в `.firmware-work/vial-qmk/` как `silakka54_vial_led_keyoverlay_LEFT.uf2` и `..._RIGHT.uf2`.
|
||||
Первая сборка долгая (десятки минут на смонтированной папке Windows), повторные быстрее.
|
||||
Образ Docker (`Dockerfile`) добавляет к базовому образу QMK компилятор ARM и утилиту `qmk`.
|
||||
|
||||
Файл `keyoverlay_hid.c` распространяется под GPL-2.0-or-later, как и QMK/Vial, в который он собирается.
|
||||
Reference in New Issue
Block a user