如何在登录时运行针对 X11 设置的 sh 脚本?

如何在登录时运行针对 X11 设置的 sh 脚本?

基于 GUI 的鼠标加速控制不足以驯服我的鼠标,因此我通过运行以下命令来纠正此问题:

xinput set-prop 10 "Device Accel Constant Deceleration" 2.9

从终端手动运行此脚本时(每次)都会产生预期的效果。但是我还没有找到在每次登录时运行它的方法。尝试通过 rc.local 执行它或使用系统设置中的脚本启动选项都无济于事。

您有什么建议我还可以尝试吗?我应该直接修改 X11 配置文件吗?与此主题相关的几篇帖子建议不要这样做。

答案1

一种方法是使用带有reboot指令的 cron 作业,该作业将在每次系统启动(和重启)时运行。

要做到这一点:

  • 在 root 的 crontab 中输入sudo crontab -ecron 任务
  • 在新行中输入@reboot xinput set-prop 10 "Device Accel Constant Deceleration" 2.9 2>&1 >> /var/log/my_xinput.log

如果作业没有运行,您可能需要将完整路径指向 xinput 命令。

通过说出命令的完整路径(xinput),我的意思是,cron 需要知道在哪里找到需要运行的可执行脚本。这可以通过以下方式完成:

  • 将 cron 指向需要执行的完整路径,例如我有一个位于 的脚本~/bin/myscript.sh;为了确保 cron 知道在哪里找到我的脚本,我必须输入它的完整路径到 cronjob,即/home/username/bin/myscript.sh
  • 或者通过在 crontab 文件中设置环境变量并我的 cronjob,例如:

SHELL=/bin/sh指定要使用的 shell, PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/home/username/bin注意最后一项,等等

对于您的问题,请尝试:

/usr/bin/xinput set-prop 10 "Device Accel Constant Deceleration" 2.9

最后,您可能需要查看有关 Cron 的参考资料:

答案2

没有任何运气定时任务我也能够让脚本在每次登录时启动。但是,这是 KDE 特定的解决方案,因此我不确定它是否适用于 AskUbuntu。

无论如何,这是我的解决方案:

修复鼠标加速.sh

#!/bin/bash

/usr/bin/xinput set-prop 10 "Device Accel Constant Deceleration" 2.9

确保文件是可执行的:

chmod 755 fix_mouse_accel.sh

然后转到系统设置>启动和关闭。 点击添加脚本并指向您的脚本。除非您想在某处保留本地副本,否则请取消选中符号链接框;就我个人而言,我更喜欢让文件“消失”到 KDE 配置文件夹中,因为我不会再碰它了。

相关内容