GTK File Chooser Dialog gets a thumbnail view after 18 years
thisweek.gnome.org
thisweek.gnome.org
I find these buttons at the top extremely confusing, as I often - from my experience with reading - after I've dealt with the subject at hand (in this case, picking a file), assume the natural place to confirm my choice would be after it (i.e. below it).
What are the UX arguments for placing the confirm buttons at the top of a dialog?
it comes from gnome developers wanting to do things different for difference's sake.
it makes no sense and brings no advantage. truly an unnecessary change.
The title bar is supposed to be a mostly empty expanse that you can grab with a mouse. Now it's littered with controls, and I can hardly bring windows to focus or move them around without accidentally searching something or confirming something.
Resizing takes grabbing an edge though.
In that case you don't need discoverability for something you set up yourself.
It's also very fun to play with when using the Wobbly Windows effect, you can stretch them in different ways depending on where exactly you picked the window up from.
"less vertical space" so let's have a hamburger menu on a desktop screen. Right next to the window close button.
"less vertical space" so let's have a tiny search icon right next to the select button
"less vertical space" so let's have search consistently in the left corner, no in the middle, no to the right
"less vertical space", so let's have tabs, buttons, icons, and hamburger menu in one row. There's no space for the actual title or little space to drag the window? But THERE'S LESS VERTICAL SPACE ENJOY
hamburger menu on desktop should be abolished
Did anybody care enough to try?
(I personally don't; I use the file manager for any views I want, and drag the files from it onto an app, or onto a file chooser dialog. That feature, which is also present in macOS, was very much worth reproducing.)
Pretty bold of you to assume such thought process occurred at any point during design. Someone just thought "this looks good", where good may mean "modern-looking", "trendy", or "looks great on a screenshot for a product page", and slapped the button there.
Original small screen iPhone, where it's easier to reach the top than the bottom, and it's less likely to be an accidental touch.
But now it's cargo-culted everywhere.
But I see that the other Unix machine most Gnome developers use is a Macbook, so they try to make things familiar, because they sort of like that UI. (Those who don't but still want a coherent desktop can pick KDE.)
Fortunately, I think more projects are abandoning GTK than onboarding it thanks to GTK's horrible documentation, instability, opinionatedness, and simply how much better Qt is to develop for[0], which I can only hope will gradually de-throne GNOME as "the default DE".
E.g. I did not write, but just looked through the hoops PyQt has to jump to interface with Qt nicely. Quite impressive.
It still feels more polished and accessible overall than alternatives though, and so it will probably continue to be “the default DE” for the foreseeable future.
KDE has the most potential to replace it, but I think its configuration is still intimidating (to the point that you regularly see people ask which KDE distros have good defaults), as well as quirks you don’t see anywhere else, like turning file copy dialogs into notification toasts. It’s technically functional but comes off as weird.
The other GTK DEs (XFCE and Cinnamon) I think are in a better place in terms of their settings panes not being scary and generally feeling well designed, but lack resources.
That's a great thing that I'm surprised other DEs don't do. Works really well for file downloads too. It makes intuitive sense and the fact that finished state is retained in notification history is such a helpful thing that genuinely improves user experience for someone with such a poor working memory as mine that it's really weird to see someone calling it weird.
Why do you think it's not practical? That's what Plasma offers already and I'm using it often.
Even if for the sake of argument we accept that Gnome/GTK’s UI choices are poor, the consistency across applications elevates the overall experience.
If, for example, you disagree with the placement of buttons, you know that all the GTK buttons will have the button in the same place which greatly reduces cognitive load.
The same is, unfortunately, not true of other Linux UI kits.
This is vehemently untrue. You know that all GNOME applications will have the buttons in the same place (GNOME writes their own HID) but GTK doesn't have an HID. GTK is simply a GUI toolkit, I can put my topbar at the bottom of my window if I want. It's not 'correct' but I can still do it and ship my application.
GIMP still doesn't have stable release out with GTK3. Inkscape took a long time. I bet both will have great trouble in the future. It seems we're moving towards GTK apps being either core GNOME (maintained as paid work by Red Hat) or trivial little apps like on mobile (either simple to port or just short-lived). Everything else will slowly die out.
With phones, it's always been easier to reach the bottom. This is why tab bars have always been at the bottom. This is why soft keyboards have always been at the bottom. This is why Apple moved Safari's controls to the bottom by default.
Do you hold your phone from the top, with the bottom ending unsupported and hanging out? And if so, why?
Obvious downsides: if you loosen your grip then the phone will fall to the ground; you can’t reach the on screen keyboard.
The _original_ iPhone is tiny by today's standards. It's 15% shorter than a current iPhone SE, with a relatively huge chin. At that point the top corner is where the thumb is when it's straight up.
https://www.phonearena.com/phones/size/Apple-iPhone-SE-2022,...
The idea back then was maybe to separate the confirm action from other actions located at the bottom bar.
Human Interface Guidelines changed a lot as Apple changed the iPhone form factor. But with a 3.5", most of the screen is "uniformly" reachable and the bottom is slight less reachable as you usually need to flex the thumb.
Maybe I’m an outlier, but it’s been over a year and I still don’t like how in accessible the top and bottom of the screen on my 13 mini are for one handed use. I swipe to text one handed, but pressing the numbers its emoji button requires serious contortion and dexterity. Maybe the fact that I tend to use my left hand (despite being a righty) contributes to this.
Anyone else agree?
If you use your phone one-handed often enough, iOS Reachability works pretty well: https://support.apple.com/en-ca/guide/iphone/iph145eba8e9/io...
Read the second section, labeled "Thumbs vs Touchscreens", which shows the sweet spot for accessing content via left or right thumb or both. The lower corner closest to the base of the thumb is hard to reach. Unless the user was using both thumbs, placing target UI in one of those corners would hurt one-handed users.
Also note which areas are labeled as HARD to reach for either/both thumbs - the location where GTK4 has placed the main buttons in the File Chooser dialog.
I’d love to watch an eye tracking study of it in use.
Making Confirm/Cancel buttons this way makes no sense. I'll assume they added this just because it looks cool, as someone mentioned as well.
Of course, laptops used with their builtin display and keyboard are a usability disaster already, so that shouldn’t be a criterion.
Is it decision from GTK or XFCE team ? I almost put the blame on XFCE team for this, :-(
Can app devs who use GTK library overwrite this style?
I swear that my initial reading of the title was "74 Decades Later", and I smiled because it fitted the feeling of how late this addition is arriving. Then I realized it'd be a bit strange that they used this kind of snarky sarcasm on their own blog, and had to re-read again the title.
Also,
> This is the culmination of more than a decade of work, and was only made possible by GTK4’s complete rewrite ...
read to me as
> this (lack of an essential and basic UI feature) was only caused by the typical "let's rewrite everything" movement that started more than a decade ago
I know HNers are very sceptical of the technical merits (or their lack thereof) that ground-up rewrites usually have. I only hope in some years, GTK 5 or 6 doesn't decide to trash all this work and starts from scratch again.
Regardless, my congratulations to the people who pushed through and contributed their effort to make thumbnails back!
The whole "we needed to rewrite everything" is complete nonsense anyway. There are THREE patches posted on the issue tracker over a period of more than 10 years. They work well, too; people have maintained out-of-tree patches for this (IIRC there's even an AUR package for it in Arch Linux).
GTK developers simply chose to ignore this. They explicitly solicited patches in that issue and then ignored those patches. Not "this patch needs work", just nothing. I get that reviewing patches is work too, but you can't solicit patches for an often-requested feature and then just ignore them. Well, you can, obviously, but it makes you an asshole. When a few years later someone pointed out the latest patch on GitLab it got shot down with a shitty snide "we're not going to look at random patches" comment and had the topic lock (it was on the old/now-deprecated BugZilla).
But hey, got to have some historical revisionism to justify your shitty toxic behaviour towards volunteers and users.
I feel pretty salty about it. Don't say patches welcome if they're not, and don't apply selective burdens of evidence in favour of including a particular change.
Some of them have huge egos and are stubborn as anything. If something wasn't their idea originally it can be a real uphill battle regardless of how sensible it is. Convince them it was their idea and suddenly the gates are open.
Anyway, good thing we all have a wealth of choices. If you don’t like Gnome, there’s a huge universe of choices available to you! Long live OSS.
They are talking about it on a sibling comment: https://news.ycombinator.com/item?id=34027754
Do you feel that the crowded title bar design decisions are aesthetically pleasing and usable? (would really like to know the opinion on these topics from users that like how it's been done, instead of users who hate it, for a change)
It’s obviously not for everyone, but I like it. I also appreciate the focus and the way they cut out features that add complexity and inconsistency to the UI. So, I’m general, I’m a fan. It’s not perfect, but I like it a whole lot.
Less features means less to maintain (which is important for an open source, free product).
Until AlphaCode can maintain a codebase as large as gnome, we should probably keeping the workload of open source devs as small as possible.
Just please dont take away tree view...
At least Microsoft, Apple and Google have the market share, and economic incentives to justify putting up with rewrites.
I like the fat title bar with controls. It's like the Windows 7/macOS aesthetic without wasting space for a title bar above it.
To me, the people complaining that the save button should be on the bottom instead of the top have the same limited view as the people who complain that macOS has the window controls on the top left instead of the top right. It's an arbitrary difference that they claim goes against human intuition but I have seen no proof of any of that, only assumptions based on what direction they read in.
I don't use the save button, I hit enter after typing a name. I don't hit the open button, I double click. Maybe that makes me weird, but I think the "problem" is grossly overstated.
Seems to me like some people just want to go back to the GNOME2 days and that's fine. I may think it looks janky and outdated, but that's what some people like.
Luckily, they don't need to use modern GNOME, there are projects out there that replicate the older design style. I don't see what constantly harping on the newer UI adds if you're not going to be happy with it anyway. Unlike with Windows, where I sorely miss the glory days of Windows Aero, there are alternatives one click of a button away. Just install something else, anything else. KDE and LXDE allow you to recreate your weird old setup with some tweaking, go use that.
However, I do have some problems with the way the GNOME team operates sometimes. There have been attempts to address the file picker problem that went absolutely nowhere. The decision to completely abandon all styling options also disappointed me. The unreasonable demand of forcing client side decorations onto everyone because of their preference annoys me greatly. I like the stuff made for GNOME on GNOME but I wouldn't use it on any other desktop environment or operating system because the "let's do everything ourselves" approach makes applications look incredibly out of place.
Of course, the constant ranting about any change that doesn't turn GNOME back into GNOME2 only drives forward the segregation between devs and their users. After all, if nothing GNOME does is ever any good according to the loud minority, why even bother listening to them?
The most used Linux distros out there are Debian, Fedora and Ubuntu, all of which ship GNOME out of the box. There's a good reason for that.
For example replacing a desktop wallpaper with a solid color required manual config changes. Even Windows 95 let me do this from the GUI. Removing the wallpaper is useful for VNC connections for example.
If only the usability was as good as the visual design...
Like one of the screenshots has in the title bar a looking glass, three tabs, a check mark in a circle, a hamburger, and the close button. What am I even looking at?
A 2-D array of lit pixels. Any other interpretation is on you!
But Microsoft never got the memo.
Not only that but Fitt's law is dying as mice become less and less used as a means to interact with a device. Touchpads and touchscreens have usurped them.
And I do not get what a global menu bar has to do with window switching and monitor switching. Tiling WM fans all know that focus-follows-mouse is saner than alt-tabbing like a maniac, and this doesn't invalidate the role of a global menu-bar.
I miss notifications on my work computer all the time because the flash color just doesn't stand out very much with my dark theme, and I can't even expand the width because...well it feels like they released an unfinished and unpolished product, again.
I hate that there's trade-offs that shouldn't need to exist with every new version.
Meanwhile my mac I don't think has ever lost functionality or customizability in the last..8ish years I've been using it as my daily driver.
edit: caveat...this is a work computer and obviously has group policies/etc that might affect things. I will correct this post if I'm wrong :)
Except that's not what Windows does. Just about every app has a different place where you can find the menu (if there is one). Looking at a couple Microsoft apps on Windows 11:
- File Explorer: menu in an ellipsis in the toolbar; toolbar is left aligned so the ellipsis menu is in the middle of the window for a reasonably wide window.
- Edge: menu in an ellipsis to the right of the address bar.
- Windows Terminal: menu in a tiny down-facing caret next to the new tab button.
- regedit: Old-style menu under the title bar.
- Office: you know the ribbons.
There is a genuine tradeoff here. Global menu bars are easier targets and waste less space. Per-window menu bars are more clearly bound to their window. Neither approach is better on all counts.
(I’m not really the target market for any of these things, to be clear, gimme the screen space back and don’t make me touch the mouse).
To make matters worse, I have progressive lenses and the "sweet spot" for the text to be in focus within my field of view is relatively narrow. So not only would I have to move my mouse quite a bit if I had a global menu, I have to move my head quite a bit as well.
I think Fitt's Law is something like Moore's Law: both couldn't be counted on to go on indefinitely.
Fortunately for me, I use KDE and could switch between the two if I wanted.
There are extensions to add one to GNOME and XFCE, and KDE has it as a built in option, which is great. Problem is, this feature relies on programs advertising their menus via dbus, and a lot of them don’t bother at all, meaning that it’s sitting up there blank half the time. The only reason that this is even possible is because the desktop paradigm moved menus into the space of the app UI, which I think is a mistake. Menus are such an important accessibility feature that even if they’re glued to windows, it should be a standardized system owned widget so overzealous IKEA-minded designers can’t screw with them.
This is very frustrating to me because with hamburger menus and window attached menus I feel like I’m chasing a frequently used widget around the screen.
Menu bars are terrible! Visually navigating a tree structure via mousing is a nightmare, especially if the whole thing disappears or radically shifts if you mouse a few pixels off. Visually scanning huge, variable chunks of the screen is inefficient, awkward, and a burden.
Everything that you can do with those nasty, collapsible visual hierarchies can be done way more efficiently and way more accessibly via a nice search interface with fuzzy filtering and autocompletion.
When it's actually fast and unencumbered by bullshit like advertisements, something like Spotlight or the modern Windows start search is infinitely better than crap like the Windows 9x start menu.
If you've ever coached someone through navigating a graphical, hierarchical menu they've never seen before, you know how painfully slow all that mental processing actually is. Even a hunt and peck typist will be faster in most cases, as all they have to type is at most a handful of letters. Menu bars suck in the exact same way, and they ought to be either eliminated or replaced in the same way as ye olde start menu, too.
EDIT: I think the best option is taking the golden middle road and having a menu bar which can be searched through, kind of like Unity has.
Yes! I've been a KDE person since like KDE 3.4, but I gave Unity a chance in its heyday and I absolutely loved it for that feature.
Discoverability with a search interface can be improved by adding a visual representation of search categories or common search terms, and an old-school hierarchical menu can do just fine for that. (I think a different kind of menu might be better for discovery, though. You could do a more search/filtering-oriented descent of the same hierarchy, and enrich the menu entries being filtered with documentation and previews.)
Discoverability of search interfaces can also be improved with by tagging things with synonyms and descriptions, so that users can search by task instead of the app's canonical names for functions.
Edit: this is something that can be fixed but it requires well funded attention and there just isn’t that because the commercial opportunity is entirely on the server.
I mean I'm sitting there earlier having a shit and I shout at my watch to add some more toilet paper to the shopping list. This is now on all my devices including the one I take shopping. If this was on Linux I'd have to crawl back to my desktop, write it on that, then export it when I went shopping. Everything is just that much more difficult and disjointed.
The whole experience leaves me somewhere around 2008. I can't find any real advantages over my gnome2 desktop in 2008. It stopped being usable then for me.
Linux has become what its good at, which is a container target and server platform. As a desktop it hasn't even caught up with the 2010's yet...
I genuinely think they're better suited to it.
Linux on the desktop failed to retain me because of feature stagnation (and reliability issues which are quite frankly not there on other platforms)
They were kind of half-close to the Linux servers I work with, but I needed to use homebrew to make them useable. Why can't Apple get a decent cli environment going?
The GUI stuff just pissed me off. I want to arrange some windows the way I want. I don't actually like tiling window managers, but after using macos I thought it was possibly the only way to make it properly useful.
Keyboards: well, everyone knows about how they fucked that up. The new ones are much better. I like the Mx hardware and when Asahi is fully up to speed, my next personal laptop might well be one of those.
I have no issues with macOS UI as such. It takes about 6-9 months to get used to it though coming from anything else. When you get there it actually makes sense. I've seen a lot of Windows converts expect everything to be windows-like but it's more NextSTEP than windows.
> One of the reasons is to enable new features. Such as a grid view for the file chooser. It only took us 18 years! You can see the original feature request in Bugzilla. This is easily possible now because GtkListView and GtkGridView can use the same data models.
This is exactly why I do not use GNOME. Absolute insanity.
An application can consistently be made using the same primitives that are flexible, themable, performant, etc.
It is actually really nice.
Today you are rendering to a 4k display (8 million pixels) and every consumer device has a general purpose GPU that is really high performance at specific rendering tasks.
So in many cases, certainly not all, GTK 2 code using Cairo to render will perform worse than GTK 4 using OpenGL even when implementing the same features. Admittedly GTK 4 does use this overhead to do "fancier" things like animations and CSS but these aren't super complex tasks on a GPU.
In my personal experience GTK 4 feels very fast and snappy, clearly more so than GTK 3 was. However I don't use GTK 2 applications to compare.
Gtk-classic is the only thing that keeps me sane https://github.com/lah7/gtk3-classic
that and not having consistent ctrl+L hotkey to open the dialog that lets you access/enter a full path of a folder
- Those who want to bring about The Year Of The Linux Desktop and believe this can be brought about by removing every remotely complicated feature under the sun.
- Those who think the only purpose of GUIs is to display multiple terminals side by side.
I can't figure out how my workflow is that different from other linux users or if I'm just part of the silent majority. Literally all I ask of my DE is:
- the super+search thing i mentioned above - run the following programs fullscreen: terminator, intellij, pycharm, vscodium, firefox
And... that's just it. Oh wait, one more thing:
- make video, wifi, audio, multiple monitors etc just work
It's in service of that last one that I've been pretty happy with Gnome 3 the whole time it's been out. None of their shuffles or excisions have interrupted my workflow, so I don't mind it at all.
Honestly, I think the latest version of gnome-screenshot that has been directly integrated into the DE is amazing.
KDE, GNOME, etc. usually don't only consist of an app launcher, but a file browser, text editor, archive manager, browser, image viewer and who knows what else.
I never understood this tribalism, doesn't the spirit of open source mean that I'm free to choose the tools of my liking, may the best tool win, etc.?
This certainly the case on Windows, where people usually just replace tools to their liking.
Most distros usually strongly push the desktop environment's native apps for every niche.
In my experience the only tribalism is people (in this thread as well) hating on several projects for God knows what reason.
I've talked to the Gtk devs about this and they say that 3 is will not be fixed, ever. They won't even accept patches because gtk/gtk/gtkfilechooserwidget.c is so cursed.
they seem to have simply removed the gradients and it just looks half baked with only flat colours
- The applications-places-system menu. As said in other post the other day, it was so clever to have all the stuff in your computer categorized in those three categories. You knew at first sight, even if you've never ever used GNOME2 before, where to send your mouse when reaching something, it wasn't a guess game like in Mac or that cram-everything-in-one-button like the Windows start menu - not to talk about the 'moving around your mouse through the whole screen to launch an app' like GNOME3/4 itself.
- Clearlooks was the pinnacle of theming in Linux. Easily readable/scanneable and beautiful by default, 'themeable' up to the tiniest detail with a readable CSS-like syntax (I'm fuzzy on the details but seem to recall it wasn't a feature exclusive of Clearlooks). I concede Adwaita inherited visual inspiration from Clearlooks, but now with GNOME4 they decided to ditch it altogether. For some reason.
- Technological aspects aside which I won't talk about because you people know much more than me on that, but restricting the user to customize their GNOME install was an double-edge sword they seem didn't thought much through. GNOME2 had an almost perfect balance between simplicity and customization capabilities; whereas with GNOME3 upwards it is up to devs decide many things (and it seems those decisions are based much on their criteria rather than their users...). That brought the unfortunate consequence of frustrating users with every unexpected change with releases, something didn't happened with GNOME2 (or maybe even before than that).
I really appreciate team GNOME's commitment to wayland, but outside of that, they have released a completely unfinished product which pales in comparison to the feature set of its previous incarnation.
Look at GTK1: https://gtk-gnutella.sourceforge.net/images/shots/092/gnutel...
It looks good. Sharp fonts, good use of space, clearly recognizable widgets, application doesn't treat users like idiots.
What do we have now? Fuzzy-ass fonts (except on phones where DPI>400), huge margins, barely recognizable widgets, GNOME applications written for people in comas.
Mac OS X Server/Rhapsody v, where they basically mixed NeXTSTEP and Mac OS 9, and early Mac OS X releases (before brushes metal) were also nice. All downhill from there… now get off my lawn! ;)
So many modern UIs are so damn space inefficient. Drives me mad. It’s like designers think everyone is an 80yo with Parkinson’s and bad eyes. Massive screen waste; white space everywhere; blah blah.
I hates it.
People just don't because, well its not very usable.
Way too many random vertical and horizontal lines going everywhere. A mix of text way too close to other controls right next to whitespace controls. Outlines intersecting with the text they're highlighting when there's plenty of space around them. Drag&drop bars that attract way too much attention with how textured they are.
I personally like the modern, simpler designs better. The aesthetic of late 90s UI were great but their designs were often a hodgepodge of whatever control the developers could fit onto the screen, with resize bars placed to let the user overcome the crammed design on demand.
I don't know what your working system looks like, but my fonts aren't fuzzy. The margins are visually pleasing and the widgets are quite intuitive because they're used consistently.
Feel free to go back to the old ways with Chicago 95 and LXDE. It's not exactly Windows 95, but it's pretty damn close. But please don't bring back the jank of overcrammed late 90s UI design, you'll only scare people away.
I find modern UIs much more aesthetically pleasing than that GTK1 pic, by far.
I hate to be the person who just complains about Gnome, but… a few years ago, you could type into the file chooser, and it would search, quickly, for matching files and folders and display them. Then it broke and didn’t get fixed for years. Once it got fixed, you see matches, but if you actually try to select a matching folder, you hit really hilariously bad bugs that wouldn’t pass the briefest test.
Maybe Gnome could focus on getting old functionality working?
And, ironically, touch support is currently broken, too.
Another sample: https://www.youtube.com/watch?v=HDrZluH4mww.
but since fedora 37 scrolling is totally busted... think it only occurs on x (which i use over wayland for a dozen reasons). its pretty brutal tbh, scrolling is kind of... fundamental.
That bug is probably similarly old as this one.
The most annoying thing these days is how they're all different. I just want one (and honestly, I'd love it to be my hacky fzf solution, but again, modular)
This is not the technical problem, that's for sure. Maybe GNOME finally got a real UX expert from IBM :)
I had few talks about it with GNOME devs, they said mostly "this is not a problem!" , "go fix it yourself!" and "we're volunteers, pay us". Most of it was in aggressive manner, just like in Trump supporters community.
Glad I'm done with GNOME for now.
I still think this should have happened 10 years ago at least tough.