Desktop Application Autostart Specification(桌面应用程序自动启动规范)
ssk-wh Lv4

原文链接: https://specifications.freedesktop.org/autostart-spec/autostart-spec-0.5.html

介绍

该文档(草稿)定义了一种在桌面环境启动期间和安装可移动介质后自动启动应用程序的方法。

本规范中的一些文件位置是根据 “桌面基本目录规范”指定的。

启动期间自动启动应用程序

通过将应用程序的 .desktop 文件放置在自动启动目录之一中,应用程序将在用户登录后在用户桌面环境启动期间自动启动。

自动启动目录

自动启动目录是 $XDG_CONFIG_DIRS/autostart,根据 “桌面基本目录规范”中的 “引用此规范”部分定义。

如果相同的文件名位于多个自动启动目录下,则应仅使用最重要(优先级最高)目录下的文件。

示例:如果未设置 $XDG_CONFIG_HOME,则用户主目录中的自动启动目录为 ~/.config/autostart/

示例:如果未设置 $XDG_CONFIG_DIRS,则系统范围的自动启动目录为 /etc/xdg/autostart/

示例:如果未设置 $XDG_CONFIG_HOME 和 $XDG_CONFIG_DIRS,并且存在 /etc/xdg/autostart/foo.desktop 和 ~/.config/autostart/foo.desktop 这两个文件,则只有文件 ~/.config/autostart/foo。 desktop 将被使用,因为 ~/.config/autostart/ 比 /etc/xdg/autostart/ 目录优先级更高

应用程序 .desktop 文件

应用程序 .desktop 文件必须具有“桌面条目规范” 中定义的格式。所有键都应按定义解释,但有以下例外情况,以考虑到自动启动目录中的 .desktop 文件未显示在菜单中。

Hidden Key

当 .desktop 文件的 Hidden 键设置为 true 时,必须忽略 .desktop 文件。当多个目录中存在多个同名的 .desktop 文件时,则必须仅考虑最重要的(优先级最高的) .desktop 文件中的Hidden值:如果将其设置为 true,则必须忽略其他目录中所有同名的 .desktop 文件。

OnlyShowIn and NotShowIn Keys

OnlyShowIn 条目可能包含一个字符串列表,用于标识必须自动启动此应用程序的桌面环境,所有其他桌面环境不得自动启动此应用程序。

NotShowIn 条目可能包含一个字符串列表,用于标识不得自动启动此应用程序的桌面环境,所有其他桌面环境必须自动启动此应用程序。

这些键中只有一个(OnlyShowIn 或 NotShowIn)可能出现在单个 .desktop 文件中。

TryExec Key

如果 TryExec 的值与已安装的可执行程序不匹配,则不得自动启动具有非空 TryExec 字段的 .desktop 文件。TryExec 字段的值可以是绝对路径或不带任何路径组件的可执行文件的名称。如果指定的可执行文件的名称没有任何路径组件,则搜索 $PATH 环境以查找匹配的可执行程序。

实施说明

如果应用程序通过在系统范围的自动启动目录中安装 .desktop 文件来自动启动,则个人用户可以通过在其个人自动启动目录中(优先级更高)放置一个同名的 .desktop 文件来禁用该应用程序的自动启动,该目录中 . desktop 文件需要包含 Hidden=true。

安装后自动启动应用程序

当桌面环境安装新介质时,该介质可能包含一份建议启动应用程序的自动启动文件或建议打开位于介质上的特定文件的自动打开文件。

自动启动文件

安装新媒体时,应按优先顺序检查媒体的根目录中是否有以下自动启动文件:.autorun、autorun、autorun.sh 仅应考虑存在的第一个文件。

桌面环境可以根据用户、系统管理员或供应商设置的策略完全忽略自动启动文件。

桌面环境必须在自动启动应用程序之前提示用户进行确认。

当检测到自动启动文件并且用户已确认其执行时,必须将当前工作目录 (CWD) 设置为介质的根目录来执行自动启动文件。

自动打开文件

当安装了新媒体并且

a) 媒体不包含自动启动文件

b) 忽略自动启动文件的策略生效时,

应按优先顺序检查媒体的根目录中是否有以下自动打开文件:.autoopen , autoopen。只应考虑存在的第一个文件。

桌面环境可以根据用户、系统管理员或供应商设置的策略完全忽略 Autoopen 文件。

Autoopen 文件必须包含指向介质上包含的不可执行文件的单个相对路径。如果文件包含换行符或回车符,则必须忽略换行符或回车符本身以及后面的所有字符。

相对路径不得包含引用父目录 (../) 的路径组件

相对路径不得指向可执行文件。

桌面环境必须验证相对路径指向实际位于媒体上的文件,考虑到任何符号或其他链接,并且必须忽略指向媒体本身之外的文件位置的任何相对路径。

如果相对路径指向可执行文件,则桌面环境不得执行该文件。

桌面环境必须在打开文件之前提示用户进行确认。

当检测到 Autoopen 文件并且用户确认应该打开 Autoopen 文件中指示的文件时,必须在用户通常首选的应用程序中(默认应用程序)打开 Autoopen 文件中指示的文件,除非用户另有指示。

 Comments