Tengo una laptop Ubuntu 20 LTS con teclado QWERTY en español. Para encontrar fácilmente comillas invertidas y otros caracteres especiales durante la codificación, compré un teclado USB externo adicional.
Me gustaría hacerlo de modo que cuando el teclado externo esté conectado, el principal esté desactivado (para poder colocarlo encima sin que presionar las teclas resulte en una entrada no deseada), y para que cuando el teclado externo esté desconectado, el principal se habilita nuevamente.
Se me ocurrió un script para ejecutarlo como un demonio y sondear para ver si el teclado externo está conectado.
#!/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
Dos preguntas aquí.
- El script funciona perfectamente cuando se ejecuta en primer plano, pero cuando se ejecuta en segundo plano es así:
setsid kb-disabler-daemon.sh >/dev/null 2>&1 < /dev/null &
Luego, no vuelve a habilitar el teclado principal cuando se desconecta el externo. ¿Qué estoy haciendo mal?
- ¿Existe una forma más sencilla de hacer esto? ¿Quizás una aplicación de utilidad o algún tipo de configuración que haga esto?