Как отключить клавиатуру за исключением некоторых клавиш в Ubuntu?
Всем привет.
Возникла следующая проблема: необходимо в Ubuntu 16.04 в рантайме уметь отключать клавиатуру (за исключением нескольких отдельных клавиш) и включать обратно.
Пробовал два способа:
1)
- Отключаем клавиатуру: $ xinput float %id (где %id - это код клавиатуры "AT Translated Set 2 keyboard" из $ xinput list)
- Биндим необходимые кнопки: $ xmodmap -e 'keycode code = ACTION'
Но судя по всему первой командой клавиатура отключается наглухо, поэтому последующие не имеют никакого эффекта. Т.ч. по факту имеем: клавиатура отключается, но часть кнопок включить обратно не получается.
2) пробовал создать два конфига для xmodmap: один с дефолтными биндингами кнопок, во втором для всех кнопок, кроме необходимых, выставлен NoSymbol. В целом работает, но т.к. есть необходимость в рантайме переключаться между этими конфигами, то напрягает то, что xmodmap подхватывает новый конфиг с задержкой в несколько секунд. Как итог - неудобства в использовании.
Может кто-то в курсе, как решить данную задачу правильно? Заранее спасибо.
По первому варианту. Оберните выключение всей клавы и включение в нужных кнопок в один скрипт.
А вот как вы планируете потом вернуть все назад не знаю.