如何仅在GNOME中创建程序自动启动

我同时使用GNOME和KDE SC。 在GNOME中,我使用Docky,但我不使用它与KDE。 所以,我希望Docky只在我登录GNOME而不是KDE时启动。 在KDE中,可以选择仅在KDE中创建程序自动启动。 但是我在GNOME中找不到任何这样的选项。

我怎样才能做到这一点?

提前致谢。

您可以在~/.config/autostart编辑启动对象并将其添加到结尾:

 OnlyShowIn=GNOME 

这是一个命名不佳的选项,但它会导致KDE无法启动应用程序。

我没有安装kde来validation这一点,但我相信在这里添加应用程序:系统 – >首选项 – >会话 – >启动程序是gnome特定的。

如果这不起作用,您始终可以将程序放在一个包装器脚本中,该脚本检查环境变量$ DESKTOP_SESSION的值。 像这样的东西:

 #!/bin/bash if [ $DESKTOP_SESSION == "GNOME" ];then myApplication fi 

希望这能回答你的问题!

如果找不到启动程序的条目,您也可以在/etc/xdg/autostart找到它。 我知道他们最终使用OnlyShownIn设置自动从KDE开始修复Nautilus。 更改此目录中的文件是系统范围的,因此您可能希望将有问题的应用程序的文件复制到~/.config/autostart/

您也可以使用NotShownIn代替使用OnlyShownIn。 这可以让您不用于某个桌面,而是为所有其他桌面显示它。 对于此示例,您可以使用以下命令在除KDE之外的所有桌面管理器中加载Docky:

NotShownIn=KDE;

如果您不希望它在任何桌面上启动,您可以将其更改为OnlyShownIn=; .desktop文件中的行应该以分号结尾。 分号还用于分隔同时具有多个值的设置的值。

这个技巧意味着你必须列出你用来保持某些东西不运行的每个桌面shell。 因此,如果您只安装了Unity,那么使用NotShownIn=Unity会很好,但如果您以后安装了KDE或Gnome,它仍会启动。

如果用户自动启动文件夹中的桌面文件未停止启动应用程序,则需要处理xdg目录中的桌面文件。 为此,我将制作该文件的备份副本。 而不是使用bak扩展名复制它,或者稍后可能被覆盖的标准物,而不是为此示例的虚拟应用程序badapp执行此操作。

sudo cp /etc/xdg/autostart/badapp.desktop /etc/xdg/autostart/badapp.desktop.stop

然后,您可以编辑原始桌面文件。 如果出现问题并且您最终在文本引导中启动,则可以将文件重命名为原始名称。

sudo cp /etc/xdg/autostart/badapp.desktop.stop /etc/xdg/autostart/badapp.desktop

此外,KDE的默认用户自动启动文件夹是~/.kde/Autostart/因为KDE以KDE方式执行操作。

System > Preferences > Startup Applications这是KDE启动管理器的Gnome替代品。

编辑自动启动文件的另一种方法是使用如下行:

 OnlyShowIn=GNOME;Unity;