Поддержка MacOS (проверено в Tahoe)
This commit is contained in:
+25
-1
@@ -7,7 +7,7 @@ description: Установка, udev-правило и решение проб
|
||||
## Зависимости
|
||||
|
||||
Нужен Python 3.10+.
|
||||
Зависимости: `pyusb` (для `reset`) и `pyyaml` (для `apply`); сам транспорт работает на голых `fcntl`-ioctl'ах к `/dev/hidraw*`:
|
||||
Зависимости: `pyusb` (для `reset`) и `pyyaml` (для `apply`); сам транспорт работает на голых `fcntl`-ioctl'ах к `/dev/hidraw*` (на Linux) или через hidapi (на macOS, см. ниже):
|
||||
|
||||
```
|
||||
python3 -m venv .venv
|
||||
@@ -54,3 +54,27 @@ ID `0c45:8006` принадлежит чипу Sonix SN32, который про
|
||||
|
||||
Переподключите клавиатуру.
|
||||
Если пользователь не в группе `plugdev` — `sudo usermod -aG plugdev $USER` и перелогин.
|
||||
|
||||
## Установка на macOS
|
||||
|
||||
Экспериментальная поддержка: транспорт работает через IOKit напрямую (ctypes),
|
||||
сторонние HID-библиотеки не нужны, udev-правило не нужно.
|
||||
|
||||
```
|
||||
python3 -m venv .venv
|
||||
.venv/bin/pip install pyusb pyyaml
|
||||
```
|
||||
|
||||
macOS выдаёт доступ к HID-клавиатурам вручную:
|
||||
**Системные настройки → Конфиденциальность и безопасность → «Input Monitoring»** —
|
||||
добавьте приложение, из которого запускается `katana.py` (Terminal, iTerm2, VS Code),
|
||||
включите его и **перезапустите приложение** (разрешение подхватывается только новым процессом).
|
||||
Без разрешения `katana.py` выведет подсказку об этом.
|
||||
|
||||
Важно: утилиты, перехватывающие клавиатуры (Karabiner-Elements и подобные),
|
||||
открывают их в монопольном режиме — пока Karabiner работает, открыть устройство нельзя
|
||||
(ошибка `kIOReturnExclusiveAccess`). Выйдите из Karabiner на время настройки
|
||||
или исключите ARDOR_Katana в его настройках (вкладка Devices).
|
||||
Проверить, кто мешает, можно диагностикой `misc/iokit_probe.py` (см. [scripts.md](scripts.md)).
|
||||
|
||||
Транспорт выбирается автоматически: на macOS — IOKit, на Linux — hidraw-ioctl.
|
||||
|
||||
Reference in New Issue
Block a user