如何在登录时运行针对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配置文件夹中,因为我不再触摸它了。