Mime-Types
列出預設為給定 .desktop 文件的 mimetypes
我可以列出可能由
.desktop
文件處理的 mimetypes,如下所示:$ grep 'MimeType' /usr/share/applications/eog.desktop | tr ';' '\n' MimeType=image/bmp image/gif image/jpeg image/jpg image/pjpeg image/png image/tiff ...
我可以顯示給定 mimetype 的預設應用程序是什麼
gvfs-mime
:$ gvfs-mime --query image/tiff Default application for 'image/tiff': eog.desktop Registered applications: eog.desktop gimp.desktop ... Recommended applications: eog.desktop gimp.desktop ...
或與
gio
:$ gio mime image/tiff Default application for “image/tiff”: eog.desktop Registered applications: eog.desktop gimp.desktop ... Recommended applications: eog.desktop gimp.desktop ...
但是我如何列出
eog.desktop
實際處理的 mimetypes 呢?
我不知道有什麼工具可以做到這一點。
你可以自己寫。這是一個非常簡單的 python3 腳本,可以在任何使用GIO的系統(例如 Gnome 3)上執行:
#!/usr/bin/env python from sys import argv from gi.repository import Gio app = argv[1] glauncher = Gio.DesktopAppInfo.new_from_filename(app) for mtype in Gio.AppInfo.get_supported_types(glauncher): ghandler = Gio.AppInfo.get_default_for_type(mtype, False) launcher = glauncher.get_executable() handler = ghandler.get_executable() if launcher == handler: print (mtype)
該腳本採用一個參數:桌面文件的完整路徑
myscript /usr/share/applications/eog.desktop
該腳本獲取您的應用程序支持的 mime 類型列表,然後,對於列表中的每個項目,它會獲取預設處理程序,如果它是同一個應用程序,它會列印 mime 類型。
我想您也可以嘗試 parse
mimeapps.list
,mimeinfo.cache
或者defaults.list
(後者已被棄用,請參閱freedesktop.org 規範以獲取可能的文件名和位置)並從那裡提取相關資訊,但您的結果可能會有所不同,因為在某些發行版中,其中一些文件失去了.