Gnome Shell:会话开始后运行Shell脚本吗?


9

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

它确实值得,但我无法解决。

我有一个可以在我的KDE Laptop安装上运行了很长时间的shell脚本:

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中均不允许这种配置。(TBH,只有所有操作系统的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
.desktop文件可执行吗?
muru

我不知道.desktop文件应该具有可执行权限。:)
Mikhail Krutov 2014年

3
是的,本地(用户)启动器必须是+x~/.config/autostart在Nautilus中打开并双击script.desktop,将提示您“标记为可信”(相当于chmod +x)。
don_crissti 2014年

Answers:


7

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

$ gnome-session-properties

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

好,易于。请享用。

更新:正如下面的注释中don_crissti(感谢)所指出的那样,gnome-tweak-tool自Gnome 3.12起,gnome-session-properties启动程序的功能已迁移到该工具(btw是一个很棒的工具,但由于它集中了太多的功能,所以有点混乱)。因此,对于3.12及更高版本,这是新的外观。

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


值得注意的是,gnome-session-properties二进制文件已不再存在于最新的Gnome 3版本中(从3.12IIRC中删除)。其功能已包含在中gnome-tweak-tool
don_crissti 2014年

有趣的是...我正在使用Fedora 20(与Gnome 3.10一起使用),它仍然具有它。不幸的是,Gnome团队不断削弱(或塑造)该软件以违背用户的品味。至少他们将功能保留在gnome-tweak-tool中,所以这里是新的地方...
Marcelo 2014年

gnome-tweak-tools不允许您在特定位置添加脚本。您需要与桌面文件一起跳。
RichieHH

但是,gnome-session-properties至少在ubuntu gnome 17.04中仍然有效。只需从外壳启动它。
蒂姆·理查森

3
@Marcelo,您好,我(Ubuntu 17.04)在gnome-tweak-tool中找不到任何UI元素,该元素可让我输入命令行脚本甚至浏览它们。也许Ubuntu上的Gnome有点落后,即使它大多数是3.24。这可能就是为什么gnome-session-properties仍然可用的原因。我是gnome的新手,是从xfce迁移的。据我所知,在启动脚本方面,gnome-tweak-tool不具备gnome-session-properties的功能,这看起来有多难。
蒂姆·理查森

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是可执行的,也就是说,如果有电子X ecutable许可位来设定。

OnlyShowIn=或许不是自动启动功能显著,但我没有它没有测试它。您可以像这样列出多个桌面环境:OnlyShowIn=GNOME;LXDE;Unity;查询XDG_CURRENT_DESKTOP环境变量以验证正确的值。

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


这对我有用chmod +x myscript.desktop /path/to/myscript.sh,但是我必须按照评论中的建议使用 。否则journalctl --user将给出错误Could not parse desktop file myscript.desktop or it references a not found TryExec binary
sergio

@sergio,当然,/path/to/myscript.sh您要执行的文件必须是可执行文件。但myscript.desktop并不需要具有可执行权限。
maxschlepzig
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.