默认应用程序
Zim使用其他应用程序打开文件和附件。通常,点击链接将启动适用于您系统的相应应用程序。右键菜单中的"打开方式...("Open With...")"选项(在链接上点击右键)提供了替代应用程序选择。
如果您想更改默认应用程序,或者想在"打开方式...("Open With...")"菜单中添加更多应用程序,弹出菜单底部有一个"自定义...("Customize...")"菜单项。这个选项会打开一个对话框,允许更改默认应用程序并添加新应用程序。
配置应用程序对话框
"配置应用程序("Configure Applications")"对话框有一个下拉菜单用于选择默认应用程序。Zim已知的应用程序会显示在这个下拉菜单中。此外,还有一个特殊的菜单项"系统默认("System Default")",表示使用操作系统的默认应用程序。
请注意,可能存在Zim不知道的已安装应用程序。将默认值设置为"系统默认("System Default")"可能会导致使用正确的应用程序,即使它没有显示在列表中。
要向列表(和"打开方式...("Open With...")"菜单)添加应用程序,点击"添加应用程序("Add Application")"按钮,这将打开"添加新应用程序("Add New Application")"对话框。
添加应用程序对话框
"添加应用程序("Add Application")"对话框允许为特定文件类型添加新应用程序。
名称(Name)是应用程序名称,命令(Command)是要执行的命令。通常,这只是可执行文件或要执行的脚本的名称。命令也可以使用以下特殊代码:
- %f 要打开的单个文件路径
- %F 要打开的文件路径列表
- %u 要打开的单个URL
- %U 要打开的URL列表
- %c 应用程序名称
如果启用了"设为默认应用程序("Make default application")",新应用程序将成为新的默认应用。这意味着它不会显示在菜单本身中。如果未设置此项,新应用程序将只添加到菜单中。
命令的引用应遵循"XDG桌面条目"规范。简而言之:
- 参数可以用双引号完全引用
- 包含保留字符的参数必须引用 - 这些字符包括:'"', "'", "
", "
" "\", " ", "\t", "\n", ">", "<", "~", "|", "&", ";", "$", "*", "?", "#", "(" 和 ")" - 在引用的参数中,引号和其他保留字符应使用反斜杠转义,例如'\"'
- 在引用的参数中,字面反斜杠写为双反斜杠'\'
Zim对未引用参数中的保留字符持宽容态度,并且不处理未引用参数中的转义序列。但是,为了与其他应用程序的互操作性,应遵循上述规则。
扩展为单个参数的特殊代码也可以出现在(引用的)参数内部。这种行为在规范中未明确定义。请注意,这种替换不会进行空白转义和其他转义。
技术细节
Zim使用XDG桌面条目规范来存储和检索应用程序信息。每种MIME类型的默认应用程序存储在XDG_CONFIG_HOME
文件夹中的文件中,通常是~/.config/mimeapps.list
,符合"mime-apps-spec"。在同一个文件中,您还可以添加或删除(黑名单)应用程序,以便在特定MIME类型的"打开方式"菜单中显示。
要填充"打开方式...("Open With...")"菜单,首先读取mimeapps.list
。此外,Zim会在XDG_DATA_HOME/share/applications/
和XDG_DATA_DIRS/share/applications/
文件夹中搜索"mimeinfo.cache
"文件,该文件列出了每种MIME类型的应用程序。应用程序通过.desktop
文件配置,这些文件应该与缓存文件位于同一文件夹中。
当用户添加新应用程序时,Zim会在XDG_DATA_HOME文件夹中创建一个新的.desktop
文件并更新缓存。下次它列出特定类型的应用程序时,此条目将显示出来。对于新的默认应用程序,我们还会更新defaults.list
,但桌面条目设置了"NoDisplay
",因此它不会显示在菜单中。
Zim使用XDG MimeInfo规范或mimetypes
模块来确定文件类型。作为URL和URI方案的扩展,使用"x-scheme-handler/
"MIME类型。因此,"x-scheme-handler/http
"用于配置Web浏览器,"x-scheme-handler/mailto
"用于电子邮件客户端,等等。
如果找不到默认应用程序,Zim会使用特定于操作系统的备用方案。对于文件和电子邮件,这意味着在Windows上调用"os.startfile()
",在OSX上使用"open
"命令,以及在Linux和其他Unix系统上使用"xdg-open
"和"xdg-email
"命令。对于URL,"webbrowser
"模块用作通用备用方案。当找不到"xdg-open
"或"xdg-email
"命令时,"webbrowser
"模块也用于文件和电子邮件。(webbrowser
模块不仅检查特定浏览器,还尝试处理文件的系统API。)
因此,在Windows上,Zim使用XDG系统存储应用程序首选项,尽管这不是Windows上的原生系统。备用方案是一个API(os.startfile()
),它使用Windows注册表中已知的应用程序。结果,Zim将仅使用Windows上默认安装的应用程序,但可以通过安装桌面条目文件来覆盖这一点。
如果您想清理自定义应用程序条目,请查看~/.local/share/applications
文件夹(或等效的XDG_DATA_HOME
文件夹)。
有关各种XDG文件路径的概述,请参阅Config Files #配置文件。
XDG桌面条目规范和XDG MimeInfo规范可在以下网址找到:https://www.freedesktop.org/wiki/Specifications