Openbox: отключить всю клавиатуру

Я использую Ubuntu Server (16.04.3 LTS) с X, Openbox и Chromium в киоск-режиме на устройстве с сенсорным экраном. Он запускается как (не-root) пользователь прямо в киоске.

Там нет необходимости для мыши или клавиатуры, поэтому я начинаю X с

startx -- -nocursor

что эффективно отключает мышь. Но пользователь все еще может подключить клавиатуру и делать все ненужные вещи с Chromium. Поэтому я ищу способы отключить всю клавиатуру.

Чтобы поймать и отключить каждую отдельную клавишу и комбинацию клавиш в Openbox rc.xml кажется невыполнимой задачей для меня. Так есть ли какой-нибудь переключатель с помощью startx или Openbox для отключения клавиатуры? (Я пробовал -nokeyboard но это дает ошибку. Также -keyboard null не работает.)

Или, в крайнем случае, есть ли способ отключить клавиатуру (и мышь) при входе пользователя?

1 ответ

xinput это ваш инструмент.

Найти идентификатор вашей клавиатуры с xinput --list, Возможный вывод:

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=11   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
↳ Power Button                              id=6    [slave  keyboard (3)]
↳ Video Bus                                 id=7    [slave  keyboard (3)]
↳ Power Button                              id=8    [slave  keyboard (3)]
↳ HP Webcam                                 id=9    [slave  keyboard (3)]
↳ AT Translated Set 2 keyboard              id=10   [slave  keyboard (3)]
↳ HP WMI hotkeys                            id=12   [slave  keyboard (3)]
↳ HP Wireless hotkeys                       id=13   [slave  keyboard (3)]

Получить идентификатор AT Translated ... keyboard, В этом случае это 10, Отключить ввод с клавиатуры с помощью:

xinput --disable 10

Как однострочник:

xinput --disable $(xinput list | grep "AT Translated"  | cut -f2 | cut -d= -f2)

(Вы можете сделать то же самое с помощью мыши или сенсорной панели, просто используйте соответствующий идентификатор).

PS: Я не уверен, видна ли запись клавиатуры, пока клавиатура не подключена, или появляется дополнительная после подключения. У меня нет аппаратного обеспечения, чтобы проверить это прямо сейчас. Может быть, вы должны создать udev Правило, которое следит за новыми клавиатурами и работает xinput --disable [...],

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