Files
SplitOverlay/firmware/README.md
T
khadzhibekovpa 292d61bb47
CI / build-and-test (push) Canceled after 0s
feat: initial release of SplitOverlay (KeyOverlay 1.0.0)
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
2026-10-20 09:43:17 +03:00

3.9 KiB
Raw Blame History

Прошивка Silakka54 (LED, v1.4led) с командой «какой слой активен»

Это исходники релиза 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 тем же способом.

Сборка

Нужны 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, в который он собирается.