Есть ли в Python способ программно изменить состояния CAPS LOCK/NUM LOCK/SCROLL LOCK на устройстве hidraw

Это тот же вопрос, что и в разделе " Изменение блокировок клавиатуры в Python" или " Как изменить статус блокировки прописных букв без нажатия клавиши".

Но есть разница!!

Я не хочу менять индикаторы на / dev / console или / dev / tty, но на устройстве с человеческим интерфейсом, которое подключено через USB и распознается как /dev/hidraw0.

Чтобы сделать это еще сложнее, это используется на Raspberry Pi.

Метод, предложенный в других вопросах, не работает.

1 ответ

Используя библиотеку в библиотеке Якуба Уилка по адресу http://jwilk.net/software/python-keyboardleds, это довольно просто:

lk = LedKit('/dev/input/event1')
lk.num_lock.reset()
lk.caps_lock.reset()

Хитрость заключается в том, чтобы определить, какое устройство ввода ваша клавиатура. Чтобы понять это, вы посмотрите на /proc/bus/input/devices. (Спасибо Якубу за это решение)

Я проверил это на двух клавиатурах:

  1. Клавиатура PS1 подключена через адаптер PS1 к USB с набором микросхем Holtek (04d9:1400)
  2. Дешевая цифровая клавиатура, также с чипсетом Holtek (04d9:1603), HT82M99E.

Результат: это работает для первых, но не для последних.

Возможно, кто-то знает, является ли это проблемой с драйвером или проблемой самого оборудования (не отвечает на запросы от драйвера).

Другие вопросы по тегам