在我的 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,而不是直接启动它(很可能是因为它不知道哪个浏览器是默认浏览器),因此很明显,如果不深入研究和重写,就不可能告诉它执行其他操作它的源代码。