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 [...]
,