如何在有外接键盘时禁用/启用键盘

如何在有外接键盘时禁用/启用键盘

我有一台配备西班牙 QWERTY 键盘的 Ubuntu 20 LTS 笔记本电脑。为了在编码时方便查找反引号和其他特殊字符,我购买了一个额外的外部 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

这里有两个问题。

  1. 该脚本在前台运行时运行良好,但在后台运行时则会出现如下问题:
setsid kb-disabler-daemon.sh >/dev/null 2>&1 < /dev/null &

然后,当外部键盘断开连接时,无法再次启用主键盘。我做错了什么?

  1. 有没有更简单的方法可以做到这一点?也许有一个实用程序应用程序或某种配置可以做到这一点?

相关内容