Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Interface: Add GTK3 Headerbar support (GUI refresh) #2061

Open
arigit opened this issue Jan 19, 2019 · 6 comments
Open

Interface: Add GTK3 Headerbar support (GUI refresh) #2061

arigit opened this issue Jan 19, 2019 · 6 comments

Comments

@arigit
Copy link

arigit commented Jan 19, 2019

It would be nice to have and option in Preferences > Interface to support headerbar so that we:

a) gain some screen real state
b) make Geany look like a modern GTK3 app

It could be a simpler start where the window decoration top bar goes away and the menu and top icon bar (which are on the same 'line' in my geany configuration) move to the top border.

Or ideally a more thorough GUI refresh, maybe moving the Menu to a hamburger (but keeping the shortcuts to no change in day-to-day use to hardcore users), keeping the single-line icon bar, maybe coming up with a symbolic icon set (like GIMP did, for instance).

Sharing some thoughts. I use geany daily and it is starting to look a bit dated - it would be nice to have a visual refresh. The GTK3 port done a few years ago would probably enable this.

@codebrainz
Copy link
Member

a) Not only would you lose you window manager controls, replaced by some GNOME-specific kludge, but you'd also lose screen real estate. Geany's menu and toolbar fit within the same area as the giant header bar but expose all the functionality directly instead of hiding it behind some trendy hamburger or gear icon.

b) You mean modern GNOME app. Just because GNOME developers are actively ruining GTK+'s cross-desktop experience, doesn't mean we can't still try to use it to make a portable application that looks normal on good desktop/platforms (ex. XFCE, KDE, Windows, etc.)

Speaking for myself, GtkHeaderBar is the worst thing to happen to desktop Linux since GNOME-shell. It serves no purpose other than to break cross-desktop compatibility and windows management, all just to look like a phone app on the desktop.

In case it wasn't obvious, 👎 for me :)

@elextr
Copy link
Member

elextr commented Jan 20, 2019

@codebrainz you forgot the </rant> :) But basically took the words out of my mouth. 👎 from me too.

@arigit Adding an extra action to get the menus every operation does not improve usability. The point of a menu interface is to make it easier to use than apps like vim or emacs that are totally keyboard driven (or were, they both now have menus IIUC :) Whilst Geany is not specifically targetted at "my first IDE" its also not targeted at leet developers only, its a happy middle ground.

Of course GUIs are very personal things, and what is the best GUI for a particular app varies, but Geany has attracted contributors who seem to appreciate the effectiveness of a traditional GUI in this use-case. So I suspect you won't get much support for a GUI "refresh" without providing significant real world data that demonstrates an improvement in effectiveness. Simply "its new" won't cut it. And also being tied to a specific platform and desktop isn't acceptable either.

@codebrainz
Copy link
Member

I think this might be do-able for a plugin. It would probably require hooking into the widget hierarchy and thus be somewhat hacky, but I've done similar kludges in plugins with moderate success 😃

@arigit
Copy link
Author

arigit commented Jan 20, 2019

Thanks all for the comments. I wasn't meaning to start a flamewar. The main driver for my ask was that the headerbar can save some screen real state and at the same time update a bit the look and feel (yes I was thinking gnome primarily, but Windows would benefit as well), not to force a change on people.

An optional plugin approach to headerbar support would be super nice, with the HB maybe hosting the current menu+toolbar in a single line, optionally collapsing the menu if it doesn't fit behind a hamburger button (so that more vertical screen real state is made available to code)

I did notice that some apps like e.g. the media player DeadBeef support an optional GTK3 headerbar via plugin (and it looks fantastic on the the desktop) - https://github.com/saivert/ddb_misc_headerbar_GTK3 - so the approach could be workable. Optional support for CSD (client side decorations) is also present on Firefox.

For context - RE Windows support for headerbars - it's been a long time since gtk3 apps with headerbars work on windows - see for instance gedit 3.20. GIMP CSD/headerbar is coming to all platforms (also optional, as I understand it).

@codebrainz
Copy link
Member

The main driver for my ask was that the headerbar can save some screen real state

normal_and_headerbar

I guess it depends on how you consider saving screen real-estate. While the GtkHeaderBar is technically smaller than a menu/toolbar+window decorations, it also wastes a lot of space where functionality could be accessible from, opting to bury it inconveniently beneath hamburgers and submenus. On top of that, it also drops the native window manager controls and looks completely out of place (except on GNOME of course).

update a bit the look and feel (yes I was thinking gnome primarily, but Windows would benefit as well)

I think the only desktop environments where it would look more appropriate are GNOME and perhaps ElementaryOS (although their headerbar is different I believe).

it's been a long time since gtk3 apps with headerbars work on windows - see for instance gedit 3.20

I didn't mean to imply it didn't work, just that it looks terribly out of place and removes native window manager decorations which are important for cross-application consistency. Somehow it manages to look even worse and less native than Chrome on Windows, which is saying a lot.

An optional plugin approach to headerbar support would be super nice

Even though I hate CSD/GtkHeaderBar, if anyone wants to make such a plugin, I would be willing to assist, just for the fun of hacking Geany's UI in unusual ways :)

@kugel-
Copy link
Member

kugel- commented Feb 4, 2019

IMO we could provide it as an option, if it doesnt add a lot of code. Screen real estate is clearly important and some peope might prefer the header bar with lots of stuff being behind a button.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants