跳至內容

xdg-utils

出自 Arch Linux 中文维基

xdg-utils 提供了官方工具,用於管理 XDG MIME 應用程序

安裝[編輯 | 編輯原始碼]

安裝 xdg-utils 包。

使用[編輯 | 編輯原始碼]

環境變量[編輯 | 編輯原始碼]

注意:正常運行的桌面環境應該會自動設置這些變量。本節僅在理解 xdg-utils 的工作原理時需要,即用於故障排除。

xdg-utils 嘗試通過調用其提供的專用程序來與您的桌面環境集成,在適用的情況下。當前環境的評估如下[1]

  • 如果設置了標準化的 XDG_CURRENT_DESKTOP 環境變量,並且該值屬於已識別的桌面環境,則使用相應的值。
  • 如果存在任何經典回退或特定環境變量,例如 KDE 的 KDE_FULL_SESSION,則使用相應的值。
  • 如果設置了遺留的 DESKTOP_SESSION 環境變量,並且該值屬於已識別的桌面環境,則使用相應的值。

在此過程中,如果找到任何匹配項,則 DE 變量會被內部覆蓋為檢測到的桌面環境的標準化值。因此,DE 既是一個遺留的環境變量,也是 xdg-utils 的內部狀態變量。例如,如果 XDG_CURRENT_DESKTOPKDExdg-utils 會將 DE 設置為 kde。如果沒有找到匹配項,則會使用任何已存在的 DE 值, 這樣 XDG_CURRENT_DESKTOP=KDE 就等於 XDG_CURRENT_DESKTOP 未設置並且 DE=kde。此實現細節值得注意,因為它導致如果桌面環境已被檢測到,預設的 DE 會被忽略

xdg-utils 識別的環境變量值如下:

桌面環境 XDG_CURRENT_DESKTOP DE DESKTOP_SESSION
X-Generic1 generic
Cinnamon Cinnamon, X-Cinnamon cinnamon
Deepin Deepin, DEEPIN, deepin1 deepin
Enlightenment ENLIGHTENMENT1 enlightenment
GNOME GNOME2 gnome gnome
GNOME Flashback GNOME-Flashback, GNOME-Flashback:GNOME2 gnome gnome
KDE Plasma KDE kde
LXDE LXDE lxde LXDE
LXQt LXQt lxqt
MATE MATE mate mate
Xfce XFCE xfce xfce, xfce4, Xfce Session
  1. 這不是一個已在 freedesktop.org 上註冊的環境。
  2. GNOME 變體,包括 GNOME Classic 模式,都被 xdg-utils 視為相同的。

請注意,這僅僅是 xdg-utils 提供的腳本能夠檢測的列表。腳本仍會在以下條件下執行通用的、與環境無關的操作:

  • 請求了通用例程,使用 XDG_CURRENT_DESKTOP=X-GenericDE=generic
  • 環境檢測失敗。所有相關的環境變量都無法識別或未設置,而經典回退也沒有揭示任何信息。
  • 執行了特定環境的操作,但失敗了,例如由於缺少程序。

xdg-mime[編輯 | 編輯原始碼]

xdg-mime(1) 是一個用於直接查詢和修改默認 MIME 應用程序的腳本。它在其他腳本中使用,例如 xdg-open,並且還是一個有用的故障排除工具。

確定文件的 MIME 類型:

$ xdg-mime query filetype photo.jpeg
image/jpeg

確定 MIME 類型的默認應用程序:

$ xdg-mime query default image/jpeg
gimp.desktop

更改 MIME 類型的默認應用程序:

$ xdg-mime default feh.desktop image/jpeg

將文件管理器設置為默認文件管理器(例如 -Thunar):

$ xdg-mime default thunar.desktop inode/directory

調試 MIME 類型的默認應用程序:

$ env XDG_UTILS_DEBUG_LEVEL=10  xdg-mime query default text/html
Checking /home/user/.config/mimeapps.list
Checking /home/user/.local/share/applications/defaults.list and /home/user/.local/share/applications/mimeinfo.cache
Checking /usr/local/share/applications/defaults.list and /usr/local/share/applications/mimeinfo.cache
Checking /usr/share/applications/defaults.list and /usr/share/applications/mimeinfo.cache
qutebrowser.desktop

當需要確定文件的 MIME 類型時,xdg-mime 會嘗試使用適合桌面環境的程序:

桌面環境 程序
Cinnamon gio glib2
GNOME
GNOME Flashback
LXDE
MATE
Xfce
Deepin
Enlightenment
LXQt
KDE Plasma kmimetypefinder kde-cli-tools

在通用情況下,xdg-mime 將:

xdg-open[編輯 | 編輯原始碼]

xdg-open(1) 是一個資源打開器,被許多應用程序使用,遵循 XDG MIME 應用程序標準,並儘可能與系統的桌面環境集成。

如果檢測到桌面環境,將調用其提供的處理程序 [2]:

桌面環境 程序
Cinnamon gio glib2
GNOME
GNOME Flashback
MATE
Deepin dde-open deepin-api
Enlightenment enlightenment_open enlightenment
KDE Plasma kde-open1 kde-cli-tools
LXDE pcmanfm pcmanfm
LXQt
Xfce exo-open2 exo
  1. 如果 KDE_SESSION_VERSION 未設置,則會使用 kfmclient 來自 konqueror。不過,KDE Plasma 應該始終設置此變量。
  2. 還會嘗試使用來自 glib2gio

在通用情況下,xdg-open 將:

提示:要查看 xdg-open 將使用哪個後端,請設置 XDG_UTILS_DEBUG_LEVEL=3

由於 xdg-mime 依賴於 perl-file-mimeinfo 包來實現 XDG MIME 應用程序標準,如果您沒有使用桌面環境,應該安裝 perl-file-mimeinfo,或考慮使用其他資源打開器

xdg-settings[編輯 | 編輯原始碼]

請參見 xdg-settings(1)

設置所有 Web MIME 類型使用單個應用程序的快捷方式:

$ xdg-settings set default-web-browser firefox.desktop

設置 URL 方案的默認應用程序的快捷方式:

$ xdg-settings set default-url-scheme-handler irc xchat.desktop

提示與技巧[編輯 | 編輯原始碼]

URL 方案處理程序[編輯 | 編輯原始碼]

要設置 URL 方案的默認應用程序,您可能還需要更改 x-scheme-handler/* MIME 類型的默認應用程序:

$ xdg-mime default firefox.desktop x-scheme-handler/https x-scheme-handler/http