Как отключить клавиатуру за исключением некоторых клавиш в 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 подхватывает новый конфиг с задержкой в несколько секунд. Как итог - неудобства в использовании.
Может кто-то в курсе, как решить данную задачу правильно? Заранее спасибо.

21 Авг 2019 в 06:51
180 +1
0
Ответы
1

Можете попробовать следующий способ:

Создайте два файла с расширением .sh, например, disable_keyboard.sh и enable_keyboard.sh.

В disable_keyboard.sh добавьте следующий код для отключения клавиатуры за исключением необходимых клавиш:

#!/bin/bash
xinput float %id
xmodmap -e 'keycode code = ACTION'В enable_keyboard.sh добавьте следующий код для включения клавиатуры:#!/bin/bash
xinput reattach %id 2
xmodmap -e 'keycode code = default_action'

Замените %id на код клавиатуры "AT Translated Set 2 keyboard" и замените code, ACTION и default_action на нужные вам значения.

Сделайте файлы исполняемыми с помощью команды:

chmod +x disable_keyboard.sh
chmod +x enable_keyboard.shТеперь в рантайме вы можете запускать disable_keyboard.sh для отключения клавиатуры и запускать enable_keyboard.sh для включения клавиатуры снова.

Надеюсь, это поможет вам решить вашу проблему. Если у вас есть еще вопросы, не стесняйтесь спрашивать.

20 Апр в 13:12
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 91 696 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир