对于 Ubuntu 18.04,有没有办法在菜单栏中显示特定应用程序的下拉菜单?

jor*_*rdy 5 menu appmenu menu-bar

这适用于 Nautilus、Gedit 等。例如,我想从下拉菜单中选择复制和粘贴,但我不得不使用右键单击菜单或 Ctrl-C Ctrl-V 快捷键,因为下拉菜单不存在。这些菜单提供了对许多基本功能的轻松访问,我想在 Ubuntu 18.04 上使用它们。

此图像(来自 Ubuntu 16.04)显示了我正在寻找的下拉菜单功能。

下拉式菜单

我知道有关于这个问题的类似问题,但答案不是确定的,建议安装 Gnome 全局应用程序菜单,它没有正确实现此功能。此外,有传言称不再支持此 shell 扩展。在任何一种情况下,它都不起作用。

我尝试了几种设置,安装了 Gnome Tweak Tool,使用 Unity 用户界面登录,但没有任何效果。菜单位于窗口的标题栏还是顶部菜单栏中并不重要,只要它们在某处可用即可。

我的问题是:是否有可能拥有这些下拉菜单,还是我应该放弃并停止浪费我的时间?

les*_*ape 6

这个问题没有简单的解决方案。我需要解释一些作为元分析的事情,以便真正能够理解会发生什么,以及在哪里询问您注意到的所有这些功能都消失了。

在最近版本的Gtk ( Gtk+3 ) 中添加了一个名为appmenu的新功能。此功能可以代替/作为选项使用,称为menubar的正常和标准功能。

应用菜单:

应用菜单

菜单栏:

菜单栏

appmenu更realated与整个应用程序(退出,约..)的选项,比在菜单中设置这个特定的窗口相关的选项,而菜单栏盖两个类型的行为,应用程序的操作和窗口操作(复制, 粘贴, ...)。由于这个原因,菜单栏appmenu更通用,当然也比 appmenu 更大。然后菜单栏更难以适应为手机等小屏幕设计的界面。

请注意,复制粘贴操作是特定于窗口的,因为您要将一些选定的文件从一个窗口复制到另一个窗口。因此,它不是应用程序操作的类型,因此它们不是appmenu操作的一部分,但它们可以是菜单栏操作的一部分。

在那之后,菜单栏appmenu两个功能都存在,特定应用程序的开发人员需要决定是否要显示一种或两种类型的菜单以及将选择哪种类型。

虽然大多数外部 gnome 开发人员希望他的应用程序与 KDE 等其他桌面环境兼容,但他们选择菜单栏方式作为标准。相反,gnome 开发人员选择了appmenu,因为这是他自己的方式,而且他们考虑得更好。这并不意味着如果您选择一种或另一种方式,其余的将不再存在。只是不会显示为默认值。

无论如何,这个决定的一些例外是例如:

  • Gimp,也是一个 gnome 应用程序,但由于明显的原因无法实现appmenu(它有一个很大的菜单)。所以,这个 gnome 应用程序继续显示menubar

  • Nautilus,因为他的 gnome 开发人员,决定删除menubar 的所有实现,只支持appmenu。因为他们认为侏儒视角足够合适。他们不在乎强迫其他桌面开发人员为他的平台纠正这一点。就像在 Unity 中的情况一样,Nautilus 有一个补丁。或者 Mate 和 Cinnamon,其中其他应用程序是作为 Nautilus 的一个分支创建的。

除了所有这些混乱之外,还有一种方法可以通过DBus发布应用菜单菜单栏。特定的 shell(unity、gnome-shell)可以使用此功能来创建全局菜单栏(如MacOS 中)或全局 Appmenu(Gnome shell 中)。另外以及应用程序如何同时导出两种类型的菜单,将两种类型合二为一的解决方案,例如在Unity Desktop中发生的情况也是可能的。

但是,只有在特定应用程序(Nautilus、Gedit ...)中支持全局选项时才可能使用,因此:

  • Unity 桌面(一个规范的桌面)中,许多 gnome 应用程序被打补丁以与Unity 全局菜单功能对应。

  • Gnome-Shell(一个 gnome 桌面)中,他们提醒自己的开发人员只关心Global Appmenu功能并强制它成为标准。

这一事实与此相反,当然,shell 开发人员的大量努力都在相互竞争。

另请注意:我不想提及更困难和相关的问题,这些问题是由 gnome 决定使用客户端装饰而不是服务器端装饰引入的。此决定的影响也与您的问题有很大关系,但我会避免这样做,因为它确实可以以不会引起任何干扰的方式实施。请提前注意,目前 gnome 并不是如何真正实现此功能的。同样,他们正试图迫使它成为标准。

用户现在已经注意到这个问题了,因为现在 Ubuntu 开发人员决定不使用统一桌面作为主要的桌面。由于他们没有修补应用程序以支持 Unity 之外的全局菜单,因此用户更容易看到冲突,因为应用程序可以看到它的样子,因为没有 Ubuntu 开发人员添加的补丁。

然后有几种解决方案可以解决开发人员级别的暴露问题:

  1. 应用程序的特定开发人员需要支持这两种功能(在这种情况下 Gnome 开发人员)。

  2. 发行版开发人员需要创建/继续修补有问题的 gnome 应用程序,并且补丁需要扩展到特定桌面 (Unity) 之外,以便在其他桌面环境中使用它。

最后请注意:就像 Ubuntu 补丁处于代码级别一样,这取决于应用程序本身,作为用户,您无能为力来解决冲突,然后在 gnome 中也无能为力shell 扩展,如Gnome Global Menu,以解决此类问题。

要解决像 Nautilus 这样的应用程序缺少的个别功能,唯一的解决方案是从 Nautilus 内部。所以解决方案需要来自应用程序本身。它在您身边的唯一“解决方案”是声明您不符合这一事实,然后使用不同的应用程序。例如:使用 Nemo 或 Caja 作为 Nautilus 的替代品。