盖子关闭时禁用触摸板
Kubuntu 11.10(上网本版)
我妻子的上网本存在以下问题:当盖子关闭时,它会不时激活触摸板 – 它会进行小动作和点击。 当AC适配器插入时,笔记本电脑设置为不进入睡眠状态,所以无论何时盖子关闭,它都会自行处理。
暂停电影和睡觉时特别烦人,因为过了一段时间它会点击播放器窗口并恢复电影,吓跑周围的人。
我没有找到任何选项来在盖子关闭时禁用触摸板,但也许有某种事件我可以挂钩并手动禁用/重新启用它?
既然没有人能告诉我如何做到我想要的,这就是我提出的解决方案:
禁用触摸板/鼠标
$ xinput --list ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ FSPPS/2 Sentelic FingerSensingPad id=12 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Video Bus id=7 [slave keyboard (3)] ↳ Sleep Button id=8 [slave keyboard (3)] ↳ Power Button id=9 [slave keyboard (3)] ↳ USB2.0 UVC PC Camera id=10 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=11 [slave keyboard (3)] ↳ MSI Laptop hotkeys id=13 [slave keyboard (3)]
我们可以看到,我的触摸板是id=12
触摸板。 要禁用它,我需要运行:
$ xinput set-int-prop 12 "Device Enabled" 8 0
并再次启用它:
$ xinput set-int-prop 12 "Device Enabled" 8 1
获得盖子状态
首先,我可以从这个文件中获取系统盖子的状态:
$ cat /proc/acpi/button/lid/LID0/state state: open
当我关上盖子时,状态就会closed
。
现在要将状态作为变量,我可以检查一个漂亮的grep
命令的退出状态:
$ grep -q closed /proc/acpi/button/lid/*/state $ echo $? 1
因此,要根据盖子状态启用或禁用触摸板,我需要做的就是:
$ grep -q closed /proc/acpi/button/lid/*/state $ xinput set-int-prop 12 "Device Enabled" 8 $?
挂钩ACPI盖子事件
要在每次关闭或打开盖子时执行上述命令,我创建了文件/etc/acpi/local/lid.sh.post
其中包含以下内容:
export XAUTHORITY=`ls -1 /home/*/.Xauthority | head -n 1` export DISPLAY=":`ls -1 /tmp/.X11-unix/ | sed -es/^X//g | head -n 1`" grep -q closed /proc/acpi/button/lid/*/state xinput set-int-prop 12 "Device Enabled" 8 $?
需要设置XAUHTORITY
和DISPLAY
以允许root
(运行acpid
进程的用户)访问用户的X会话。
您可以做的是在关闭盖子之前让计算机进入睡眠状态。 这样,按下电源按钮将恢复睡眠,盖子关闭不会影响触摸板。
或者,您可以打开终端(ctrl + alt + T)并键入
sudo rmmod psmouse
它允许usb鼠标,无线或其他,但关闭触摸板。
此外,您还可以选择安装触摸板指示器,这样可以轻松地停用触摸板
sudo add-apt-repository ppa:atareao/atareao sudo apt-get update sudo apt-get install touchpad-indicator
它将在Application> Accesory OR下,根据你的用户界面,它将是一个小的“类似触摸板”按钮旁边的音量按钮
我真的很喜欢这样的function,但是我从现在开始习惯禁用触摸板,然后用快捷键关闭盖子(Fn + F7在这里,取决于笔记本电脑的品牌和型号)。 当然,这根本不能解决问题,但这是一个重要的开始。 如果你的笔记本电脑中没有键盘预设,我很确定有一种方法可以手动绑定一个。