16

I'm using Ubuntu GNOME 17.04. One encounters client side decoration (CSD) as most of the official GNOME applications (Nautilus, gedit, Evince etc.) use GtkHeaderBars (a combined title bar and toolbar, see linked screenshots) whereas other applications don't. This feature is disabled in Unity, all the applications use traditional separate title bars.

Screenshots (from this article):

  • Nautilus with GtkHeaderBar

  • Nautilus without GtkHeaderBar

For consistency I want to disable GtkHeaderBars globally (in all the applications using it) and use separate title bars. Is there a way to achieve that?

I have heard of gtk3-nocsd package, but couldn't make it work with GNOME for all the applications.

13

I'm afraid this cannot be done, unless the developer of an application has taken care of a feature like this. Showing a title bar at the top of windows, does not mean that CDS is actually disabled. It is still missing the classic window layout i.e. title bar, menu bar, tool bar, status bar.

Client Side Decorations has destroyed linux user interface and made apps and desktop environments look ugly and not native.

I hope that every developer would just ignore Gnome guide lines and keep his application useful and consistent for all environments.

6

While I agree with Vassilis that CSDs are horrible - fortunately, he is wrong about the possibility of disabling them.

In Ubuntu, install the gtk3-nocsd package and then log out and log back in.

This "hack" causes GTK+ applications to no longer disable the window manager's window decoration. The result may look a bit weird - here's how GNOME's calculator application looks with the standard CSD:

enter image description here

And with the NOCSD hack:

enter image description here

You can see several examples of why Vassilis' assertion that CSDs are a horrible idea that destroyed the Linux user interface is true:

  1. The non-CSD window title shows "<2>" because I've run 2 calculator windows at the same time to take the screenshots, and the CSD one is also titled "Calculator" but doesn't show it, so if your window manager has a window list UI (such as a "taskbar") and you see there "Calculator" listed, it will not be trivial finding it on the screen.
  2. My window manager has "drop shadows" enabled which makes it easier for me to see which windows are above other windows, but the CSD window disables it for no good reason - making my screen again more complicated to understand than need be.
  3. I use the "always on top" functionality a lot, which is why I've asked my window manager to display a handy button to enable it near the other window operation buttons, but the CSD app obviously doesn't know about it and doesn't show it. Same problem with the "pin to current workspace" button, though here the error is more glaring because it is in the default configuration and GTK+ should have known that.
  4. What isn't shown (because I was lazy) is the window operations menu (right click on the title) that the CSD window has a very limited set of options available (basically the 6 standard ops and "always on top") while my window manager offers a lot more functionality that I often use).
  5. Another thing that isn't shown is that the CSD window doesn't change its title color when not active, unlike all the other windows I have. This would have been a more glaring error if KDE wasn't such an awesome desktop environment and configured the GTK+ application to use the correct title colors - on other DEs the active GTK+ CSD title color doesn't even match the active "native" window title color.
  • 1
    From the question: "I have heard of gtk3-nocsd package, but couldn't make it work with GNOME for all the applications." – muru Jan 25 '18 at 9:30
  • Hmm... Missed that, sorry. @pomsky: what problems did you have with gtk3-nocsd ? – Guss Jan 25 '18 at 10:32
  • It didn't work with Nautilus for example last time I tried. – pomsky Jan 25 '18 at 14:34
  • It works correctly for me on Kubuntu 17.10. I'm not sure when Nautilus is loaded under a Unity session, but if it happens before the gtk3-nocsd XSession script, then that may be the cause. If this still doesn't work for you - ping me. – Guss Jan 25 '18 at 16:22
3

I was able to run the evince PDF viewer with decorations provided by my window manager (Openbox) on Ubuntu 18.04 as follows:

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

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.