什么是 gio-launch-desktop 以及为什么 Thunderbird 使用它在默认浏览器中打开链接

什么是 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

gio-launch-desktop打开 URL 时它的作用和用处是什么?

是否可以告诉 Thunderbird 直接启动 chromium ?

我正在使用RBAC安全控制,整个级联使得创建简单的规则变得困难。这种脚本调用其他脚本、无限级联调用其他脚本的情况(与 相同xdg-open)似乎不必要地过于复杂。

答案1

gio-launch-desktop是 GNOME 的 GLib 低级核心库的一部分。它gdesktopappinfo.c由 Glib 文件中的函数启动g_desktop_app_info_launch_uris_with_spawn,当系统收到启动应用程序的请求时(例如来自 Thunderbird 中的函数),该函数显然会被调用。它GIO_LAUNCHED_DESKTOP_FILE_PID在执行应用程序之前设置环境变量,如中所述GNOME/glib 提交 742efe6

看来 GLib 维护者gio-launch-desktop也认为使用过于复杂。在 2020 年 2 月 14 日之后的 GLib 版本中,gio-launch-desktop不再存在,已被使用 取代sh,如GNOME/glib 提交 8f7faac

由于 Thunderbird 明显导致底层系统启动 Chromium,而不是直接启动它(很可能是因为它不知道哪个浏览器是默认浏览器),因此很明显,如果不深入研究和重写,就不可能告诉它执行其他操作它的源代码。

相关内容