(not sure about category)
I’m using GNOME for 4 months and I like it very much. There is one annoying thing for me however — inconsitent size of window titlebars. I see in GNOME four types of titlebars (here, I am talking only about GTK3 based apps):
Default decoration rendered client-side by GTK3. It’s used only on Wayland* when app DOES NOT use custom titlebar. Looks exactly the same as #2 type**.
Default decoration rendered server-side by Mutter/Metacity. It’s used on Xorg when application DOES NOT use custom titlebar. Looks exactly the same as #1 type**.
Custom titlebar specified by application but application does not use its feature at all. Contains the same information as #1 and #2 but it’s bigger because: a) Adwaita specifies min-height, b) GTK preserves space for optional subtitle.
Custom titlebar specified by app AND actively used by that app: subtitle, custom buttons etc.
I am showing this problem on screenshot (top: #1, #2, bottom: #3, #4):
Real example of inconsistency (left: Nautilus preferences on Wayland, right: system monitor preferences):
I don’t understand why this inconsistecy still exists in the whole GNOME desktop, which try to be consitent in each other aspect. I can guess two reasons:
- when CSDs was introduced, Mutter’s/Metacity’s decorations (#2) were inconsitent with CSD decorations from GTK (#3, #4) and app authors tried to fix it on its own ( https://blogs.gnome.org/fmuellner/2015/01/30/a-small-note-on-window-decorations/ but this is history);
- GNOME design prefers bigger titlebars than smaller.
In my honest opnion this problem should be fixed this way:
- Custom titlebar should be used ONLY when it’s …used. Simple rule for apps authors: when you don’t need to use subtitle or custom widget in titlebar, don’t set headerbar and allow GTK to do its work properly.
- If GNOME design prefers bigger titlebars, this should be set in Adwaita by setting min-height for .default-decoration both client-side and server-side. (This way will allow
gtk.csshackers like me and theme authors to specify other CONSISTENT design.)
What do you think about it? I’m going to send merge requests for apps which I think need that fix (if I will be able to) but I don’t want to fight with you so first I’m asking.
Example app code from screenshot: https://pastebin.com/MgsRKfHf
* — or on Xorg when you enforce it by GTK_CSD=1 env var.
** — almost. https://gitlab.gnome.org/GNOME/mutter/issues/100