Gnome Shell:会话启动后运行 shell 脚本?

Gnome Shell:会话启动后运行 shell 脚本?

我是 KDE 的长期用户,从未见过 GNOME,因为可能是 Mandrake Linux 10 之类的东西。昨天我在 Youtube 上看了一眼 GNOME Shell,觉得它值得一看。

它实际上是值得的,但我一时想不通。

我有一个 shell 脚本,多年来一直在我的 KDE 笔记本电脑上运行:

synclient |grep -E 'TapT|RightB|EdgeScr'|awk '{print $1}'|while read item; do synclient $item=0; done
synclient VertScrollDelta=-111
synclient HorizScrollDelta=1
synclient RightEdge=999999999
synclient TopEdge=0
synclient CircularScrolling=0
synclient BottomEdge=999999999
synclient RightButtonAreaLeft=9999999
synclient ClickFinger3=2
synclient HorizScrollDelta=0
synclient HorizTwoFingerScroll=0 

这会禁用右键单击、所有点击、反转滚动方向、禁用水平滚动等。触摸板菜单和 KDE 以及 gnome 都不允许这种配置。 (说实话,所有操作系统中只有 Mac 具有 gui 来设置触摸板,就像这样:))。

我不明白,在 gnome shell 会话启动后如何运行它?我已经尝试过这个但没有结果:

[1] % cat /home/neko/.config/autostart/script.desktop 
[Desktop Entry]
Name="Auto stuff"
GenericName="Auto startup stuff"
Comment="Synclient mostly"
Exec=/home/neko/bin/auto_stuff.sh
Terminal=false
Type=Application
X-Gnome-Autostart=true

请问还有其他建议吗?谢谢。

答案1

您可以使用 gnome-session-properties 程序。只需从 shell 提示符(gnome-terminal)执行它:

$ gnome-session-properties

这将打开一个 GUI,您可以在其中配置(即添加、编辑、删除、启用和禁用)启动程序。

好,易于。享受。

更新:正如 don_crissti(谢谢)在下面的评论中指出的,gnome-tweak-tool自 Gnome 3.12 以来,gnome-session-properties 启动程序功能已迁移到(顺便说一句,这是一个很棒的工具,但有点混乱,因为它集中了太多功能)。因此,对于 3.12 及更高版本,这是一个新的地方。

OBS:顺便说一句,使用这种方法,您不需要创建文件.desktop,您只需指定您创建的脚本的命令行/home/neko/bin/auto_stuff.sh(或您想要的任何其他脚本或命令)。

答案2

.desktop文件中案例意义重大。以下模板在带有 GNOME shell 的 Fedora 27 下工作(即该Exec=值在会话启动期间执行):

[Desktop Entry]
Encoding=UTF-8
Exec=/path/to/myscript arg1
Name=myscript
Comment=script some stuff
Terminal=false
OnlyShowIn=GNOME
Type=Application
StartupNotify=false
X-GNOME-Autostart-enabled=true

(存储为$HOME/.config/autostart/myscript.desktop

主要区别:您X-Gnome-Autostart=在示例中使用了密钥。

仔细检查您的脚本是否/path/to/myscript可执行,即是否具有 eX设置可执行权限位。

OnlyShowIn=对于自动启动功能来说可能并不重要,但我还没有在没有它的情况下测试它。您可以像这样列出多个桌面环境:OnlyShowIn=GNOME;LXDE;Unity;查阅XDG_CURRENT_DESKTOP环境变量以验证正确的值。

如果您想检查脚本是否打印任何错误消息,您可以检查journalctl --user,即会话日志。

相关内容