如何在GNOME中全局禁用客户端装饰?


16

我正在使用Ubuntu GNOME 17.04。由于大多数官方GNOME应用程序(Nautilus,gedit,Evince等)使用GtkHeaderBars(组合的标题栏和工具栏,请参见链接的屏幕截图),因此遇到了客户端装饰(CSD),而其他应用程序则没有。在Unity中禁用了此功能,所有应用程序均使用传统的单独标题栏。

屏幕截图(来自本文):

  • Nautilus与GtkHeaderBar

  • 不带GtkHeaderBar的Nautilus

为了保持一致,我想全局禁用GtkHeaderBars(在所有使用它的应用程序中)并使用单独的标题栏。有办法实现吗?

我听说过gtk3-nocsd软件包,但是不能使其与GNOME一起用于所有应用程序。

Answers:


15

除非应用程序的开发人员已经照顾了这样的功能,否则恐怕无法做到这一点。在窗口顶部显示标题栏,并不意味着CDS实际上已被禁用。它仍然缺少经典的窗口布局,即标题栏,菜单栏,工具栏,状态栏。

客户端装饰破坏了linux用户界面,并使应用程序和桌面环境看起来丑陋而不是本机。

我希望每个开发人员都不会理会Gnome指导方针,并保持他的应用程序对所有环境有用和一致。


8

我同意Vassilis的观点,CSD非常糟糕-幸运的是,他对禁用CSD的可能性是错误的。

在Ubuntu中,安装gtk3-nocsd软件包,然后注销并重新登录。

此“ hack”导致GTK +应用程序不再禁用窗口管理器的窗口修饰。结果可能看起来有些怪异-这是GNOME的计算器应用程序与标准CSD的外观:

在此处输入图片说明

加上NOCSD骇客:

在此处输入图片说明

您可以看到几个示例,说明了为什么Vassilis断言CSD是一个破坏Linux用户界面的可怕想法的事实:

  1. 非CSD窗口标题显示为“ <2>”,因为我同时运行了2个计算器窗口以截取屏幕截图,并且CSD的标题也为“ Calculator”,但未显示,因此如果您的窗口是管理器有一个窗口列表用户界面(例如“任务栏”),您会看到其中列出了“计算器”,在屏幕上可以轻松找到它。
  2. 我的窗口管理器启用了“阴影”功能,这使我可以更轻松地看到哪些窗口位于其他窗口之上,但是CSD窗口却没有充分的理由将其禁用-使我的屏幕变得比需要的更加复杂。
  3. 我经常使用“总是放在最前面”功能,这就是为什么我要求窗口管理器在其他窗口操作按钮附近显示一个方便的按钮以使其启用的原因,但是CSD应用程序显然不知道并且没有不显示它。“固定到当前工作空间”按钮也存在同样的问题,尽管这里的错误更明显,因为它是默认配置,GTK +应该知道这一点。
  4. 没有显示(因为我很懒)(因为标题是右键),因此CSD窗口的可用选项集非常有限(基本上是6个标准操作,而“始终在顶部”)窗口管理器提供了我经常使用的更多功能)。
  5. 未显示的另一件事是,与我拥有的所有其他窗口不同,CSD窗口在不活动时不会更改其标题颜色。如果KDE并非如此出色的桌面环境,并且将GTK +应用程序配置为使用正确的标题颜色,这将是一个更加明显的错误-在其他DE上,活动的GTK + CSD标题颜色甚至与活动的“本机”窗口都不匹配。标题颜色。

1
从一个问题开始:“我听说过gtk3-nocsd软件包,但无法使其与GNOME一起用于所有应用程序。”
muru

嗯...想念,抱歉。@pomsky:您遇到什么问题gtk3-nocsd
格斯

例如,上次尝试时,它不适用于Nautilus。
pomsky '18

它对我在Kubuntu 17.10上正常工作。我不确定Nautilus何时在Unity会话下加载,但是如果发生在gtk3-nocsdXSession脚本之前,则可能是原因。如果这仍然不适合您-请ping我。
Guss

4

我可以evince在Ubuntu 18.04上使用窗口管理器(Openbox)提供的装饰来运行PDF查看器,如下所示:

$ sudo apt-get install gtk3-nocsd
$ gtk3-nocsd evince

似乎gtk3-nocsd现在可以自动在非GNOME桌面上禁用标题栏,而无需对所有gtk应用程序(包括Evince)进行任何配置。webupd8.org/2014/08/how-to-disable-gtk3-client-side.html
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.