Kubuntu 11.10(上网本版)
我妻子的上网本有以下问题:当盖子合上时,它会不时激活触摸板 - 它会做出小动作和点击。笔记本电脑设置为在插入交流适配器时不进入睡眠状态,因此每当盖子合上时,它都会继续自行执行操作。
暂停电影并进入睡眠状态时特别烦人,因为过一会儿它会点击播放器窗口并继续播放电影,吓着周围的每个人。
我没有找到在盖子放下时禁用触摸板的任何选项,但也许有某种事件我可以挂接并手动禁用/重新启用它?
答案1
因为没有人能告诉我如何做我想做的事情,所以我想出了以下解决方案:
禁用触摸板/鼠标
$ 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 -e s/^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 会话。
答案2
您可以做的是在关闭盖子之前让计算机进入睡眠状态。这样,按下电源按钮将恢复睡眠,并且关闭盖子不会影响触摸板。
或者,您可以打开终端(ctrl+alt+T)并输入
sudo rmmod psmouse
它允许使用 USB 鼠标、无线鼠标或其他鼠标,但会关闭触摸板。
此外,您还可以选择安装触摸板指示器,它提供了一种简单的方法来停用触摸板
sudo add-apt-repository ppa:atareao/atareao
sudo apt-get update
sudo apt-get install touchpad-indicator
它将位于“应用程序”>“配件”下,或者,根据您的用户界面,它将是音量按钮旁边的一个小的“类似触摸板”的按钮
答案3
我也非常想要这样的功能,但从现在起,我已经养成了在关闭盖子之前使用快捷键(这里是 Fn + F7,取决于笔记本电脑的品牌和型号)禁用触摸板的习惯。当然,这根本不能解决问题,但这是一个很大的开始。如果你的笔记本电脑中没有预设的按键绑定,我很确定有办法手动绑定一个。