盖子关闭时禁用触摸板

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 $? 

需要设置XAUHTORITYDISPLAY以允许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在这里,取决于笔记本电脑的品牌和型号)。 当然,这根本不能解决问题,但这是一个重要的开始。 如果你的笔记本电脑中没有键盘预设,我很确定有一种方法可以手动绑定一个。