As I pointed out elsewhere, I spent a couple of weeks participating in the elementaryOS 5 Linux Community Challenge. Started by a writer at forbes.com, the idea was plain and simple: Go with elementaryOS Juno for two weeks, and use it mostly out of the box. No tweaks, no configuration, and software exclusively from the elementary app store and core repositories, no additional repositories. To cut things short: It was fun, and so far stayed on elementaryOS on my day-to-day work laptop. There surely are a few things I learnt all along the way however…
Before you get started.
I’ve been looking into and dealing with elementary once in a while for several years now and always was a bit torn about what the project does. On one side, enforcing a very concise and strict idea of how the Linux desktop should look like feels a bit like opposing many of the core Linux and Unix ideas which in the essence seem all about tweaking and modifying even the very last bits to perfectly suit your needs. On the other side however, all this flexibility comes at the price of, in a lot of cases requiring quite some configuration to adapt things to your needs, which in turns requires you to have a clear idea of what your needs and requirements are. It’s important to accept that a lot of effort put into elementaryOS is not about building new software but about right this coming up with a well-crafted, well-thought-out default setup and workflow that is concise and makes sense once you’re willing to adapt it. And of course, this willingness apparently depends upon how good (or bad) this default workflow matches your needs and how difficult adapting to the default workflow is. Maybe there’s a future model for Linux distributions in that too: Less focussed on “catering to all needs”, and more focussed on providing working environments that do things as good as possible just for a certain group of users. To cut this short: Unlike looking at some of the mainstream distributions which hardly differ in more than just nuances there’s a good chance to very much like or very much dislike elementaryOS.
Where does it shine: Desktop
If I was supposed to comment elementaryOS in one statement, before as well as after being through that challenge, it possibly would be: “This is the most visually appealing Linux desktop I’ve ever seen.” And I mean it. Virtually every aspect of the system is polished with an astounding love for the details: Fonts, color schemes, icons, animations and so forth. There’s that title bar that is translucent most of the time but turns black as soon as a window is maximized. There’s that easy-on dock showing applications, making it easy to work with open applications and their various windows as well with favorites (by “keeping” apps in the dock). There are nice little things such as a notification if something happens in a terminal somewhere on your screen. There are notifications for many other things as well as an easy-on, working “do not disturb” toggle in the top bar. And there are incredibly simple and obvious things I never managed to get to work on GNOME or KDE that work out of the box with elementaryOS (such as setting a desktop background for an individual user and make sure it’s also used for the lock and login screen of your system). There’s that battery icon in the top bar which, if so, also lists applications that are excessively consuming energy. There are polished dialog windows for things such sudo (asking for password for administrative access) or doing screenshots (including the ability to “blur” text in screenshots by default). Talking about the default desktop, I could go on for ages writing about things that seem totally minor yet, in the end, make up something that does look and feel like a product crafted with care and quite a bit of enthusiasm. A lot of these things are compiled in the elementaryOS 5 release note here, including some screenshots to get an idea. What needs to be added, however: Unlike any other desktop, elementaryOS is one of the few environments where I just start over and feel very very little need to tweak the basic desktop settings. This surely is unique and something to get used to, mostly being conditioned and trained to do and focus on exactly this aspect of desktop usage.
On the other side, it should be noted elementaryOS offers a bunch of configuration items I haven’t yet found in other GNU/Linux distributions, in example the “Security and privacy” dialog that allows for setting system history cleanup, configuring access to location-based services or configuring the system firewall. Likewise, the integrated night mode is a neat thing (available on GNOME and other tools as well but just with extension).
Where does it shine: Money -> mouth.
There’s one thing making elementaryOS unique however, one reason that definitely makes me fancy and actually support the system a bit more: The pay-what-you-want app store. I have been into GNU/Linux ever since the mid-1990s, and “Software Libre” – “free as in free-speech, not as in free-beer” – always was one of the forces driving me here. Unfortunately, in most situations it seems “libre” in some ways assumes or enforces software to be “gratis” as well, which has a couple of difficult consequences, starting with the idea that a lot of even larger “Software Libre” projects often are funded and backed by large corporate entities, either by them pouring money directly into Software Libre products or by having developers working full-time for larger software or technology corporations building Software Libre in their spare time. I don’t want to go down that rabbit hole in full here, my personal bottom line these days is: In order to have a sustainable ecosystem of Software Libre and also Libre cloud services that aren’t controlled and funded by advertisements and user data tracking, we need to find a way to also fund Software Libre development in a sustainable way, which possibly might be giving up on the idea of everything being “gratis”. elementaryOS offers approaches to solve this.
For one, downloading the ISO on the project website asks you to not “download” but actually to “buy” it. It’s possible to set the price to $0 and download it for free but that’s a conscious decision you have to make, and it’s definitely different to every other GNU/Linux distribution you get as a download today. The other side is the app store, called AppCenter, containing both the “standard” applications and packages found in the base system repositories (elementaryOS builds on top of Ubuntu 18.04) and a set of applications in the elementary repositories. While each of them are “pay-what-you-want”, some of them come with a suggested price and encourage users to pay for them. You always are allowed to set that to 0 too, but again it is a conscious decision to claim something someone might depend upon in order to be able to make it for free. Very personally speaking: I like this idea very very much. The last couple of years using Android, I have made very positive experiences communicating with a lot of independent app developers whose software I use, and most of those have been very helpful and supportive. I’d really love to see an ecosystem of developers that could afford to work on high quality Software Libre, so this very aspect in itself seems more than enough to support and use elementary wherever possible. After all: Quite some of us tend to repeatedly claim that Libre is more important than “gratis” when it comes to software. elementary is one of the few options where, right now, we can put our money where our mouths are and show we’re also willing and ready to support independent Libre software development even when it’s not mostly backed by a big commercial vendor or a network service that refunds in other non-free ways.
Where does it shine: Daily drivers.
Speaking of apps: Noting this might sound a bit strange, given, hey, it’s a Linux desktop after all so why do apps explicitly built for elementary matter? Two reasons: At first, the elementary team, way more than even the GNOME folks, has taken good care of giving developers guidelines how a “good” elementary-aware app should look like. I’m perfectly aware that this is a double-edged sword. A lot of developers especially in the FLOSS community seem not very willing to be “forced” to adopt things they don’t agree with, especially if these things are guidelines on how human interfaces should be designed (https://elementary.io/de/docs/human-interface-guidelines#design-philosophy – which is extremely extensive) or how code should be styled (https://elementary.io/de/docs/code/reference#code-style – which is a very interesting issue to argue about even in paid teams supposed to work together in a meaningful way).
Of course, too, a lot of the freedom especially talking about user interface design, navigation, choice of colors, … pretty much adds to the fact that a lot of the Linux desktop even in 2019 still often looks like an inconsistent mess, and the knowledge required to change this isn’t necessarily part of a developers skill set. The elementary people apparently do have both skills and vision to do pursue this in a way that could even succeed. They do so both by providing documentation and a bunch of default applications adhering to these concepts and outlining the vision they want the project to take. Everything – Mail, Web, Photos, Calendar and so forth – that is installed out of the box looks, feels, behaves in a very similar way. All of these applications seem to drive the minimalism even to be found in most GNOME applications even further. And, very much to my surprise, even just after a few days of playing with them, I found that (despite the minimalism) I didn’t really find features I missed in most of these applications.
Less shiny parts.
Even despite this extensive list of praise, elementary surely isn’t perfect. Actually there are things you might want to consider when dealing with it, and some actually might be more of an issue than others. In my particular case:
- Mail doesn’t work at all with our corporate IMAP server. This is the biggest annoyance I found, given that elementary Mail truly is a beautiful and lightweight app and I’d really enjoy using it but can’t.
- There’s a bug with some laptops that prevents the system from handling multiple displays the way it’s supposed to be. That is something that can easily be worked around but it is a bit annoying nevertheless.
- On my old HP laptop, there apparently was a sensor detecting device rotation – which caused elementary to rotate the screen whenever I moved the device. Not what you want on a device without a touchscreen, unfortunately I didn’t find a real way how to disable this altogether. This is not a problem anymore with my current device, so I’m done here.
- Another really small and at times annoying thing: Having the screen locked, the window to enter the password to unlock isn’t automatically focused all the time so you need to move mouse there and click to enter your password. Again no big deal but something that bugs you then and now.
- The AppCenter (which I have been praising at length above) as well as the download of the ISO surely can be paid – but so far only using a credit card which isn’t an option to me so far as I don’t own one. There are options to support the project as well as app developers using PayPal and individual Donate links in some cases, but this makes it way less easy than doing so right from the AppCenter or download page.
There’s one more substantial issue but this is both hard to overcome and not something elementary could be blamed for, yet it is there for sure: Integration of “non-elementary” Linux apps just works so/so. Example: The theme the elementary guys crafted for the GTK widget toolkit is really beautiful for the elementary apps but in some situations it causes other Linux applications to be rather ugly. This is especially difficult in cases where you need some applications for which there’s no functional alternative in elementary – in my case this mostly are heavyweight applications such as Eclipse or NetBeans for Java development, or remmina as remote desktop client. Maybe, in some ways, this is the only real fear I have about elementary – that it adds to the “fragmentation” of the GNU/Linux desktop by introducing yet another “flavor” of apps that only work well on exactly one desktop environment, while at the same time being unable to come up with “elementary-compatible” replacements for all the apps people might require (including long-term GNU/Linux desktop applications such as Gimp, Inkscape, …). We’ll see where this is moving.
Minimized windows and system tray
At least to me, this is not much of an issue, but looking at the communications during the elementary Challenge (and also some of the reviews written about elementary in the past), it definitely seems so for some people: As with many other things, elementary has very clear ideas how window management should happen too. This includes there’s no “minimize window” button in the window title bar, and neither is there a “programmable” system tray area to keep icons of applications running in the background, such as certain messengers or synchronization clients.
I’m unsure about this. Personally, I don’t see missing either of these functions as a real problem. The elementary way of working with “minimized” windows was something I managed to do, something that felt comfortable within a couple of days. The system tray, however, is more difficult. Again (as above) this isn’t something elementary is to blame for, but the design decision causes problems for certain use cases. For me, are applications such as KeepassXC, the NextCloud sync client or certain messengers. Some of these applications behave in “strange” and different ways. NextCloud Client, in example, doesn’t seem to allow “hiding” the window but keeps running in the background even when the window is gone. Telegram, too, keeps running no matter whether the window is hidden or closed. KeepassXC, on the other side, or my current SIP client, allows for hiding the window but will end the application itself when window is “closed”. With the system tray setup, this was more “concise”: Click icon to make the app window appear, click icon again to make it disappear. It just keeps running.
This is a difficult thing. GNOME already tried removing system tray icons (which on GNOME however didn’t last long because a bunch of default gnome-shell extensions popping up and adding more or less exactly this, like TopIcons). elementary does a bit better here, but these things still could be a bit improved I guess. Again, this is by no means the fault of elementary, but elementary (same as any other GNU/Linux desktop) has the painful task of somehow dealing with this in a meaningful way, even worse so assuming at least some users have a clear expectation how the world works, here.
In my opinion, it all depends, as always. There’s a certain point to which, obviously, user expectations are valid, but likewise there need to be options to consciously break with given old expectations, especially assuming that, as time passes, the amount of people “socialized” with things such as old system tray icons will decrease. Likewise I hope distributions such as elementary will make this a less painful process with each iteration to come.
Apps, deviations, missing links
The challenge, apparently, was about going with elementary default settings and apps as far as somewhat possible. There are some situations, however, in which I had to deviate from that path in order to make day-to-day work possible. This mostly relates to applications installed:
- I ultimately moved back to Thunderbird instead of Elementary Mail, for reasons outlined above.
- Likewise, Firefox replaced the Elementary Browser (epiphany). I kept the Browser around and try using it then and now, but not as my default as there are quite some use cases (REST client plugin, script blocking, general compatibility to certain pages I frequently use, tab handling, …) that aren’t working as expected in epiphany.
- The Terminal emulator shipped with elementary got mostly replaced by tilix. I don’t really feel too happy about that especially because, this way, I lose the ability to “open in terminal” in the elementary File Manager, but I pretty quickly got addicted to tilix’ feature of being able to split windows horizontally / vertically. Tried emulating this by using tmux or screen inside the elementary Terminal but it just felt like a clumsy workaround to what tilix does out of the box.
Asides that, there is quite a bunch of elementary apps I used, both pre-installed and installed from the app store:
- The apps for file management and image handling are pretty usable and robust, there’s nothing negative I can say about these (except maybe being able to use a different terminal in “open with” in the file manager, see above).
- Code, the elementary text editor, also is a pretty solid application that doesn’t compare to IDEs or tools such as Atom or Visual Studio Code but it soundly beats both gedit and the default KDE editors in terms of usability. The same actually goes for the Calendar app which feels just like GNOME Calendar with a more sane and straightforward way of adding external calendar sources.
- After playing with a lot of chunky, mostly electron-based tools for that purpose, Quilter appeared to be the best markdown editor for the Linux desktop I found to date.
- AppEditor, name says it all, is a tool for editing the elementary start menu. Not much to say here, works and does a good job.
- vServer allows to temporarily expose a certain Linux disk folder via HTTP, in example for accessing files from your smartphone or another computer. Just like what we used to use thttpd before, from the command line, but vServer integrates way better with a graphical desktop. One of these small apps that make sense and solve a very narrow use case in a very pleasant way.
- Planner is quite a nice local tool for managing tasks and projects. I see another interesting aspect here that might seem worth noting: Given a lot of the elementary apps are rather minimal, it seems way easier, too, for “external” people interested in the projects to also in some way contribute things back. Planner, in example, is my first-ever public contribution to a project on github in terms of adding a German translation. Maybe this way, it also would help getting more people into quickly fixing minor issues and generally increasing quality of applications available.
- Vocal is quite a good client for consuming podcasts on the elementary desktop and works rather well, not much more to be said about that.
In some niches, I’d really like to see more applications that integrate well with the elementary desktop in the future. Most notably, things I miss are:
- SIP client. Yes. I mean it. I’m supposed to use a desktop soft phone for internal telephony communications, and so far I learnt that all (no exception) applications available on GNU/Linux suck, for different reasons. So far I use blink, which works but also isn’t really fun at all, not integrated with elementary and suffers from the usual “background / system tray” problem very much. Having a good, lightweight SIP client really would be helpful.
- Remote desktop navigation. Mostly I use either remmina or vinagre. Both do have peculiarities of their own. Remmina is the least worst in terms of features but at least looks quite a bit ugly on elementary, and it’s somewhat heavy.
- Useful integration of kdeconnect. This is an extremely helpful tool for linking Android devices to the GNU/Linux desktop in order to mirror notifications and clipboards, send text between messages, see incoming calls on your desktop, and a bunch more. GNOME has gsconnect for this purpose which easily beats even the native initial implementation on top of KDE at very least in terms of usability. There are ways to use kdeconnect on non-KDE desktops, but none of them really works or leaves one with a pleasant user experience.
What to make of this?
So, final conclusions and sort of a personal verdict, after using elementary for two weeks and counting: It’s been a fun ride so far, and I still am pretty happy using elementary in my day-to-day workflows. There have been some rough edges but most of them were resolved after getting used to the system while working with it for a couple of days. I noticed I spent way less time on tinkering with and configuring in my system, and ended up having more time for working and getting things done using my computer. There are some things absent in the system settings compared to GNOME or even KDE, but I never stumbled across any setting I really missed.
I’ve been enthusiastic about GNU/Linux distributions before more than just once and yet used to move between distributions more than once as well, so not sure how long this will hold true, but so far I feel pretty pleased working with elementary and am pretty determined to stay. It’s in the best possible way an “opinionated” distribution, has a very strong idea of what is right and how things should be, and this way it is likely to polarize. If tinkering with your desktop environment and configuring everything to the very last setting is something you can’t live without, you should possibly stay away from elementary. If you’re looking for a distribution that looks and feels extremely well out of the box, pays attention to small details and is possibly even likely to impress your Windows or Apple using pals, or if you just want a reasonably lightweight distribution that still doesn’t go lightweight at the price of usability or appearance, chances are you might be pretty happy with elementary Juno.