118 lines
9.5 KiB
Markdown
118 lines
9.5 KiB
Markdown
# Настройка клавиатуры GANSS ARDOR Katana из Linux
|
|
|
|
Настраивайте RGB-подсветку и клавиши клавиатуры **GANSS ARDOR_Katana** (продаётся также как *ARDOR Gaming Katana*) прямо из Linux — без виртуальной машины с Windows и фирменной утилиты.
|
|
|
|
Что умеет утилита `katana.py`:
|
|
|
|
* 19 режимов подсветки (дыхание, волна, водопад, бегущая строка и другие), выключение подсветки;
|
|
* яркость (1–15) и скорость анимации (2–15), направление анимации в некоторых режимах;
|
|
* покраска каждой из 104 клавиш в свой цвет;
|
|
* переназначение любой клавиши на кнопку мыши, функцию текстового редактора (копировать/вставить/...), горячую клавишу (Ctrl+C, Win+E, ...), мультимедиа-действие (громкость, плеер, ...) или макрос;
|
|
* макросы: последовательности нажатий хранятся в самой прошивке, есть импорт/экспорт XML фирменной утилиты;
|
|
* чтение текущего состояния подсветки.
|
|
|
|
Подсветка и клавиши управляются HID feature-репортами через штатный драйвер `usbhid` — **печатать можно прямо во время настройки**, драйвер не отцепляется, root не нужен (после разовой установки udev-правила).
|
|
|
|
macOS поддерживается экспериментально (транспорт IOKit, см. [docs/install.md](docs/install.md) → «Установка на macOS»).
|
|
|
|
| Характеристика | Значение |
|
|
| -------------- | ------------------------------------------------------ |
|
|
| Устройство | GANSS ARDOR_Katana |
|
|
| USB ID | `0C45:8006` (Sonix SN32) |
|
|
| Канал | feature-репорты `rid=0`, интерфейс 0, payload 64 байта |
|
|
|
|
## Быстрый старт
|
|
|
|
```
|
|
# 1. установка (подробности — docs/install.md)
|
|
python3 -m venv .venv && .venv/bin/pip install pyusb
|
|
sudo cp 70-ganss-katana.rules /etc/udev/rules.d/ && sudo udevadm trigger
|
|
|
|
# 2. подсветка (подробности — docs/color-modes.md)
|
|
./katana.py mode breathing --color red # дыхание красным
|
|
./katana.py paint --black --wasd dodgerblue # чёрная база, WASD голубым
|
|
./katana.py keys # посмотреть, что сейчас светится
|
|
|
|
# 3. переназначение клавиш (подробности — docs/cli/remap.md)
|
|
./katana.py remap --key caps=copy # Caps → копировать (Ctrl+C)
|
|
./katana.py remap --key menu=meta+e # Menu → горячая клавиша Win+E
|
|
|
|
# 4. макросы (подробности — docs/cli/macro.md)
|
|
./katana.py macro set 0 -- a@126 s@101 -a@41 # макрос 0: нажать A, S, отпустить A
|
|
./katana.py remap --key caps=macro0 # привязать макрос к Caps
|
|
|
|
# 5. всё сразу из YAML-конфига (подробности — docs/cli/apply.md)
|
|
./katana.py apply ~/my-katana.yaml # макросы + переназначение + подсветка
|
|
```
|
|
|
|
Если что-то не работает — загляните в [docs/install.md](docs/install.md) (разделы «Проверка устройства» и решение проблем) и в справочник команд [docs/cli/README.md](docs/cli/README.md).
|
|
|
|
## Документация
|
|
|
|
Документы разложены по темам в `docs/`, каждый можно читать независимо.
|
|
|
|
| Документ | Тема |
|
|
| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ |
|
|
| [docs/install.md](docs/install.md) | Установка: зависимости, venv, udev-правило, проверка устройства, решение проблем. |
|
|
| [docs/color-modes.md](docs/color-modes.md) | 19 режимов подсветки: таблица, примеры `mode`, аргументы, направление анимации. |
|
|
| [docs/cli/README.md](docs/cli/README.md) | Справочник `katana.py`: именованные цвета, имена клавиш, `paint`/`scan`/`raw`/`remap`/`macro`/`keys`/`reset`, решение проблем. |
|
|
| [docs/cli/remap.md](docs/cli/remap.md) | Переназначение клавиш: мышь, редактор, горячие клавиши, мультимедиа, макросы. |
|
|
| [docs/cli/macro.md](docs/cli/macro.md) | Макросы: запись, режимы повтора, XML вендора. |
|
|
| [docs/cli/apply.md](docs/cli/apply.md) | `apply` — YAML-конфиг: все настройки одним файлом. |
|
|
| [docs/extending.md](docs/extending.md) | Свои скрипты и анимации: `katana.py` как библиотека, API `Katana`, ограничения скорости и флеша, готовые приёмы. |
|
|
| [docs/protocol.md](docs/protocol.md) | Протокол для реверсеров: транспорт, транзакции, форматы payload'ов, карта клавиш, статус реверса, грабли, планы. |
|
|
| [docs/scripts.md](docs/scripts.md) | Состав репозитория и вспомогательные скрипты: `keymap.py`, `analyze_pcap.py`, `misc/probe.py`. |
|
|
| [docs/raw-data.md](docs/raw-data.md) | Дампы USB-трафика вендорской утилиты: как снимались, как конвертировать, состав `raw-data/katana-v1/`. |
|
|
|
|
## Лицензия
|
|
|
|
```
|
|
Copyright (C) 2026 Антон Аксенов (Anthony Axenov)
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
```
|
|
|
|
ПО распространяется под лицензией [GNU GPL v3](LICENSE).
|
|
|
|
Производное ПО обязано быть с открытым исходным кодом.
|
|
|
|
## Предостережение
|
|
|
|
Это исследовательский проект, который я давно хотел воплотить.
|
|
У меня есть такая клавиатура, но в Linux нет возможности настраивать её.
|
|
|
|
**Я не могу гарантировать и не гарантирую:**
|
|
* работу скриптов на другом ПК с такой же клавиатурой;
|
|
* достоверность сведений о протоколе обмена данными;
|
|
* совместимость с другими клавиатурами Ardor.
|
|
|
|
**ВСЕ ОПЕРАЦИИ С ВАШИМ ОБОРУДОВАНИЕМ - НА ВАШ СТРАХ И РИСК.**
|
|
|
|
## Использованный стек
|
|
|
|
* AI-модель `koda-pro` через [KodaCode](https://kodacode.ru)
|
|
* python 3.10 + pyusb + pyyaml
|
|
* Linux (hidraw-ioctl) и macOS (IOKit через ctypes, экспериментально)
|
|
* VirtualBox + Windows 11:
|
|
* штатная утилита конфигурации клавиатуры
|
|
* WireShark с установленным `usbpcap`
|
|
|
|
## TODO
|
|
|
|
* переназначение на другие типы действий (Fn-слой) и чтение таблицы переназначений — мышиные действия, шорткаты редактора, горячие клавиши, мультимедиа и макросы реализованы ([docs/cli/remap.md](docs/cli/remap.md), [docs/cli/macro.md](docs/cli/macro.md))
|
|
* макросы: чтение содержимого из прошивки, коллизия кодов громкости и букв B/C, стрелки Up/Down, остальные медиа-коды ([docs/protocol.md](docs/protocol.md) → «Макросы»)
|
|
* пресеты/анимации поверх per-key API — методика описана в [docs/extending.md](docs/extending.md).
|
|
|
|
Cм. [docs/protocol.md](docs/protocol.md) → «Следующие шаги»
|