Initial commit

This commit is contained in:
2026-09-06 01:06:40 +08:00
commit 57c4e80f0d
69 changed files with 20940 additions and 0 deletions
+102
View File
@@ -0,0 +1,102 @@
# Режимы подсветки
19 встроенных режимов прошивки плюс выключение.
Номер режима = байт [0] lighting-payload, алиасы заданы в `katana.py` (`MODES`).
Полная таблица с байтами payload — в [PROTOCOL.md](PROTOCOL.md) (раздел «Lighting payload»).
## Таблица режимов
Режимы указаны в порядке их перечисления в фирменной утилите.
| № | Название | Алиас | Цвет | Яркость | Скорость | Направление | Описание |
| --- | -------------------- | ----------- | ----------- | ------- | -------- | ----------- | --------------------------------------------------------------------------------- |
| 1 | Постоянный свет | `static` | моно/спектр | + | + | | статическое свечение всех клавиш |
| 2 | Подсветка нажатых | `keypress` | моно/спектр | + | + | | все выключены, подсвечиваются нажатые |
| 3 | Затухание нажатых | `fade` | моно/спектр | + | + | | все включены, гаснут нажатые |
| 4 | Звёздный | `star` | моно/спектр | + | + | | случайные вспышки после полного затухания |
| 5 | Снежный | `snow` | моно/спектр | + | + | | аналогично, но больше соседних клавиш |
| 6 | Цветочный | `flower` | спектр | + | + | | плавные цвета на каждой клавише без затухания |
| 7 | Дыхание | `breathing` | спектр¹ | + | + | | плавное свечение и затухание всех клавиш |
| 8 | Полный спектр | `spectrum` | спектр | + | + | | плавные цвета на всех клавишах без затухания |
| 9 | Круги | `ripple` | моно/спектр | + | + | | плавные цвета кругами из центра к краям |
| 10 | Водопад | `waterfall` | моно/спектр | + | + | ↑/↓ | спектр по рядам клавиш |
| 11 | Течение | `flow` | моно/спектр | + | + | ←/→ | косые волны в одну сторону без затухания |
| 12 | Вращение | `rotate` | моно/спектр | + | + | ←/→ | волна по кругу вокруг центра |
| 13 | Горизонтальная грань | `h-edge` | моно/спектр | + | + | | все выключены, горизонтальная волна по ряду от нажатой клавиши |
| 14 | Вертикальная грань | `v-edge` | моно/спектр | + | + | | все выключены, косая волна по всем рядам от нажатой клавиши |
| 15 | Рябь по воде | `splash` | моно/спектр | + | + | | все выключены, плавные круги от нажатой клавиши |
| 16 | Бегущая строка | `marquee` | моно/спектр | + | + | ←/→ | все выключены, плавная бегущая подсветка каждой клавиши в каждом ряду сверху вниз |
| 17 | Горы | `mountains` | моно/спектр | + | + | | плавные углы из середины в стороны |
| 18 | Ветер | `wind` | моно/спектр | + | + | ←/→ | косые волны в одну сторону с затуханием |
| 19 | Шаттл | `shuttle` | моно/спектр | + | + | | бегущие строки по чётным/нечётным рядам в обе стороны |
| 20 | Выключена | `off` | | | | | все клавиши погашены |
¹ У breathing цвет из payload игнорируется прошивкой: цикл цвета зашит и гоняет зелёно-жёлто-красную гамму при любом `--color` (проверено на железе, payload совпадает с вендорским — подробности в [PROTOCOL.md](PROTOCOL.md)).
Для моноцветного дыхания аналога нет; если нужен именно красный постоянный свет — используйте `static`.
## Примеры
```
./katana.py off # выключить подсветку
./katana.py mode 1 --color ff00ff # статика, маджента
./katana.py mode static --color magenta # то же самое, алиасами
./katana.py mode breathing # дыхание (цвет зашит в прошивку, см. сноску ¹)
./katana.py mode spectrum --color cyan # полный спектр (спектр игнорирует цвет)
./katana.py mode static --rainbow # статика радугой
./katana.py mode waterfall --color gold --speed 5
./katana.py mode marquee --color red --direction east-west
```
## Аргументы `mode`
### `N`
Номер режима из таблицы выше (десятичный или hex) либо алиас.
Также принимается `off`.
### `--color ЦВЕТ`
Цвет для моно-режимов.
По умолчанию `ffffff`.
В спектр-режимах (`flower`, `spectrum`, `waterfall`...) игнорируется прошивкой.
### `--brightness 1–15`
Яркость.
По умолчанию `15`.
### `--speed 2–15`
Скорость анимации.
По умолчанию `10` (вендорский дефолт).
Для `static` скорость не применяется — прошивке всегда шлётся `10`, при явном другом значении печатается warning.
Значения ниже `2` для анимаций принимаются, но не наблюдались у вендора (warning).
### `--rainbow`
Только для `static`: радужный спектр вместо одного цвета (байт [11] = `01`).
### `--direction`
Направление анимации (байт [11]) для режимов с направлением: `north-south`, `south-north`, `east-west`, `west-east`.
Для остальных режимов команда завершается ошибкой.
Сняты значения: `waterfall` (`north-south`=`02`, `south-north`=`03`), `marquee` (`east-west`=`01`, `west-east`=`00`); для `flow`, `rotate`, `wind` байты уточняются.
### `--flag 0–255`
Переопределение служебного байта [8] payload — без необходимости не трогать.
По умолчанию вендорский (`00` static/star, `01` остальные).
### `--no-save`
Не писать настройки во флеш (пропустить `save`).
По умолчанию save выполняется.
Настройка действует до выключения клавиатуры.
Полезно для экспериментов, чтобы не изнашивать флеш.
## Направление анимации
Задаётся `--direction north-south|south-north|east-west|west-east` (байт [11] payload).
Значения сняты для `waterfall` (02/03) и `marquee` (01/00).
Для `flow`, `rotate`, `wind` применяйте те же опции — значения байта уточняются.
Подробности — [PROTOCOL.md](PROTOCOL.md) (раздел «Байт [11] — подрежим»).