У меня ноутбук Ubuntu 20 LTS с испанской QWERTY-клавиатурой. Для удобства поиска обратных кавычек и других специальных символов во время кодирования я приобрел дополнительную внешнюю USB-клавиатуру.
Я хотел бы сделать так, чтобы при подключении внешней клавиатуры основная клавиатура отключалась (чтобы я мог положить ее сверху, не нажимая клавиши и не вызывая нежелательный ввод), а при отключении внешней клавиатуры основная клавиатура снова включалась.
Я придумал скрипт, который запускается как демон и опрашивает, подключена ли внешняя клавиатура.
#!/bin/bash
while true; do
if [ $(xinput -list | grep "SEM USB Keyboard" | wc -l) -gt 0 ]; then
echo "External keyboard found"
xinput --disable "AT Translated Set 2 keyboard"
echo "Main keyboard disabled"
else
echo "External keyboard NOT found"
xinput --enable "AT Translated Set 2 keyboard"
echo "Main keyboard enabled"
fi
echo "Waiting..."
sleep 5
done
Здесь два вопроса.
- Скрипт отлично работает при запуске на переднем плане, но если запустить его в фоновом режиме, вот так:
setsid kb-disabler-daemon.sh >/dev/null 2>&1 < /dev/null &
Затем он снова не может включить основную клавиатуру, когда внешняя отключается. Что я делаю не так?
- Есть ли более простой способ сделать это? Может быть, служебное приложение или своего рода конфигурация, которая это сделает?