How do I disable client side decoration globally in GNOME?
Solution 1
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.
Or at least support both ones like celluloid-player
Edit
Let me point out my point of view for CSD:
-
You can drag n drop windows from header's buttons!! As inconvenient as it gets!
-
It does not save space, it it wasting it. Just place windows side by side and see! Specially windows that just have their title/header bar expanded just to match the design!
-
It is often compared with OSX but this is completely wrong because OSX has and always will have menu bar.
-
lucking the menu bar, users have to seek for functionality among buttons placed left or right without any standard design.
-
Buttons are have to be left-clicked -> released -> re-click. But in the classic design you can just hold-click -> release-click on the item!!
-
The need of menubar is essential on some programs like Krita, Gimp, Inkscape, Blender, etc. So we always have a mixture of CDS and non-CDS and that is bad! design?
-
CDS will be used by apps with none or without many "menu options", thus waste of space occurs, cos the entire header bar will be mostly empty but still there! There are plenty of examples out there.
-
When giving instructions to someone is like "Hey, press the second button from the right, what do you see? Oh ok, now press preferences", i.e. IF you're lucky. Instead of "Hey, goto Menu - Edit - Preferences"!!!
Bonus anti-feature: Those popup menus, so called burger menus?, that you don't see the item's parentS and if you make a mistake you have to move the mouse up and down and again and again to reach the parent! OMG...
Solution 2
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:
And with the NOCSD hack:
You can see several examples of why Vassilis' assertion that CSDs are a horrible idea that destroyed the Linux user interface is true:
- 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.
- 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.
- 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.
- 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).
- 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.
Solution 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
Related videos on Youtube
![pomsky](https://i.stack.imgur.com/A4LiS.jpg?s=256&g=1)
pomsky
Updated on September 18, 2022Comments
-
pomsky almost 2 years
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):
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. -
muru over 6 yearsFrom the question: "I have heard of gtk3-nocsd package, but couldn't make it work with GNOME for all the applications."
-
Guss over 6 yearsHmm... Missed that, sorry. @pomsky: what problems did you have with
gtk3-nocsd
? -
pomsky over 6 yearsIt didn't work with Nautilus for example last time I tried.
-
Guss over 6 yearsIt 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. -
Admin over 5 yearsIt seems gtk3-nocsd now automatically disables header bars on non-GNOME desktops without any configuration for all gtk apps including Evince. webupd8.org/2014/08/how-to-disable-gtk3-client-side.html
-
Vassilis about 4 yearsYes @Guss, nocsd is a nice try but... as we can see the window contents remains with CSD elements, unfortunately. And in most case is ugly like having two title/headers.
-
Guss about 4 years@Vassilis - yes, it is a hack. But the only other solution is your solution, which is no solution 😉. As CSDs appear more and more in mainstream (non-GNOME) applications - like Google Chrome - we need to do something. One thing I do want to note is that since I wrote this answer, Kwin handling of CSD application has improved dramatically and CSD apps now cast shadows and obey the color scheme (mostly - some CSD apps still have color issues).
-
Mikko Rantalainen over 3 yearsAlso note that
gtk3-nocsd
hacks environment variableLD_PRELOAD
so it cannot work withsnap
packages and may potentially clash with any other use of that environment variable. -
Guss over 3 years
LD_PRELOAD
can specify multiple libraries - if you have multiple preloads, you'd be wise to not step on your own toes. That being said - the situation today is much better than it used to be, with better support in Plasma, and I haven't usedgtk3-nocsd
in a long while. -
balu almost 3 yearsUnfortunately, running Evince without CSD no longer seems to work in Ubuntu 21.04 (gtk3-nocsd version
3-1ubuntu1
, Evince version 40.1): While Nautilus doesn't show any CSD after installinggtk3-nocsd
, Evince still does. Neither$ gtk3-nocsd evince
nor$ GTK_CSD=0 evince
does the trick, either. -
balu almost 3 yearsFWIW gnome-calculator still shows CSD, too, but maybe that's because it includes a menu button and so the developers decided that the calculator needs to have CSD(?) – not sure. Maybe it's all just a bug in
libgtk3-nocsd.so.0
. In any case, I also just noticed that there are window border artifacts in both gnome-calculator and evince, meaning that certain parts of the window close to the border are drawn entirely black (it's hard to describe) – maybe this is related? -
mpb almost 3 years@balu I believe Evince + gtk3-nocsd works pretty much the same in Ubuntu 21.04 as it did in 20.04 (and maybe also 18.04?). Evince does run. Yes, Evince's CSD are still displayed (as they were in 20.04). However (and happily for my use case) the Openbox window decorations are also shown. That is my goal, as I want to use the Openbox window decorations to manage all my windows, including Evince.