GNOME Bugzilla – Bug 776290
GTK_CSD=0 does not disable CSD
Last modified: 2016-12-20 05:36:30 UTC
Created attachment 342234 [details] [review] gtk3-make-csd-optional.patch Currently there exists the GTK_CSD environment variable that is checked to decide whether CSD should be set for a particular window. However, it's used as a hint rather than as an instruction to an application. In addition, even if an application does *not* specify it wants to use CSD, if you're using a backend other than X (such as Wayland) you will *still* get CSDs on your GTK+3 applications -- even though neither the user nor the application want it. IMO the solution is to either always honour GTK_CSD if it's set, or remove the code that specifically makes Wayland _always_ use CSDs even if the application did not request to use them. I've attached my attempt at a patch for this. PTAL. Note that Arch Linux has their own patch for this as well[1]. [1]: https://aur.archlinux.org/cgit/aur.git/plain/gtk3-make-csd-optional.patch?h=gtk3-optional-csd
This is not a bug. There is no alternative to CSD on Wayland, so we ignore the environment variable.
Currently sway (like i3 but for wayland) implements title bars for all processes, which means that CSD is currently making my terminal sessions look really dumb -- it has two title bars and the GNOME one takes up ~3cm from the top of my screen. Maybe GNOME hasn't implemented any other alternatives, but alternative window managers clearly have.
Created attachment 342245 [details] screenshot of CSD vs no-CSD in sway Attached is a screenshot to show how silly CSD looks in sway.
With the current set of public protocols there is no way to not show window decoration. Ways might very well be introduced in the future, but any client using only the upstream shell protocols simply cannot. If they do, it's by being non-compliant.