Xfce

如何註冊 xfce4-mime-settings 中不可用的新 mimetype,以便在 XFCE4 下使用 xdg-open 辨識它們?

  • October 16, 2020

我正在嘗試在 XFCE4 下註冊新的 mimetype。特別是,我想註冊該協議zoommtg,以便我可以從網路瀏覽器 Chrome 中的連結啟動 Zoom 會議。Chrome 將xdg-open在此處啟動,然後啟動exo-open. exo-open似乎忽略了類型的 mimetype 註冊

xdg-mime default ZoomLauncher.desktop x-scheme-handler/zoommtg

也手動添加

[Default Applications]
x-scheme-handler/zoommtg=ZoomLauncher.desktop

要麼通過辨識協議$HOME/.config/mimeapps.list要麼$HOME/.local/share/applications/mimeapps.list不導致。xdg-open``exo-open``zoommtg

如何在 XFCE4 下註冊新的 mimetype?

筆記:

xfce4-mime-settings不提供添加新 mimetype 的選項。

Chrome 瀏覽器不再提供選項(在此處測試:)Google Chrome V. 86手動定義命令來處理協議類型(chrome://settings/handlers僅提供允許網站處理協議的選項(例如 mailto:到帶有 webmail 的站點))。

問題中幾乎指出了一個解決方案:阻礙xdg-open選擇exo-open。蠻力的方法是複製/usr/bin/xdg-open/usr/local/bin(/usr/local/bin是較早的,PATH除非PATH已被修改) 並修補它以open_generic代替使用exo_open(與XFCE4-specific不同exo-openopen_generic確實尊重xdgmime 類型)

--- /usr/bin/xdg-open   2020-03-31 03:20:01.000000000 +0200
+++ /usr/local/bin/xdg-open 2020-07-18 10:12:20.133132390 +0200
@@ -691,15 +691,11 @@

open_xfce()
{
-    if exo-open --help 2>/dev/null 1>&2; then
-        exo-open "$1"
-    elif gio help open 2>/dev/null 1>&2; then
-        gio open "$1"
-    elif gvfs-open --help 2>/dev/null 1>&2; then
-        gvfs-open "$1"
-    else
+    #if gvfs-open --help 2>/dev/null 1>&2; then
+    #    gvfs-open "$1"
+    #else
        open_generic "$1"
-    fi
+    #fi

    if [ $? -eq 0 ]; then
        exit_success

引用自:https://unix.stackexchange.com/questions/614757