File pickers suck
Now, I would never go as far as to say Windows is better than GNU/Linux, but it still has the edge sometimes. Today I want to talk about one such case.
File pickers on GNU/Linux are the absolute worst. We've been able to write a new display protocol, Wayland but we somehow still can't have a file picker that doesn't lack basic features or even works for that matter.
This is not a minimalist nitpick. In fact what I'm really complaining about is the lack of basic features that people need. Okay, so let's say you have a Chromium tab open and a website you're on requires you to upload an image. Fine right? Now what if you don't know what the filename is?
On Windows, what you would probably do is click on a bunch of them, look at the image and see if it's the correct image in the preview pane. On GNU/Linux you cannot do this, because our file pickers are so crap and don't allow you to preview images. In fact, the only file picker I know of that supports this feature is Gimp, and that has a custom file picker that only Gimp uses. And it's clear why it has a custom file picker, it's because all the other file pickers are useless.
GTK file picker
This is what the GTK file picker looks like. GNOME and GTK has always had a minimalist design philosophy, not in terms of code or anything, but they've had simple UIs, just like Apple software. It's the Apple of the GNU/Linux space. There are multiple issues with this file picker, here are just a few:
- The aforementioned problem: Images don't have thumbnails, so you have no idea what you're uploading unless you know the filename.
- You cannot enter a path to a file. You can only see the parent directories.
- The pinned folders on the left are useless, and cannot be unpinned if those folders do not exist.
- You can't pin symlinks. This is massive problem for me at least, because I have ~/Screenshots, ~/Music, ~/Recordings and ~/Downloads symlinked to another drive.
Oh wait, you can enter a path to a file. You have to press
/ for it
to display. But when you press
/ the path to the current directory
will be removed. That is some awesome design right there.
QT file picker
Now, on the KDE side of things we have the QT picker. It looks a lot better. For one, it actually has a field for entering a path, which also shows the current directory. It has buttons for navigation and a "Filter" option. It also allows you to resize each pane, which is a basic feature that the GTK picker is lacking for some reason. A massive step in the right direction.
Only one small problem. Programs that use GTK, which are a lot of programs these days, including your web browser where you NEED a file picker that doesn't suck will still use the GTK file picker, which we've established sucks and is basically useless as a file picker.
This means you pretty much CAN'T escape the GTK file picker, because it's so tightly integrated with the whole GTK toolkit.
Windows was right
As you're surely aware of at this point, I use free software and I don't support nonfree software. However regardless, Windows does file pickers right. Everything positive I said about the QT file picker Windows has done for decades. It may be absolutely proprietary, but it is functional, something the GTK picker cannot say about itself.
You may notice some similarities between the Windows file picker and the QT file picker. Regardless, they're both functional and get the job done. You get a list of your files with image previews, both in the form of icons if you increase the icon size and in the form of the preview pane you can open up. The Windows file picker is actually even better though, because it actually displays EVERYTHING, rather than a few folders that you manually go out of your way to pin. It also works with shortcuts (basically symlinks) and handles drives too.
GTK and GNOME is about as useful as a painting. Cool to look at, but when you actually want to get stuff done, you're SOL. GNOME and GTK should take notes, quit designing a painting and instead think about what people ACTUALLY need out of their file pickers.
In the meantime, If you have a solution to this problem, please send me an email. In any case, that's it for me. Have a good day!