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:
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.
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)”
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:
- m4a : The default application (“Videos”) tells me that it requires additional plugins and asks me to “search for these” now:
- 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:
After a minute or so, it yields this net result:
No music is playing.
It then shows, for a while, this process bar:
After a minute or so, it yields this net result:
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
- 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”.
After clicking “find in Ubuntu Software”, this is what I see — without any futher explanation.
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.
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
- m4a: Opens in “Deepin Music” and plays immediately, without downloading additional codecs
- mp4: Opens in “Deepin Movie” and plays immediately, without downloading additional codecs
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:
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):
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.
probono is the founder and lead developer of the AppImage project.