如何使程序仅在 GNOME 中自动启动

如何使程序仅在 GNOME 中自动启动

我使用 GNOME 和 KDE SC。在 GNOME 中,我使用 Docky,但我不将其与 KDE 一起使用。因此,我希望 Docky 仅在我登录 GNOME 而不是 KDE 时启动。在 KDE 中,有一个选项可使程序仅在 KDE 中自动启动。但我在 GNOME 中找不到任何这样的选项。

我怎样才能做到这一点?

提前致谢。

答案1

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

OnlyShowIn=GNOME

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

答案2

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

如果这不起作用,您可以随时将程序放入包装器脚本中,以检查环境变量 $DESKTOP_SESSION 的值。如下所示:

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

希望这能回答你的问题!

答案3

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

除了使用 OnlyShownIn,您还可以使用 NotShownIn。这可以让您只显示一个桌面上的内容,而显示所有其他桌面上的内容。对于此示例,您可以使用以下命令在除 KDE 之外的所有桌面管理器中加载 Docky:

NotShownIn=KDE;

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

这个技巧意味着你必须列出你使用的每个桌面 shell,才能阻止某些程序运行。因此,NotShownIn=Unity如果你只安装了 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 的方式运行。

答案4

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

OnlyShowIn=GNOME;Unity;

相关内容