Hammers Without Handles

12 min read Original article ↗

Inspired by LinusTechTip's latest Linux Daily Driver Challenge, I wanted to take a moment and talk about Linux UX because, let's face it... it sucks.

Actually, it's worse than that. Much of Linux's UX is technically correct and that makes it objectively wrong.

Like it or not, Windows is the dominant operating system. And it's not even close. That means when we're having a conversation about designing a User Experience on Linux-based operating systems, that conversation must be bookended by "how do Windows users expect this to work?" And we need to design for that or else everything falls apart.

When I (as a Linux user, FOSS advocate, UI/UX designer, and avowed Microsoft hater) suggest this, I get scoffs from the darkest, most anonymous corners of the web:

"This Microslop shill wants to Windoze-ify Guh-Nooo plus Linucks!!"

No. I don't want Linux to be more Windows-like. But I do want the most common Linux desktops to behave in a way that PC-literate folks can wrap their mind around — and do so from minute zero.

Our goal should be to extend the opportunity to daily-drive – and enjoy the benefits of – FOSS to every living soul. But if we expect all those Linux-curious adventurers to throw away their decades of hard-earned PC experience? Then that goal becomes moot.

Nowhere have our collective Linux UX issues been illustrated more vividly – or more publicly – than in LTT's Linux Challenge video.

I'll call your attention to two significant moments to underscore my point.


UX Failure #1: Network Drives

The first was when the participants were tasked with exporting a file to a network drive.

Many Windows users understand the concept of mounting filesystems, despite what some of the more elitist Lunix crowd might say. Indeed, I have many friends who mount Samba shares as a specific drive letter. They know this. I have even done this on my Windows workstations so Emily and I can edit videos from our network shares.

And, in the video, Elijah knows that he needs to do this with his network share. Yet, there's no obvious way to do so. Not in the Dolphin File Manager, not in the settings. Elijah [spoiler alert] ended up failing this task.

Linus, on the other hand, first tried putting the path of the SMB share into the render dialog's path field. This didn't work. It complained about not supporting that specific scheme. Which is kinda helpful?

(But not really... since he was trying to input an smb:// address and it was still giving him an error)

So he ended up solving this issue by searching the repo and installing a random app. Basically just trying something and seeing if it would work. And to his credit, he managed to get the job done... but only after fighting with some oddly-titled inputs and despite our UX's best efforts to thwart him.

The Fix

Adding a simple context menu option (or even a tab in the file properties modal) for network shares that provides some kind of mounting wizard.

Ideally, it would help you:

  1. Install any missing dependencies
  2. Decide if you're mounting this share for yourself or for all users
  3. Help you configure credentials and provide advanced options
  4. Create the mountpoint on your local filesystem
  5. Add the mount point to /etc/fstab

That's really it. And I don't feel like that's much to ask. But...

The Noise Bregade

They'll say that this would violate the Linux way. They'll lazily lean on the tired argument that "each program should only do one thing." (And they're technically correct on that... but we'll get to that in a minute.)

For example. They'll say a file manager should be about managing files and that's it. They'll argue that adding such features would just be contributing "Windows bloat" to their preferred desktop. They might even go so far as to say that "if this feature gets added to KDE/GNOME, I'll switch to another desktop wear a t-shirt that says "f*ck systemd in protest fork the desktop and revert the changes in order to keep things debloated and unwoke-ified bitch and moan incessantly."

But, here in the real world, Dolphin and Nautilus (GNOME's file manager) support multiple file protocols including SMB, FTP, MTP, PTP, WebDAV, NFS, and many others. Adding a simple wizard that can assist users to mount their remote files would be a good thing. In fact, the wizard could even let you set automount parameters for removeable media. This is also a PITA task that still lacks a readily-available GUI on Linux.

And, while we're in the real world, it should be noted that when a Windows user encounters a roadblock like this during their first Linux experience — one that feels insurmountable and like there's no obvious path forward? Their options become:

  1. Continue to bash their head against the wall until they figure out some solution, OR;
  2. Return to the comfort and familiarity of Windows.

Call me crazy, but I feel like our priority should be to minimize the temptation of option two as much as humanly possible.

What's even worse is when something critical to their workflow like this – something that prevents them from using their PC they way they expect to have used their PC in the past – option 2 becomes their only way of solving the issue.

Option 2 is not an example of PEBCAK. No. In fact, the Lunix user's impulse to blame user error has become increasingly distateful to me in my old age.

We'll talk about that more in a minute...


UX Failure #2: GNOME Disks

The failure of GNOME's Disks application is embarrassing. To me, this is an example of when being technically correct is objectively wrong.

Linus and Elijah are both the kind of guys who understand how filesystems work. Yet, Disks' poor communication and its technically correct workflows failed them both.

Why do I keep saying "technically correct?" Well, my reaction to their video elicited many comments like this:

"Disks" workflow actually makes the most sense for the average user. You initialize the disk first with MBR/GPT, then create your partitions on top of that.
Disks is intuitive. You delete the partition, you create new partition, then you format the partition. Done. Easy, simple, intutitive.

These comments above are technically correct. Yeah. If you want to reformat a disk, you've gotta first delete the existing partition table, create a new partition table, and then allocate the raw space as a formatted partition.

I know this. I called it out in my reaction. It's still a confusing as shit UX. Why? Well, answer this question:

When on God's green earth would someone want to delete the partition table and not immediately create a new partition?

Sure, it's possible. I can think of at least one reason someone might want to do that. But will the average person – the kind of person who needs a GUI to do this kind of task – ever need to do steps one and two and not step three??

No! I'd argue not.

So why then does Disks' default workflow let the user complete steps one and two, and then leave it up to the user to initiate step three? It makes literally zero sense.

This tripped up Elijah (who went on to install Gparted and had a second UX completely fail him).

But an oft-overlooked moment in the video (mere seconds beforehand) showed Disks' UX fail Linus in the exact 👏 same 👏 way.

And despite my decades of experience and my understanding of the three-step disk partition process... it even tripped me up.

The Noise Brigade

They say that this is user error. And this isn't my theoretical expectation of what Lunix users would say, either. This is an excerpt from a real comment I actually received on my reaction video:

You probably shouldn't mess with partitions if you're unsure about partition schemes to be honest; it's a "must know" kind of knowledge. That's the actual issue here. UX-wise it's fine, and works like it actually should.
God. My blood is boiling at this level of arrogant gatekeeping bullshit.

I shouldn't have to explain how wrongheaded this comment is. But I will. I mean, it wouldn't be much more absurd to argue "you shouldn't be allowed to setup a NAS in your home if you can't describe the OSI model."

Nor would it be crazier to say "you shouldn't use a hard drive if you don't understand the quantum processes that enable storing a magnetic potential on the drive's platters."

My brother in Christ, all you need to know is that your disk is free of important data. That's literally it.

You don't need to understand the subtleties of a GUID Partition Table versus a Master Boot Record.

Nor must you understand the history of how PC DOS 2.0 for the IBM PC cemented MBR as the standard for literally decades. Or how or why MBR was superseded by GPT. It's literally irrelevant.

And you know what else you shouldn't explicitly need to know in order to reformat a drive using Disks? You shouldn't need to know that this utility requires two independent interactions to properly format a disk. First the erasure and creation of a new partition table and, second, a new partition.

UI Failure: Honorable Mention

Furthermore, the creation of the new partition is similarly borked. My experience with this process caused a not insignificant amount of confusion. Why? Labels.

Once I had gotten through the partition table bullshit and finished reformatting the disk, after I had realized I needed to click the + button, and once I'd moved past selecting my partition size, I was presented with this whopper of a screen:

GNOME Disks' "Format Volume" screen
Do you see the problem? I'll wait.

The problem is the default is FAT32. "But Gardiner! How can that be a problem if the challenge is to format a drive in FAT32?!?"

Well, GNOME Disks isn't going to tell you what version of FAT it's about to use. Here, it's labeled as FAT. Not FAT32. Just FAT.

I don't know about you, but FAT is not in any way, shape, or form a useful label. In fact, for anyone who knows a little bit about filesystems, it's a deeply confusing label.

You might be wondering how I even know that FAT == FAT32. Well, that's because in my confusion I clicked the "Other" option. Then, I was presented with this screen:

GNOME Disks' "Custom Format" dialog
Feel free to study the above screenshot for a moment.

You can see that there are other filesystems supported by the Disks utility beyond the Ext4, NTFS, and FAT offerings of the previous screen. Here, we can see a number of Linux-specific filesystems as well as exFAT.

So through a big of tautology... or... idk... assuming that this application was quite possibly made by a sane person and that they wouldn't have two entries for exFAT on concurrent screens while not having FAT32 as an option, I decided to click back to the previous screen, select FAT and yolo this thing.

And with the aid of the process of elimination (and a deep, existential need for the manmade world around me to make sense) wouldn't you know, it worked!

While it worked for me, though, that's not where Elijah's UX nightmare ended. Don't even get me started on how neither GTK nor KDE Plasma panicked when buttons failed to display their labels... nor offered any sensible fallbacks nor defaulted to displaying the tooltip's values. This was inexcusable. But I already ranted at length about this. So I'll spare you another diatribe.


Hammers without handles

These folks are victims of undertested (or sometimes even un-designed) User Experiences.

Sure, Linux is cool, and open source, and free. But that doesn't mean bad or non-existent UX gets a pass.

"Oh but users expectations are subjective." Yeah. That's why we need to test.

And we're up against Microsoft's warchest. They invest millions of dollars every single year in order to test user expectations against their own software.

MS doesn't blame the user when they get confused by a GUI or become intimidated by a command line interface. Microsoft's not afraid to admit when a UX isn't working and rebuild it from the ground up.

We have the benefit of their work, though. We can reverse engineer how they build stuff and just copy it. It's how Microsoft beat Apple in the desktop space, after all.

Instead, what were doing here in the FOSS world is building free hammers... and when someone asks why they'd want one of our free hammers when it is just the hammer head and which lacks a handle, we tell them to make their own handle... And they'll need to drill a hole for the handle themselves.

Then we ridicule the folks who prefer to pay for non-free hammers that come with handles.

We demand they just get used to doing things in our handle-free way.

We demonstrate that our handle-free hammers have all the same functionality as their handled brotheren. We dual wield two hammer heads, one in each hand, hold one up to a nail and then and bash the other into it. We call it a good enough – maybe even a better – solution.

But it's not.

As a FOSS community, our common goal is to build cool things – not just hammers, but an entire toolbox – that keep us free and respect our rights as computer users. But if we're building things that most people find clunky, or that subvert the mental models that they've developed over decades of PC usage, or that render their proverbial muscle memory moot, or that become an impediment to their daily usage rather than a boon? Then we're building cool shit that nobody uses.

Hammers without handles.

This isn't a boy's club for the elite hax0rz. This is a movement that declares software must respect the rights of all end users.

If your mom and your grandson can't figure out how to use this software from the moment they boot up Linux on their PC, then privacy and all the other benefits of FOSS aren't a right, they're a privilege.

The only solution, at least in my humble opinion, is to take a critical and self-effacing look at all UX in the FOSS world.

LTT's video is proof positive we can do so much better.

And, if we give a shit about the rights of end users, we have no choice but to do better.


Gardiner Bryant

About the Author:

Gardiner Bryant

I'm an educator, free software advocate, and storyteller. My passion lies in Linux gaming, self-hosting, the fediverse, and the human stories behind the tech we use every day. I believe in privacy, justice, community, and integrity.