Make. It. Simple. Linux Desktop Usability — Part 2

probono
10 min readDec 9, 2017

--

More worrisome trends in my series (this article is part of a series about #LinuxUsability (part 1, part 2, part 3, part 4, part 5, part 6). Loss of discoverability, straightforward settings, consistent default buttons in dialog boxes, scroll bars. Is there a secret plan to cripple the desktop experience by infecting it with less suitable UX concepts invented for mobile phones?

The icons in the upper-right hand corner of the global menu bar

Since every desktop environment seemingly invents new terms for the same, established desktop concepts, I will describe these as “the icons in the upper-right hand corner of the global menu bar”.

WLAN

This is how you select a wireless network in XFCE (and macOS, for that matter):

Easy: Just two clicks needed to select a WLAN in Xubuntu 16.04

One click to see the available networks, a second click to select one. Easy! There is nothing to improve about this user experience, so why not leave it alone?

Look what Ubuntu has done in the 17.10 release:

First, click the icon in the menu bar. Second, click on “Networks”. Third, click on Select Network”. Fourth, click on one of the networks in the window. Fifth, click “Connect”. Five clicks instead of two plus an extra, unnecessary dialog box!

Cumbersome: Five clicks needed to select a WLAN in Ubuntu 17.10

A wireless network should be selectable with no more than two clicks, and when a password needs to be entered, three clicks (or two clicks and one Enter press).

Sound

See how straightforward it can be to adjust the volume?

Adjusting the volume in XFCE — simple, gets the job done without having to fiddle around

Why is it, then, that some Linux desktops make it so complicated?

Adjusting the volume in KDE Plasma — why is there more than one slider for playback? Hardly intuitive

Netrunner 17.03 has this:

Setting the output device per application in Netrunner 17.03

I am not sure whether I should find this cool or undiscoverable. How is one supposed to know that one is supposed to drag the application icon to the desired output device?

Selecting a device should not be more complicated than this:

Setting audio input and output devices in Mac OS X. Source: Cnet, Fair Use

The global volume should be changeable by no more than one slider for all applications, and the output device should be easily selectable for all applications at once.

Buttons

Default buttons

Ever since modern GUIs, the default, or “OK” button (the one you are supposed to click without thinking) has been at the lower-right corner of a dialog box, in order to make for a consistent user experience.

OK, except for Windows.

Windows default button in the “wrong” order

Now for some “real innovation”, look where GNOME placed the cancel and OK buttons:

Why are the cancel and default action buttons in the title bar of a window in GNOME 3? Source: https://blogs.gnome.org/mclasen/2014/03/21/dialogs-in-gtk-3-12/ License: Fair Use

So given the natural reading direction from top to bottom, you’d have to click “select” before you have read the text telling you what you are about to select. This is like waiting in the line of at a buffet where you have to get the plates from the other end of the buffet before you can get the food… and after getting the food, you go again to the other end to pay your bill.

But seemingly not even the GNOME developers were sure that this was a good idea, so they also have this variant:

Lack of consistency in GNOME 3 button placement. Source: https://blogs.gnome.org/mclasen/2014/03/21/dialogs-in-gtk-3-12/ License: Fair Use

Yay for consistency!

On the positive side though, the blue color of the default button makes it clearly stand out. But what is it about this tendency to make buttons not look like buttons anymore? Apple and Google, with their “flat” and “material” user interface make me want to “lick it” no more…

On the Linux desktop with its different development environments and desktop managers, we seem to have a complete mess and everyone thinks to outsmart everyone else by placing buttons wherever they like.

Let’s start by some “sane” examples:

XFCE file open dialog
Krita, a KDE application, running in XFCE

Then, there’s “interesting” ones:

Vertically aligned buttons in KDevelop file open dialog on XFCE
KDevelop on XFCE puts the “Yes” button on the right but defaults to the “Cancel” button instead of “Yes” in the file save warning dialog box. And what is the difference between “No” and “Cancel”? (I know, but average Joe might not.)

To the outright dangerous:

KDevelop on XFCE puts the “Save” button on the right but defaults to the “Save None” button instead of “Save” in another save warning dialog box
Kdenlive asks me to create something but has the default on the left-hand side and set to “No”. Is pressing “Yes” destructive here?

The default button should always be active by default, should be clearly visually distinguishable, should always be the data-preserving, non-destructive option or the option that you should select if you did not read the dialog box.

No “apply” buttons

In KDE Plasma (and basically just there) you still have to press an “apply” button before a changed setting takes effect. Not even KDE application are doing this anymore. So, pleeease, remove all “apply” buttons. Apple has done so over a decade ago, and so should do Linux desktops.

Changes should be effective immediately, without the user having to click “apply” first. In the case of dangerous actions, the user should be warned by a dialog box with “Cancel” being the default. Configuration changes should be easy to be reset to the defaults.

Checkboxes and radio buttons

Checkboxes and radio buttons also have served us well for the last 30 years, but all of a sudden designers seem to think it’s better to waste more screen estate and to use a non-clickable UI metaphor coming from mobile OSes on desktops for no good reason:

Slider elements in elementary OS 0.3

These elements are great for touch interfaces, where you slide the slider with a finger. But hey, this is the desktop, and we are operating it with a mouse or a touchpad. We just click or tap on stuff.

Checkboxes would be much more appropriate (and use less space):

Checkboxes and radio buttons should be used in desktop applications rather than sliders.

Scroll bars

Scroll bars also seem to be an art form that is increasingly forgotten. So please familiarize yourself again with how scrollbars are supposed to work (even though I guess no one needs the small buttons with the arrows anymore):

Even Apple is falling into the trap of hiding the scroll bars nowadays, making it impossible to see (without moving the mouse) whether more content is present in the window outside of the currently visible area.

Scroll bars should be permanently visible and large enough to be clicked on.

The dock

By now the dock should be an established user experience concept, and its workings should be well-understood. You would think. So why is it that it is seemingly still so hard for Linux desktop environments to come up with a Dock that does not fall behind the established expectations?

Don’t hide it

Discoverability is an established concept in user experience design. Every UX designer should know it. It basically says that users should have a chance to intuitively find features, rather than having to search for them.

Discoverability, in the context of product and interface design, is the degree of ease with which the user can find all the elements and features of a new system when they first encounter it.

Source: http://whatis.techtarget.com/definition/discoverability-in-UX-design

Some open source projects are well aware of the concept of discoverability, e.g., Audacity:

Discoverability should, you would assume, be especially true for central things like the dock.

Yet see what GNOME 3 does: It hides the dock away by default, and the user has to press a button with a nondescript icon to bring it up. After you click on something, it vanishes again. In the age of Full HD and 4K displays: why?

GNOME Shell. Source: Wikimedia (CC BY-SA 4.0)

This is called the “GNOME Shell” and apparently everyone seems to dislike it (including Red Hat), which is why both RHEL and Ubuntu ship their GNOME desktops with workarounds.

CentOS 7, which is based on GNOME, ships like this, for example:

CentOS 7 desktop without GNOME Shell

Reminds me of Windows, where Microsoft thought that tiles were a great idea but finally had to give in after a few releases and had to realize that tiles were not what users wanted.

Users should not have to press a button (like in GNOME 3) to find the dock by accident, it should always be in plain view.

Minimize, restore

A window can be minimized and restored by clicking on the icons in the dock. Until shortly, I assumed this to be common sense. Now, try what happens when you attempt this in Ubuntu 17.10. Nothing!

Unless you happen to know that you can use a cryptic terminal command to get it working.

gsettings set org.compiz.unityshell:/org/compiz/profiles/unity/plugins/unityshell/ launcher-minimize-window true

On newer versions, the command has changed to

gsettings set org.gnome.shell.extensions.dash-to-dock click-action 'minimize'

So much for discoverability.

Users should be able to minimize and restore windows by clicking on the icons in the dock.

Animation

When Mac OS X was designed, animation was used to make clear where stuff comes from and where it goes to. Watch this video with Cordell Ratzlaff:

We had this idea of a time-based operating system, where you would use not only the two dimensions of the screen, but also a third dimension — time.

Surprisingly few Linux desktops use animations to make the user interface easier to understand. Take the application launch animation that the Mac had since System 0.8.5 (1983) which showed that the application icon “opened up” into the application window when double-clicked.

Opening and closing animations in Mac System 7. Recorded from: Archive.org

This kind of animation usage to make things clear is still missing from most Linux desktops. Or take the pulsating Aqua default buttons in Mac OS X 10.0 (around 2000).

Pulsating default button in Mac OS X 10.2

Animations can make life easier when used in the right places.

According to Brian Merchant in “The One Device”, Bas Ording (who also created Dock magnification and kinetic scrolling in iOS) and Imran Chaudhri “worked on pulsating buttons, animated progress bars, and a glossy and transparent look that rejuvenated the the appeal of the Mac” (and that since has slowly been killed and replaced by the dull-looking “flat” stuff that seems to be the continuation of what was before Aqua).

Desktops should use animations to make the user interface easier to understand.

Double-clicking

(EDIT: Section added in January 2019.)

Here’s a basic thing.

You would think that double-clicking as well as dragging the mouse to select multiple items are well established concepts by now, and hence should not be messed with. But not even the most basic aspects of desktop UX seem to be sacrosanct anymore. Consider elementary OS who thought it would be a good idea to make single-click open things, rather than the true-and-proven double click.

How do you select a file now without opening it?

Ah right, they need those extra “checkmark” emblems for that that? No… as I was told,

The checkmark is used for indicating you’ve selected an item when you do multiple selection. You can uncheck it to unselect without unselecting the whole thing.

Except that it doesn’t work:

elementaryos-5.0-stable.20181016.iso: Tried 4 times, got 3 different results. First try, deselects one item. Second try, deselects everything. Fourth try, opens the file.

Does random things. What the heck?!

If you made it all the way to here and by now think that UX is all about sugar coating on top of the system and superficial eye candy or nitty-gritty details (which it sometimes is)— fear not: the next installment in this series will contain some really shocking shortcomings of modern desktop UX.

This article is part of a series (part 1, part 2, part 3, part 4, part 5, part 6) about #LinuxUsability.

probono is the founder and lead developer of the AppImage project. Screenshot editing was done using the same Krita AppImage working on different Linux Live ISOs (which was required to research and verify the contents of this article). Classic Mac System 7 screen recording was made using Peek AppImage on Linux using the Archive.org Mac emulator running in a web browser. WLAN selection was recorded using the Vokoscreen AppImage and edited using the Kdenlive AppImage.

--

--

probono

Author of #AppImage and contributor to hundreds of open source projects. #LinuxUsability, digital privacy, typography, computer history, software conservation