如何在 Firefox 中使用 KDE 全局菜单?

如何在 Firefox 中使用 KDE 全局菜单?

我希望 Firefox 在 X11 上运行的 KDE Plasma 5.19 上使用全局菜单。

  • GTK 和 KDE 的小部件集是 Breeze。
  • 我目前正在使用 Kubuntu 20.10,但也有运行 18.04 和 20.04 的机器。全局菜单适用于 18.04,但是不是20.04 或 20.10(或 21.04 或 21.10...)。
  • 关于该主题的现有问题已经过时,大多与 Unity 上的 appmenu 问题有关。

全局菜单对于我来说在 Firefox 中从来都不起作用。全局菜单与其他具有菜单的应用程序协同工作。

  • GTK2:xournal
  • GTK3:geany、geeqie
  • KDE: Falkon、Konsole
  • 其他:Google Chrome、LibreOffice

以下可能相关的服务正在运行:

  • 应用程序菜单守护进程
  • GNOME/GTK 设置同步服务

以下操作无效:

  • plasma-browser-integration包和相关附加组件。

  • xdg-desktop-portal-*包。

  • Wayland。GTK 应用程序的全局菜单不是在 Wayland 中工作。Wayland 也存在太多其他缺陷。

  • 使用新的配置文件重新启动 Firefox。

  • 安装以下软件包。其中大部分是不是其他应用程序使用全局菜单所必需的。

    appmenu-gtk2-module appmenu-gtk3-module appmenu-gtk-module-common appmenu-registrar gir1.2-dbusmenu-glib-0.4 gir1.2-dbusmenu-gtk-0.4 gir1.2-dbusmenu-gtk3-0.4 indicator-appmenu indicator-appmenu-tools libappindicator1 libappindicator3-1 libappmenu-gtk2-parser0 libappmenu-gtk3-parser0 libdbusmenu-glib4 libdbusmenu-gtk3-4 libdbusmenu-gtk4 libdbusmenu-qt5-2 libdbusmenu-tools libindicator3-7 libindicator3-tools libindicator7

需要做什么才能让 Firefox 使用全局菜单?

答案1

要使用 Firefox 的全局菜单目前需要补丁。 Archisman Panigrahi 解释

全局菜单曾经在 KDE Neon 18.04(可能还有 Kubuntu 18.04)中与 Firefox 配合使用,因为(据我所知)Ubuntu 开发人员曾经修补它以兼容 Unity(它也有全局菜单)。随着 Unity 被放弃,补丁也停止了

具体来说,该补丁通过 dbus 导出菜单。如果没有它,Firefox 就不会导出菜单,因此其他应用程序无法访问它。没有全局菜单。

当前的选项:

  • 查找并使用已修补的二进制文件。 Firefox 18.04 存储库继续应用菜单补丁。还有其他已修补和重命名的 Firefox 版本,但出于各种原因,可能应该避免使用它们。您可以使用 阻止软件包升级到未修补的版本sudo apt-mark hold firefox

    • 这个答案描述如何将 Firefox 包固定到特定的存储库。
  • 使用补丁重新编译源代码。这是“最安全”的选项。可以安装最小开发工具集,将源代码上传到 launchpad.net 进行编译并包含在 PPA 中。

  • 没有 Firefox 全局菜单,希望它们最终能在上游实现。(菜单栏中实际上没有任何内容无法在其他地方访问。)

也可以看看:

答案2

我这边部分成功(升级前它在 20.04 上运行):

基于https://forum.manjaro.org/t/howto-enabling-kde-global-menu-support-in-mozilla-firefox-and-thunderbird/7405我创建/etc/profile.d/mozilla-common.sh

export MOZ_PLUGIN_PATH="/usr/lib/mozilla/plugins"
export GTK_USE_PORTAL=1

启动 Firefox 将显示全局菜单。切换到另一个窗口并返回 Firefox,全局菜单就会消失。

相关内容