Окно приложения¶
Общее устройство¶
Штатного меню Electron в окне нет, вместе с ним отключены и его горячие клавиши: Alt, Ctrl + R, Ctrl + Shift + I и другие.
Вверху расположена панель профиля:
| Элемент | Действие |
|---|---|
| «Открыть» | Загрузить YAML-профиль |
| «Сохранить» | Записать изменения в текущий файл |
| «Сохранить как» | Записать в новый файл |
| «Применить на клавиатуру» | Отправить весь профиль в порядке apply |
| Индикатор подключения | Показывает, видна ли клавиатура |
Точка ● рядом с именем файла означает несохранённые изменения.
Последний профиль хранится автоматически в ~/.config/katana-studio/last-profile.json и открывается при следующем запуске.
Все вкладки редактируют один профиль — тот же YAML, что описан в разделе Команда apply.
Кнопки записи на вкладках отправляют на клавиатуру только свою секцию.
«Применить на клавиатуру» в панели отправляет весь профиль в порядке apply с записью во флеш.
Флажки «Записать в устройство» означают запись во флеш-память: такие настройки переживают выключение клавиатуры. По умолчанию все флажки выключены.
Если в профиле есть и раскраска, и секция mode, при применении побеждает раскраска, а mode пропускается с предупреждением в журнале.
Внизу окна находится тестовая зона: поле ввода, в котором можно печатать, чтобы проверить переназначения и реактивную подсветку.
Справа показывается код последней нажатой клавиши (KeyboardEvent.code).
Нажатия в тестовой зоне видит и предпросмотр на вкладке «Подсветка», а вкладки «Раскраска» и «Действия» по ним выбирают клавиши.
Обозначения клавиатуры¶
Подписи на визуальной клавиатуре моноширинные, служебные клавиши записаны капсом: ESC, TAB, CAPS, SHIFT, CTRL, WIN, ALT, FN, APP, INS, DEL, END, NUM.
| Сокращение | Клавиша |
|---|---|
PS |
Print Screen |
SL |
Scroll Lock |
PB |
Pause/Break |
HM |
Home |
PU |
Page Up |
PD |
Page Down |
Пояснения спрятаны в значки i и всплывающие подсказки кнопок: наведите на них мышь.
Рядом с полем цвета есть ссылка «имена цветов ↗» на справочник CSS-имён цветов (MDN), она открывается в браузере.
Подписи правятся в словаре LABELS генератора misc/make_layout.py: там исправлены опечатки вендора, цифровой ряд записан как 1! … =+, а тильда — как `~ё.
Вкладка «Об устройстве»¶
Стартовая вкладка: производитель, модель и ревизия из USB-дескриптора, HID-интерфейсы с их путями (/dev/hidrawN на Linux, hidapi-путь на macOS) и статус подключения.
Если клавиатура найдена, но доступа нет, здесь же показана подсказка: на Linux — команды установки udev-правила, на macOS — совет закрыть программы, занявшие устройство. Статус проверяется каждые 3 секунды, перезапускать приложение после подключения клавиатуры не нужно.
Вкладка «Подсветка»¶
Слева на всю высоту окна — список из 19 режимов и off, справа — настройки выбранного режима.
Над настройками расположен предпросмотр на визуальной клавиатуре. Если клавиатура подключена, предпросмотр показывает живые кадры с неё, около 15 кадров в секунду и без записи во флеш: видно то, что светится сейчас, включая реакцию на нажатия настоящих клавиш.
Чтобы увидеть выбранные настройки на клавиатуре, нажмите «Применить». Переключатель «Кадры с клавиатуры» под предпросмотром выключает поток. Без клавиатуры или с выключенным потоком показана приблизительная имитация.
В имитации реактивные режимы (keypress, fade, horizontal, vertical, splash) откликаются на щелчки по клавишам и на нажатия в тестовой зоне.
Формулы имитации подобраны по записям живых кадров, а неподвижный спектр static совпадает с клавиатурой точно.
Случайные цвета спектра берутся из палитры, снятой с клавиатуры, порядок огонька marquee и узор flower — тоже по записям.
Конкретные случайные цвета и фазы вспышек прошивки имитация не повторяет.
Реактивные режимы сняты только на скорости 2, на других скоростях их волны масштабируются так же, как у остальных режимов.
Цвет выбирается из палитры восьми контрастных цветов, пипеткой или вводом RRGGBB и имени CSS.
Второй ряд свотчей — свои цвета: «+ текущий» добавляет выбранный цвет, Alt + щелчок убирает его.
| Элемент | Поведение |
|---|---|
| «Спектр» | Есть у всех режимов, кроме flower и spectrum |
| «Яркость» | 1–15, только у режимов с яркостью |
| «Скорость» | 2–15, только у режимов со скоростью |
| «Направление» | Только у режимов с направлением |
| «Применить» | Включает выбранный режим |
| «Записать в устройство» | Определяет, переживёт ли режим выключение клавиатуры |
При смене режима переключатель спектра встаёт в вендорское положение: выключен у static и star, включён у остальных.
Пока спектр включён или режим рисует спектр, палитра скрыта: цвет прошивка всё равно не учитывает.
У спектральных waterfall и rotate кнопки направления неактивны.
Вкладка «Раскраска»¶
Щелчок по клавише выбирает её, Ctrl + щелчок добавляет к выбору, протяжка мышью выделяет рамкой.
Щелчок мимо клавиш снимает выбор, а нажатие настоящей клавиши выбирает её и снимает выбор повторным нажатием.
Выбранные клавиши обведены пунктиром, светящиеся окружены лёгким ореолом своего цвета, погашенные показаны обычным фоном.
Памятка по выбору и число закрашенных клавиш — в значке i в правом верхнем углу клавиатуры.
Палитра показывает цвет выбранных клавиш: если у них один цвет, подсвечен его свотч, а в поле ввода стоит CSS-имя или rrggbb.
У разных цветов палитра пуста, а пока клавиши не выбраны — недоступна.
| Элемент | Действие |
|---|---|
| «Покрасить выбранные» | Задать цвет выбранным клавишам |
| «Погасить выбранные» | Погасить выбранные клавиши |
| «Погасить все» | Погасить всю клавиатуру |
| «Выбрать клавиши этого цвета» | Добавить в выбор все клавиши того же цвета |
| Группы и ряды | Чекбоксы: wasd, numpad, alpha, row1… |
| «Прочитать с клавиатуры» | Загрузить текущий живой кадр |
| «Применить» | Показать всю раскраску вкладки без записи во флеш |
| «Записать в устройство» | Записать раскраску и яркость показа во флеш |
Отметка чекбокса выбирает весь набор, снятая — убирает его из выбора, частичный выбор показан промежуточной отметкой.
Ползунок «Яркость» меняет яркость только выбранных светящихся клавиш: их цвет темнеет или светлеет, оттенок сохраняется.
Общую яркость показа (ключ brightness секции paint) вкладка не меняет.
Живой предпросмотр включён всегда: каждая правка сразу отправляется на клавиатуру без записи во флеш, но не чаще одного кадра в секунду.
Вкладка «Действия»¶
Выберите одну клавишу и назначьте ей действие: кнопку мыши, функцию редактора, мультимедиа, горячую клавишу, макрос или default.
Клавишу можно выбрать щелчком или нажатием на настоящей клавиатуре; повторное нажатие снимает выбор.
Кнопка «Назначить» записывает выбранное действие в профиль.
Таблица назначений внизу показывает все переназначения профиля, на клавиатуре они отмечены значками.
«Записать на клавиатуру» перезаписывает всю таблицу переназначений, как вендорская утилита: клавиши, которых нет в профиле, возвращаются к своему действию. «Сбросить все» записывает пустую таблицу.
Подробнее о действиях — в разделе Команда remap.
Вкладка «Макросы»¶
Слоты от 0 до 99 слева, справа — редактор событий выбранного слота: нажать, отпустить или клик с задержкой.
| Элемент | Действие |
|---|---|
| Перетаскивание событий | Меняет порядок |
| «Записать нажатия» | Ловит нажатия в окне вместе с паузами |
Ctrl + Esc |
Останавливает запись |
| «Импорт XML» / «Экспорт XML» | Совместимы с вендорской утилитой |
| «Записать все макросы» | Отправляет все слоты одним блобом |
Индикатор ёмкости показывает, сколько места в прошивке занимают все слоты.
Запись макросов сбивает переназначения и режим подсветки в оперативной памяти, поэтому приложение сразу перепосылает секции «Действия» и «Подсветка» профиля.
Подробнее — в разделе Команда macro.
Вкладка «Сервис»¶
- «USB reset» — то же, что
katana.py reset; - «Полный сброс» — вендорский payload по умолчанию, всегда с записью во флеш;
- перебор режимов с кнопкой остановки, каждый режим записывается во флеш;
- поле произвольного payload, текст попадает в секцию
rawпрофиля; - журнал всех USB-операций, предупреждений и ошибок.
Вкладка «О программе»¶
Название и версия приложения, автор, лицензия GNU GPL v3, ссылка на исходный код, версии Electron, Chromium и Node.js. Там же ссылки на документацию и предостережение о работе с оборудованием.
Сведения приходят через window.katana.appInfo(): название, версия, автор, лицензия и адрес берутся из package.json, версии среды — из process.versions.
Внешние ссылки открываются в системном браузере через shell.openExternal, новые окна Electron не создаются.