如何设置应用程序的MIME优先级?

如何设置应用程序的MIME优先级?

ImageMagick 和 Eye of GNOME 广泛支持图像类型(例如image/jpegimage/png),因此我认为为 EOG 设置优先级的唯一方法是检查其支持的格式并将.desktop其列出在默认应用程序部分mimeapps.list或维护自定义链接,update-alternatives但某些格式不能被一个应用程序支持,但可以被其他应用程序支持。

也许有一种更简单的方法来处理“未解析的”MIME 类型的应用程序优先级,并受多个应用程序支持?

答案1

这个想法是每个 GUI 应用程序都应该提供一个.desktop文件来描述它将能够处理哪些 MIME 类型。

使用xdg-mime query default <MIME type>,您可以找出特定 MIME 类型的当前默认应用程序。它返回在.desktop该应用程序的文件中指定的应用程序 ID 。

您还xdg-mime default <application id> <MIME type...>可以将特定应用程序设置为一种或多种 MIME 类型的默认应用程序。

通过 MIME 类型设置优先级比通过应用程序设置优先级更有意义:例如,图像浏览器可能能够“打开”一个目录以生成其中所有图像的缩略图视图,因此它将inode/directory列出一个 MIME 类型它。但您通常可能不希望图像浏览器成为打开通用目录的主要工具。

某些实用程序可能适用于所有文件,例如可用于通过蓝牙发送文件的工具。此类实用程序将all/allfiles为其列出伪 MIME 类型。如果您可以轻松地说“让该实用程序对它可以处理的所有内容具有优先级”,而不先验证这些类型是什么,那么如果应用于这样的实用程序,可能会产生灾难性的后果。

如果您确定特定程序的所有 MIME 类型都适合设为主要类型,则可以使用以下命令执行此操作:

#!/bin/sh
APP_ID=$(basename "$1" .desktop)
xdg-mime default $APP_ID $(grep ^MimeType "$1" | cut -d = -f 2- | tr ';' ' ')

例如,如果应用程序桌面文件是/usr/share/applications/org.kde.gwenview.desktop(假设桌面文件名包含应用程序 ID),那么您可以启动此脚本,name-of-script.sh /usr/share/applications/org.kde.gwenview.desktop它将将该应用程序设置为它可以处理的任何 MIME 类型的默认应用程序,在脚本运行的用户帐户。

相关内容