从 sleep.d 中的脚本执行 xinput

从 sleep.d 中的脚本执行 xinput

我的鼠标太快了,所以我使用 xinput 命令降低了它的速度:

xinput set-prop $id "Device Accel Constant Deceleration" 2.5

我输入命令~/.profile以便它在启动时执行。在启动时,它总是有效的。

我的问题是当我的计算机从待机状态恢复时,设置似乎被重置。并非总是如此,也许有一半的时间。

我尝试将命令放入脚本中/etc/pm/sleep.d/,并且该命令已执行但由于某种原因不起作用。

有什么想法吗?答案这个问题建议 xinput 命令应该放在一个.desktop文件中:这会改变什么吗?

答案1

终于让它工作了!看来xinputsleep.d脚本运行需要一些调整。这是我做的。希望这对某些人有用。

所以我有一个名为的脚本,40mouse_slow我将其放入/etc/pm/sleep.d40用于排序。在简历上,低数字开始最后的。用户脚本应该使用0049确保脚本具有执行权限。以下是脚本:

#!/bin/sh
case "$1" in
    resume|thaw)
        /home/yannick/scripts/mouse_slow.sh &
    ;;
    *)
        # Nothing.
    ;;
esac

/home/yannick/scripts/mouse_slow.sh它只是说应该启动脚本在背景中当计算机恢复时。我尝试不在后台启动它,但这会破坏恢复(例如,网络不工作)。

这里是/home/yannick/scripts/mouse_slow.sh。还要确保它具有执行权限:

#!/bin/sh
export DISPLAY=:0.0
id=`su yannick -c "xinput" | grep 'PID:400a' | cut -c58-60`
su yannick -c "xinput set-prop $id 'Device Accel Constant Deceleration' 2.5"

第二行只是查找鼠标的 ID。至于其他两行,它们说明了我发现xinput在从脚本调用它时必须完成的两件事sleep.d

  • DISPLAY必须设置并导出
  • 执行的用户xinput必须是运行X的用户,而不是root。

相关内容