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

Команда apply

Применяет все настройки из одного YAML-файла. Секции названы так же, как команды katana.py, а ключи внутри секций — как аргументы этих команд без --.

./katana.py apply ~/my-katana.yaml
./katana.py apply katana.yaml.example

Для команды нужен PyYAML.

Порядок применения

Секции применяются всегда в одном порядке, независимо от их расположения в файле.

  1. remap — таблица переназначений, save.
  2. paint — раскраска и режим 0x80, save.
  3. mode — финальный режим подсветки, save.
  4. raw — произвольный payload.
  5. macro — все слоты одним блобом, save.
  6. remap и paint или mode — повторно, со save.

Секция mode пропускается с предупреждением, если в профиле есть paint: иначе режим перекрыл бы раскраску.

Повторная отправка remap и mode нужна потому, что запись макросов сбивает эти области в оперативной памяти.

Сохранение

У каждой области прошивки свой save. apply управляет сохранением сам, поэтому ключ save в секциях не поддерживается и отклоняется как неизвестный.

Секция macro

Все слоты пишутся одним блобом, пропуски между номерами становятся пустыми слотами.

macro:
  0:
    tokens: ["+lctrl", "a@50", "-lctrl"]
  1:
    xml: raw-data/katana-v1/test_macro1.xml

Секция remap

remap:
  key:
    caps: macro0
    menu: meta+e
  # clear: true

Ключи и действия те же, что у remap --key.

Секция paint

paint:
  all: black
  key:
    esc: "ff0000"
  wasd: dodgerblue
  row1: "202020"
  brightness: 15

Доступны все ключи команды paint: all, key, wasd, numpad, alpha, punct, digits, arrows, row1…row6, black, keep, brightness.

Секция mode

mode:
  mode: static
  color: red
  brightness: 15
  # speed: 5
  # spectrum: false
  # direction: down

mode принимает номер от 1 до 19, алиас, off и default. Значения direction зависят от режима.

Секция raw

raw: "80 00 ... aa 55"

Значение — hex-строка или список строк.

Валидация

  • неизвестные секции и ключи отклоняются с указанием опечатки;
  • у слота макроса должен быть ровно один из ключей tokens или xml;
  • значения проверяются теми же парсерами, что и в командной строке.

Команды keys, scan, reset и version в профиле не нужны: это диагностика, а не состояние.

Совместимость

Формат профиля общий с приложением Katana Studio, но имена двух секций пока расходятся: apply ждёт mode и macro, а приложение пишет lighting и macros. Такой профиль apply отклонит как неизвестный; расхождение записано в todo.md репозитория katana.py.

Описание приложения — в разделе Katana Studio.