图片类型(例如image/jpeg
,image/png
等)广泛的ImageMagick和GNOME之眼的支持,让我看到了一组优先EOG的唯一方法就是检查它支持的格式.desktop
,并列出它们的默认应用程序部分mimeapps.list
或维持一个自定义链接使用update-alternatives
,但是某些格式不能被一个应用程序支持,而其他格式则可以。
也许有一种更简单的方法来处理多个应用程序支持的“未解析的” MIME类型的应用程序优先级?
这个想法是,每个GUI应用程序都应提供一个.desktop
文件,该文件描述它将能够处理的MIME类型。
使用xdg-mime query default <MIME type>
,您可以找到特定MIME类型的当前默认应用程序。它返回应用程序ID,该ID在该.desktop
应用程序的文件中指定。
并且,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类型的默认值。用户帐户,脚本以该身份运行。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句