wish: Client-side window decorations (with GTK's Headerbar)

Bug #2002176 reported by Jeff Fortin Tam
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
HomeBank
Won't Fix
Wishlist
Unassigned

Bug Description

Perhaps this would be tricky to do for the main window and transactions list dialog, but for some windows/dialogs, such as all the dialogs under the "Reports" menu and the "Edit transaction" dialog, "Manage categories", etc. (basically all dialogs that do not need a menubar and that have only a handful of toolbar buttons), it would be beneficial to use GtkHeaderbar to put those widgets in the titlebar and save some space in such areas where it is wasted.

Some reference docs:

https://docs.gtk.org/gtk3/class.HeaderBar.html

https://docs.gtk.org/gtk4/class.HeaderBar.html

Tags: gtk4
Maxime DOYEN (mdoyen)
Changed in homebank:
importance: Undecided → Wishlist
Revision history for this message
Maxime DOYEN (mdoyen) wrote (last edit ):

Well, CSD has its supporters and detractors. I'm among the last group.

Adding to this, there is a few drawbacks:

1) CSD is relevant for small screens
If you get back to its origins, Matthias mentioned it there:
https://blogs.gnome.org/mclasen/2014/01/13/client-side-decorations-continued/
=> we all have at least hd ready screen where vertical space is not limited

2) this is GNOME specific, not a GTK standard
=> HB is cross platform and CSD would be disturbing on Windows or Mac, which is most of the users
=> also other Window manager user won't like it for sure

3) it will force me to complexity the code to use CSD if and only if the DE is GNOME, I did even not evaluated if it is possible

so I vote no, but keep this open if other users support.

Revision history for this message
Jeff Fortin Tam (kiddo) wrote :
Download full text (3.4 KiB)

I need to address this particular point:

> "we all have at least hd ready screen where vertical space is not limited"

That is not really the case, according to my observations...

* On a 25" 1920x1080 or 2560x1080 monitor (I have both on my desktop), vertical space remains extremely precious to me, it allows me to display more contents and reduce the amount of scrolling I have to do.
* On my 13" laptops (such as the ThinkPad X220 at 1366x768, that I am forced to continue to use because every newer laptop has an inferior keyboard that destroys my hands), screens are either HD, less-than-HD, or 4K/hiDPI... yet resolution doesn't matter because vertical space is always precious on a 13" (or 15", or 25") display. If you're trying to fit resolutions between-HD-and-4K (such as 1600x1200) on such displays, you're then straining your eyes because everything is too tiny to be readable, and that's why such resolutions are uncommon on that physical formfactor.
* On a 15" 4K display (which I also have tested), vertical space remains precious as well. Sure, you have a higher pixel density / resolution, but you're displaying everything at 2x, so in the end it's the same amount of "physical space" available and used on the screen (not really different from my 1920x1080 22" monitor, physically speaking), and I'd like to be able to fit more information and have the GUIs use less un-optimized space.

My family members etc. also all have typically have 13 to 24" screens. In my observations over the years, extremely few people (other than developers and gaming enthusiasts) buy 30" ultra-HD or 4K monitors, and I can tell you from own experience that a non-4K full-HD screen at 27" is pretty much useless: UI widgets are enormous and text's pixel density is crap, while it just eats more desk space.

> this is GNOME specific, not a GTK standard

I understand your concerns about code standardization across different OSes (if you choose to use multiple codepaths instead of one unified implementation), though I will say this:

* Aesthetically: Headerbar-style CSDs are pretty much standard in macOS too nowadays, and they are present in some applications in Windows (web browsers, Office, etc.); Windows never had UI consistency in its lifetime, given how much legacy compatibility it has going on, and how diverse its app developers ecosystem is (you can still run Windows 95 apps on the latest versions of the OS...), so it probably wouldn't be a shocker to have one more app using CSDs on that platform.

* Technically: I asked in the GTK Matrix channel whether headerbar-style CSDs work out of the box on the Windows platform (or if they only work well on Linux and macOS), and someone replied that yes, CSD headerbars do work fine on win32.

On FLOSS desktops, GNOME is not the only DE where client-side decorations are used; they have also been adopted (in part or in whole, or underway) by Elementary, Cinnamon, Deepin, Pop!_OS, KDE (!), and probably a bunch of others I'm forgetting or am unaware of.

That said, I understand the dilemma you're facing.

Note that I'm not saying this needs to happen for the Main Window or account's Transaction List window necessarily (even thou...

Read more...

Revision history for this message
Maxime DOYEN (mdoyen) wrote :

1) screen resolution/size:
observation of your or my entourage is note reliable, statistics numbers or more relevant:
https://gs.statcounter.com/screen-resolution-stats/desktop/europe
https://gs.statcounter.com/screen-resolution-stats/desktop

Anyway, I try to design any windows following gnome HIG so 1024x600, by downsizing my 14" full hd screen, which remain a challenge.

2) this is GNOME specific, not a GTK standard
- what matter is not what will technically work (I know CSD work on Windows portage) nor what OS developers of desktop environment wants, but it is what the users wants and the layout they are used to (habits). This layout doesn't rise in the Windows ecosystem, because people aren't ready yet or don't want it at all. Maybe this will change as O365 start using it for a while, so it will take some more time to convince.
I run Mint Cinnamon, CSD apps are just gnome apps, probably same for Mate, and others.
Hopefully, CSD seems still a developer option even on GTK4.

So we will see.

Maxime DOYEN (mdoyen)
Changed in homebank:
status: New → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.