Перейти к содержанию

Окно приложения

Общее устройство

Штатного меню 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 не создаются.