启用/禁用触摸板的shell脚本

发布时间 2023-12-22 21:17:12作者: fmcdr

在笔记本上使用xfce时,不能正确识别厂商设定的 fn 功能键,禁用触摸板的功能失效了。在 KDE 或其它“重量级”桌面环境中基本都能正确识别,而且可以设置在插入外接鼠标时禁用触摸板,但是 xfce 太简陋了,有些功能是缺失的。比较坑的是,它可以正确识别调节背光和音量的功能键,独独缺了禁用触摸板的快捷键支持。不得以,只好自己搞定了。

其实解决办法也很简单,xinput 实用程序可以轻易地控制触摸设备,唯一需要做的只是把它脚本化。

#!/bin/sh

dev_id=`xinput list | \
               grep 'Touch[pP]ad' | \
               sed -E 's/^.*id=([0-9]+).*$/\1/g'`

dev_state=`xinput --list-props $dev_id | \
                  grep 'Device Enabled' | \
                  sed -E 's/^.*:.*([01]).*$/\1/g'`

if [ $dev_state -eq 1 ]; then
    xinput disable $dev_id
elif [ $dev_state -eq 0 ]; then
    xinput enable $dev_id
fi

在 xfce 菜单中,依次点击 设置 -> 键盘 -> 应用程序快捷键 -> 添加

“命令”选择磁盘上保存的脚本(要赋予可执行权限)

接下来我把它绑定到 fn + f9 上面,刚好占用了原来的快捷键。功能完美恢复。

其实之前我是用 Python 实现的,主要是我不想去碰 shell 脚本。最近一段时间比较闲,逼己看了一些 shell 的语法,发现在调用外部程序上,正经的编程语言确实不如 shell 方便,随手就能用的管道和正则表达式。用正统的编程语言确实都能做,但是总要有些脚手架代码。我最反感Java的一点,就是在做正经事之前,先要写一大堆无意义的脚手架代码。