我有一台配备西班牙 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
这里有两个问题。
- 该脚本在前台运行时运行良好,但在后台运行时则会出现如下问题:
setsid kb-disabler-daemon.sh >/dev/null 2>&1 < /dev/null &
然后,当外部键盘断开连接时,无法再次启用主键盘。我做错了什么?
- 有没有更简单的方法可以做到这一点?也许有一个实用程序应用程序或某种配置可以做到这一点?