什麼是 gio-launch-desktop 以及為什麼 Thunderbird 使用它在預設瀏覽器中打開連結
在我的 Thunderbird 首選項中,我將 chromium 設置為預設瀏覽器:
network.protocol-handler.app.https /usr/bin/chromium network.protocol-handler.app.http /usr/bin/chromium
但是,當我點擊電子郵件中的連結時,不是在 chromium 中打開 URL,而是
Thunderbird
啟動了一個程序/usr/lib/x86_64-linux-gnu/glib-2.0/gio-launch-desktop
。打開 URL 是什麼
gio-launch-desktop
,它的作用和用處是什麼?是否可以告訴 Thunderbird 直接啟動 chromium ?
我正在使用
RBAC
安全控制,整個級聯使得創建簡單規則變得困難。這種腳本呼叫其他腳本的情況,在無休止的級聯中呼叫其他腳本(與 相同xdg-open
)似乎不必要地過於復雜。
gio-launch-desktop
是 GNOME 的 GLib 低級核心庫的一部分。它由 Glib 文件gdesktopappinfo.c
中的函式啟動g_desktop_app_info_launch_uris_with_spawn
,當系統接收到啟動應用程序的請求時呼叫該函式,例如來自 Thunderbird 中的函式。GIO_LAUNCHED_DESKTOP_FILE_PID
它在執行應用程序之前設置環境變數,如GNOME/glib commit 742efe6中所述。似乎 GLib 維護人員也認為使用
gio-launch-desktop
過於復雜。如GNOME/glib commit 8f7faac所示,在2020 年 2 月 14 日之後的 GLib 版本中,gio-launch-desktop
不再存在,已被使用 of 取代。sh
由於 Thunderbird 顯然會導致底層系統啟動 Chromium 而不是直接啟動它(很可能是因為它不知道預設瀏覽器是什麼瀏覽器),因此很明顯,如果不深入研究和重寫,就不可能告訴它這樣做它的原始碼。