Everyone is a Linux user, but almost no one knows it. The operating system is a strange beast. You’d be hard pressed to come up with another tool so widely used, so widely deployed, and so absolutely necessary to the functioning of the modern world that is simultaneously so utterly unknown outside the tech community.
From ATMs, to phones, to in flight displays, to the Web server your browser got this page from, we are all using Linux every day even if we don’t all realize it. Yet even with that ubiquity, there’s one place Linux has never really succeeded: the desktop. Despite passionate communities of users (as seen in place like Ars comment threads), Windows and macOS dominate the desktop and that’s unlikely to change in the near term. Though if it ever does, it will likely be because of projects like elementary OS—an operating system that seeks to bring the polish of commercial desktops to the world of Linux.
elementary OS began life over a decade ago as a set of icons. (Yes, seriously.) If ever there was a group of developers who started at the bottom and worked their way up to the top, it’s Daniel Foré and the rest of today’s elementary OS team. From a set of icons designed to improve the look of Ubuntu’s then GNOME 2 desktop, the elementary project expanded to include some custom apps, including a fork of the default GNOME files app, Nautilus, called nautilus-elementary. As with most open source projects, the borrowing went both ways: Ubuntu’s Humanity theme was a fork of elementary OS’s icon set.
Over the years, the elementary project continued to grow and encompassed ever more apps and ever more customizations for the desktop. Eventually, things got to the point where it became more and more cumbersome for users to install everything. But there was enough momentum behind the project that Foré decided the logical thing to do was for the group to create their own distribution. The project took Ubuntu as a base and began layering in their custom apps, and the highly refined look and feel of elementary OS was born.
elementary OS (codename version Luna) launched in 2012 with considerable fanfare thanks to its revolutionary idea of asking users to pay for it. Unfortunately for elementary OS, a blog post about the pay-what-you-want model initially rubbed a lot of people in the Linux community the wrong way. Most of the kerfuffle was not about the money, but rather the wording of the post, which essentially called non-paying users thieves.
When I spoke with Foré, he was quick to point out how little experience the team had with PR at the time (he clearly regretted the post). It was poorly worded, but as with all things in Linux, it was something of a tempest in a teapot even at the time and it’s well behind the project at this point. I bring it up not to revisit the controversy, but because the funding model elementary OS established early on has succeeded.
Today, elementary OS is a bootstrapped business with quite a few full time employees. It’s not Canonical by any means, but it is self-sustaining and it has a model for how to continue sustaining itself, which is more than a lot of open source projects can say. If I were an open source project heavily dependent on contributions from Red Hat employees, I might right about now have a closer look at how elementary OS’s funding model works. (Of course, the elementary OS model doesn’t necessarily work at the scale of Red Hat, but it doesn’t have to in order to sustain elementary OS.)
In fact, elementary OS’ funding model works so well that the project has extended it to developers in its app store as the latest elementary OS iteration—version 5, code-named Juno—has rolled out. For interested users, there are currently quite a few apps specifically targeting the elementary OS desktop. And within the elementary app store, every developer can set a price that they feel is fair as users still ultimately decide what they want to pay, down to and including nothing. Juno may represent the easiest and most sustainable way for the uninitiated to finally wade into the Linux waters.
elementary OS 5 Juno
For a bit of logistics, elementary OS Juno should be version .5, following the previous release, .4 or Loki. However, since .5 implies incomplete and elementary OS is more or less complete (in terms of stability certainly) ,the project is calling this release elementary OS 5.
Whatever the version number may be, one thing is for sure: there’s ton of new stuff in Juno. Enough features, in fact, that the release notes, written by elementary OS’s Cassidy James Blaede, are an impressive John Sircusa-style essay of some 8,000 words. If you want to know everything that’s new, Blaede’s notes are worth a read. If you want to know what it’s like to actually use all that stuff, read on.
Before getting started, Linux users wanting to try elementary OS should be forewarned: it doesn’t work very well in a virtual machine. I installed it, but it was very slow. According to Foré, it’s an upstream problem. GTK requires hardware acceleration for animations, which does not currently work in Virtualbox. That may change soon, though. One of the big lessons Canonical has learned from collecting hardware metrics is that Ubuntu ends up in virtual machines a lot, so improvements are apparently in the works. That will help downstream distros like elementary OS, as well as others like Linux Mint Cinnamon edition (which also runs poorly in a virtual machine).
In the mean time, to get an accurate sense of performance, you’ll need to install elementary OS. The Juno installer is a thinly skinned version of Ubuntu’s Ubiquity Installer, which means you can easily install elementary OS alongside your existing OS just as you would Ubuntu. The installer is perfectly functional, but it doesn’t really convey elementary OS’s unique look and feel, which is why there’s a new installer in the works. That’s a collaboration between elementary OS and System76 (creators of PopOS), and it will be, I assume, what you’ll see installing future versions of PopOS as well. The new installer isn’t ready for Juno though, so for now you’ll have to make do with the Ubiquity installer.
elementary OS was plenty snappy on my Lenovo x240 (i5 with 8GB of RAM), but I also installed it on a brand new Dell XPS 13 where it really shined. elementary OS’s theme, typography, and icons all looked really nice on the XPS’s HiDPI screen. My only gripe is that elementary OS’s scaling is either 1X or 2X, and there’s no in-between. My preference on the XPS would be more like 1.5X, but as far as I know only the KDE and Cinnamon desktops support incremental scaling without command line fiddling.
Once you’ve got elementary OS installed and you reboot, you’ll be greeted by the Pantheon desktop. While Pantheon is based on GNOME, it’s very much its own thing. Like GNOME, Pantheon has a top menu bar, but it functions very differently in that it’s never used for application menus (something GNOME is getting rid of as well). Instead the top bar in elementary OS is a global bar—it never changes. The top bar shows the date and time in the middle, status notifications, a power menu, settings for audio, power, and wireless to the right and an application launcher to the left.
elementary OS also sports a dock-style app launcher along the bottom of the screen that is, well, somewhat macOS-ish. elementary OS has taken some flack over the years for being heavily macOS-inspired and it does have some element of macOS—the dock, a column view in Files (which KDE used to offer as well), and, perhaps more than anything else an obsession with details. elementary OS clearly sweats the small stuff, paying careful attention to typography, icon design, color use, shading, and so on, which ends up creating a kind of feel that’s perhaps reminiscent of macOS. Having played with elementary OS since version .2, I would say the macOS influence has been declining with every new release and I really don’t see it at all in Juno, beyond the use of the dock.
Another possible reason some users find elementary OS to be macOS-like is that it lacks the level of customization many Linux desktops offer. There’s really no way to change the look and feel of elementary OS, and little way to customize the behavior of its default apps. It’s a take it or leave it operating system—you either like it or you don’t, and if you don’t you’re better off using something else than trying to tweak elementary OS to suit your whims.
So, elementary OS is not a Linux desktop in the traditional sense. Rather it’s an operating system in the same sense that Windows and macOS are.
That said, you can make certain customizations without too much trouble. For example, elementary OS puts the windows close button on the left, which, for me, messes with 25 years of muscle memory. There’s no setting to change this in elementary OS, but since GNOME is under the hood you can use
gsettings to change the button layout. In other words, little adjustments are possible, but I’d suggest staying away from the tweak apps.
Juno ships with the ability to remap the Super key. By default it brings up a list keyboard shortcuts (mostly inherited from GNOME), but you can set it to open the main menu. Combined with the ability to immediately search by typing, this turns the main menu into an application launcher as well.
Juno doesn’t make any sweeping changes to the basic look and feel that elementary OS has been working with for some time. It’s made some refinements and given third-party developers some much-improved guidelines and a new color palette, but most of the work in Juno has come into the complement of tightly integrated applications that ship with elementary OS.
Unlike most GNOME-based distros, elementary OS does not ship with the usual slew of GNOME applications. Instead, you’ll get elementary OS’s own versions of the same. In this release that means Files, a terminal app, Photos, Noise (music player), Code (previously known as Scratch), and then a few outside apps like the Epiphany Web browser and the Geary mail client.
For the most part, elementary OS’s homegrown apps are quite capable, though again, there’s a notable lack of customization available. The Terminal app, for instance, offers three color schemes and not much else in way of preferences. It also, by default, uses
ctrl-v for paste and
ctrl-c for copy, which is annoying if you’re used to
ctrl-c killing a process. Since there’s no preferences for Terminal, there’s no way to fix this beyond installing a more powerful terminal like rxvt-unicode.