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

基于gui的鼠标加速控制不足以驯服我的鼠标,所以我通过运行来纠正这个:

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

从终端手动运行时,此脚本具有所需的效果(每次)。 但是我还没有找到在每次登录时运行它的方法。 尝试通过rc.local执行它或使用系统设置中的脚本启动选项都没有结果。

你对我还能尝试什么有什么建议吗? 我应该直接修改X11配置文件吗? 与此主题相关的几个post建议不要这样做。

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

为此:

  • 发出sudo crontab -e以输入root的crontab的cron作业
  • 在新行中输入@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的引用:

  • CronHowTo (Ubuntu社区维基)
  • 类似的情况
  • StackOverflow答案

也没有运气crontab ,我能够在每次登录时启动我的脚本。 然而,这是一个特定于KDE的解决方案,所以我不确定它对AskUbuntu是否有效。

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

fix_mouse_accel.sh

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

确保该文件是可执行的:

 chmod 755 fix_mouse_accel.sh 

然后转到系统设置 > 启动和关机 。 单击“ 添加脚本”并指向您的脚本。 解除符号链接框,除非你想在某处保留本地副本; 我个人更喜欢将文件“消失”到KDE配置文件夹中,因为我不再触摸它了。