我想让我的触摸板在连接外部鼠标时自动禁用,并在没有时启用。我曾尝试使用,touchpad-indicator
但如果计算机在连接鼠标的情况下进入睡眠状态并在断开鼠标的情况下唤醒,则失败。
我试图将以下脚本变成一个守护进程来解决这个问题,但我无法让它工作:
#!/bin/bash
declare -i TID
declare -i MID
TID=`xinput list | grep -Eo 'Touchpad\s*id\=[0-9]{1,2}' | grep -Eo '[0-9]{1,2}'`
MID=`xinput list | grep -Eo 'Mouse\s*id\=[0-9]{1,2}' | grep -Eo '[0-9]{1,2}'`
if [ $MID -gt 0 ]
then
xinput disable $TID
else
xinput enable $TID
fi
Run Code Online (Sandbox Code Playgroud)
我试过 start-stop-daemon -S -x ./myscript.sh -b
和 setsid ./myscript.sh >/dev/null 2>&1 < /dev/null &
和nohup ./myscript 0<&- &>/dev/null &
连./myscript.sh &
所有这些都返回一些 4 位数字,我想这应该是启动进程的 PID,但是当我启动 lxtask 时,即使我勾选了“查看所有进程”,也没有带有此 PID 的进程。而且,当然,它不起作用!
为了根据连接的 USB 鼠标切换笔记本触摸板的启用/禁用,我使用了 touchpad-indicator,它运行一个守护程序来监视连接的设备并采取适当的措施。当我让笔记本进入睡眠状态然后拔下鼠标时,在唤醒时,触摸板被禁用,所以我必须连接 - 断开鼠标才能启用它!我在这个论坛上搜索过这个问题,但都找到了解决方案(在/etc/pm/sleep.d
或 中添加脚本/usr/lib/pm-utils/sleep.d
)没有用!我提出了一个问题来解决它,但毕竟,即使使用 udev 的规则而不是触摸板指示器重新工作,问题仍然存在!
我要说明的是:如果触摸板在系统级禁用(即连日志记录之前禁用,脚本将在于rc.local
,其中,但是,我试过了,没有工作),把脚本在/ etc / PM和 usr/lib/pm-utils可能工作。
但是它在会话级别或 udev 适用的任何级别被禁用。你能告诉我把输入密码时会运行的脚本放在哪里吗?不是登录,而是在唤醒后输入密码。
更新:@terdon 你不太明白。我什至没有启用 xscreensaver,我怀疑它是否已安装。你看,因为我的帐户有密码,如果我按“注销”或“更改用户”或睡眠模式,之后我将不得不输入我的密码,这与 xscreensaver 或我不喜欢的任何屏幕保护程序无关有他们。
在问这个问题之前,我尝试了你的建议,但没有成功。
更新 2:好的,经过一些调查,我可以看出这是 Lubuntu 特定的问题。我的“成为朋友” lightdm现在的工作(我猜应用在一定程度上其他比的udev)和udev。任何对 lightdm 有任何经验的人都会受到赞赏。
更新 3:多亏了Ubuntu Wiki,我(正确地?)找到了在哪里放置我的脚本调用。因此,我增加session-setup-script=/home/n76/tptoggle.sh
至/etc/lightdm/lightdm.conf
现在的情况是一样的开始,除了lightdm实际上是试图把触摸板上的用户会话开始时
问题并没有消失,但我觉得我已经接近了,这只是给 lightdm 正确的特权。
请建议如何做。