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

probono
9 min readJan 4, 2018

--

How can we improve usability for Linux on the desktop? You have made your way through part 1, part 2, and part 3 to this article, you must really be interested in the usability flaws of the Linux desktop. Well, there is a seemingly never-ending stream of them.This time: Filesystems and media codecs.

Filesystems

The purpose of an operating system is to allow users run applications, and otherwise just stay in the background and do what is needed. A core functionality is dealing with files and filesystems. Yet some operating systems just don’t seem to care to make this easy for users. This is CentOS 7:

CentOS 7 Live ISO cannot mount a NTFS partition, giving a cryptic error message

It is exactly stuff like this that makes Linux “hard to use”, especially for newcomers. In contrast, Deepin Linux mounts NTFS partitions just fine, no issues at all.

NTFS partition mounted in Deepin Linux

Desktop Linux distributions should mount all filesystems commonly used on desktop and mobile operating systems, including NTFS, HFS, HFS+, apfs, FAT, exFAT, etc. — If they cannot mount a filesystem, they should give a clear error message explaining the user what to do, rather than a cryptic dialog box full of technical gibberish.

Proprietary hardware drivers

I get it. Some people do not want to use proprietary hardware drivers, and that is fine with me.

But what do you do if your screen flickers when you use the open source Broadcom wireless driver (as it does on many MacBooks)? Then you want a simple way to use the proprietary one, bwmcl without having to think about it. And this is just to illustrate the point, the same applies for NVidia and AMD and other types of drivers as well.

bwmcl works on the Deepin Live ISO out-of-the-box, but not on the Ubuntu Live ISO where you have to do:

sudo apt-get install bcmwl-kernel-source

Turns out that the driver in question is included in the bcmwl-kernel-source package on the “restricted” folder on the Ubuntu Live ISO, but this is mentioned nowhere and the system makes no attempt at “making it just work”.

Even worse, bcmwl-kernel-source package depends on the linux-headers packages — a running LiveCD/LiveUSB environment has these packages (allowing the wireless to work), but an installed system may not. Why don’t they offer a version that “just works” like on Deepin?

So here we have an example where Ubuntu is even shipping the proprietary driver, but in the most crippled way imaginable. Why? It can’t even be a copyright issue, since, after all, they are shipping the driver. They are just making it extra cumbersome to use. Took me only five years and a Deepin system to figure this out.

Distributions should offer an ISO with (and, if they like, another one without) proprietary drivers. In the version with proprietary drivers, these should be pre-installed and working right out of the box, without the need for any special knowledge, without fiddling around with source code, and without the need for a compiler and linux-headers packages.

Media codecs

When Apple introduced QuickTime, the concept of “time-based media” was still rather new in the desktop PC world. Fast forward today. Everyone listens to music in mp3 and m4a formats, and watches video in mp4. So as far as I am concerned, those are the formats that everyone has and uses, and every OS should play without making a fuss.

Yet, many Linux desktops make it exceedingly difficult.

Before we dive right in, a word about intellectual property rights like patents and licenses: These are never a good excuse for terrible user experience. If I have to pay for a license, fine, tell me where to enter that license code — but make the damn stuff work.

So, here’s the challenge: How do popular distributions treat the arguably most used time-based media formats, namely mp3, m4a, and mp4 out of the box — in the default browser and when files are double-clicked in the file manager? I will test 3 Linux desktops, and every desktop has 6 chances. I will rate whether it works out-of-the-box and if it doesn’t, whether it at least offered useful help (e.g., downloading additional codecs).

CentOS 7: Worst in class

In the default browser:

  • mp3: “Video can’t be played because the file is corrupt.” — Neither is mp3 “video” nor is it “corrupt”, nor does this message help the user in any way
  • m4a: Exactly the same result
  • mp4: The browser asks to open the video with “Videos (default)”
In CentOS 7, the default browser asks to open mp4 files with “Videos (default)”

When opened as a file:

  • mp3: Double-clicking the file opens “Rhythmbox”, but the mp3 is not visible inside it. Clicking the “play” button results in:
CentOS 7 dealing with mp3 files
  • m4a : The default application (“Videos”) tells me that it requires additional plugins and asks me to “search for these” now:
CentOS 7 cannot play m4a out of the box but offers to “search” for an “additional plugin”
  • mp4 : The default application (“Videos”) tells me that it requires additional plugins and asks me to “search for these” now:

It then shows, for a while, this process bar:

CentOS 7 “searching for plugins” to play m4a

After a minute or so, it yields this net result:

CentOS 7 showing a black window with no content despite having searched for an “additional plugin”

No music is playing.

CentOS 7 cannot play mp4 out of the box but offers to “search” for “additional plugins”

It then shows, for a while, this process bar:

CentOS 7 “searching for plugins” to play mp4

After a minute or so, it yields this net result:

CentOS 7 showing a black window with no content despite having searched for “additional plugins”

No video is playing.

In summary, CentOS 7 can play media in 0 out of 6 common cases, and it offers useful help on the rest in 0 cases. The worst possible score!

OK, CentOS 7 may be “old”, and it may be very conservative when it comes to codecs. But that is not an excuse for the bad user experience! On we go, with a very recent, very mainstream distribution.

Ubuntu 17.10: Not a tiny bit better

In the default browser:

  • mp3: Asks to be opened in “Videos (default)” — even though it is not a video
Ubuntu 17.10 asks to open mp3 files in “Videos (default)”
  • m4a: Exactly the same result
  • mp4: Exactly the same result

So, let’s open up those files in the default application:

  • mp3: Ubuntu says it is “unable to play the file” because “MPEG-1 Layer 3 (MP3) decoder is required” but not installed. It offers to “find in Ubuntu Software”.
Ubuntu 17.10 is unable to play MP3 out-of-the-box but offers to “find” the decoder in “Ubuntu Software”

After clicking “find in Ubuntu Software”, this is what I see — without any futher explanation.

Ubuntu 17.10 “unable to find requested software” while looking for a MP3 codec

At this point, this is a quite accurate representation of my mood using Linux on the desktop.

  • m4a: Exactly the same result
  • mp4: Exactly the same result

In summary, Ubuntu 17.10, too, can play media in 0 out of 6 common cases, and it offers useful help on the rest in 0 cases. The worst possible score!

I really couldn’t believe that this was the end of it, so I cheated a bit and entered on the Terminal:

sudo apt-get update

and tried again. No change!

While doing this, I inspected sources.list — it contains by default on ubuntu-17.10-desktop-amd64.iso:

deb cdrom:[Ubuntu 17.10 _Artful Aardvark_ - Release amd64 (20171018)]/ artful main restricted
deb http://archive.ubuntu.com/ubuntu/ artful main restricted
deb http://security.ubuntu.com/ubuntu/ artful-security main restricted
deb http://archive.ubuntu.com/ubuntu/ artful-updates main restricted

So even with the “restricted” stuff being there it can’t find codecs. Fail!

Just for the record, I could play all of these media files without a hitch using the VLC media player AppImage. Just one single file to download — plays virtually every media file without having to fiddle around with codecs — even much more exotic ones than mp3, m4a, and mp4.

VLC media player AppImage running on Ubuntu 17.10, playing all files immediately

Deepin Linux

Contrast this with Deepin Linux. I used deepin-15.5-amd64.iso.

In the default browser (Google Chrome):

  • mp3: Plays right in the browser immediately, without downloading additional codecs
  • m4a: Plays right in the browser immediately, without downloading additional codecs
  • mp4: Plays right in the browser immediately, without downloading additional codecs

When opened from a file:

  • mp3: Opens in “Deepin Music” and plays immediately, without downloading additional codecs
Deepin Music playing mp3 and m4a files without a hitch
  • m4a: Opens in “Deepin Music” and plays immediately, without downloading additional codecs
  • mp4: Opens in “Deepin Movie” and plays immediately, without downloading additional codecs
Deepin Movie playing mp4 file without a hitch

In summary, Deepin Linux can play media in 6 out of 6 common cases. The best possible score!

Linux desktops should play common media files such as mp3, m4a, and mp4 out of the box. One way to achieve this is to pre-install the VLC media player. If this is not possible for whatever legal or philosophical reasons, then they should at least offer useful help — or, if it is unavoidable — even ask for payment. But not just fail.

So far that’s just been the bare minimum. In terms of usability, we can do much better, as this application from China shows:

Netease Music Player on Deepin Linux

This music player not only finds music “somewhere” on the Internet, it also comes with nice animated lyrics, that match exactly to the position of the music played, complete with Chinese translations. I have no clue where the music nor the lyrics nor the translations come from… and I don’t want to advocate software with questionable content sources, but the usability of this thing — despite being Chinese only —easily exceeds most music players coming with distributions.

Printing

Setting up a new printer in macOS is literally automatic, as long as the printer advertises itself with Zeroconf (multicast DNS and DNS Service Discovery which practically all printers from at least the last decade or so do). Mac users know this under the name “Bonjour”.

Apple even made this an open standard and provides abundant reference implementations, yet setting up a new printer in Linux is still a never-ending source of frustration, with the user needing to fumble around with things like “HPLIP” (what is that? Not that I really want to have to know) and “AppSocket/JetDirect” (sounds like right out of the 90s):

Xubuntu 16.04. Printer “HP LaserJet 4100” shows up twice, each with two Connection options, making a total of 4 choices. Whereas on the Mac, it “just works” without further fiddling around. And has been for the last decade or so.

Even if practically every distribution is shipping Avahi (a Bonjour-compatible Zeroconf implementation) these days, the full power of Zeroconf to make people’s lives easier is not fully embraced yet by many Linux desktops.

Linux distributions should offer to set up printers advertising themselves on the network with Zeroconf without requesting additional information from the user. Overall, Linux desktops should embrace Zeroconf wherever possible to gather information from the network rather than asking the user for information.

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.

--

--

probono

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