elementary OS 5 Juno released today - Visual tour of the OS & apps and my first impressions
elementary OS 5 "Juno" has been released today, an Open Source Linux based operating system that is beautifully designed and quite different to other Linux distributions. You can download it here.
What is elementary OS?
Arch Linux and Ubuntu have been my longtime favorite Linux distributions, but since I'm also a huge fan of macOS, elementary OS which looks slightly similar has always interested me. Not just the design has intrigued me, but also the fact that it tries to do something special that most other Linux distributions don't.
In a way, it tries to create an operating system that is so polished and easy to use with apps tailor made for it, that you don't even know that you're using a Linux anymore. The Ubuntu repository of apps is used at the moment, specifically the Bionic Beaver (18.04) version of Ubuntu, but that is basically just the bootstrapping phase, the idea is to slowly replace the usual Linux apps with elementary OS apps so that it really becomes an entirely separate operating system that just shares the use of the Linux kernel with other Linux distributions.
Linux tends to be an incoherent mess of applications written in different languages, using different GUI toolkits, using different human interface guidelines and so on (now don't get angry, I'm saying that with much love! Linux is awesome). It's amazing for power users and developers, but for the average person the diversity of the Linux ecosystem means they will be confused and stay confused and probably move on to something else (namely Windows or macOS) quickly. elementary OS goes the macOS route, everything follows the same design principles, everything works the same, everything is coherent. About one third of people downloading elementary OS are Windows or Mac users, not Linux users, so it appeals a lot to people who want to try Linux.
They have an app store (called App Center) as well where you can buy these tailor made elementary OS applications, but you decide how much you want to pay if you don't like the developer's suggestion and you can always drop the price down completely to zero, so you can get all the apps for free. That's also how downloading elementary OS Itself works, it comes with a suggested price of $10, but you can decide to give $5, $25 or a custom amount (including free).
Making money with Open Source has always been more of a dream than reality. It has gotten a bit better, but it's still only a tiny minority of projects that get the funding they deserve. Even super popular projects often barely get any donations, so it's always interesting to see new approaches to give something back to developers who sacrifice so much of their time to bring us Open Source software.
elementary is really the combination of trying to develop a Linux based operating system that is both easier for users and app developers to work with than Linux usually is. Distributing apps on Linux is a pain, let's be real. There are hundreds of different distributions, dozens of package management systems, your app could have bugs specific to any of those distributions... Snap, Flatpak and AppImage help with some of these issues, but not all. In short, it's a nightmare, so the elementary approach is interesting for developers as well, they can concentrate on making their apps work on just one platform.
Trying to be different always leads to controversy and there have been a few when it comes to elementary, some people love to hate on it. elementary tries to do things differently, maybe their ideas are a mistake, but what would we gain from yet another 08/15 Linux distro? We've got hundreds of those already. With elementary trying something drastically different in the Linux world, we as the Linux community gain something from them trying that out, even if they should ultimately fail with their vision (not that there is any indication of that, since today was already the fifth major release of elementary).
🆕 New features in Juno
elementary OS Juno, named after an ancient roman goddess (and the sister of Jupiter, which was the name of the first elementary OS release, all elementary OS releases are named after gods, the last one was Loki) brings a bunch of new features to the table aside from extensive updates to the applications it comes with out of the box, and of course the underlying Ubuntu which is now using the Bionic Beaver Long Term Release, version 18.04.
This is not a complete list of everything that is new, just the highlights, I encourage you to check out the very in-depth medium article elementary published today that goes into a lot of details.
💡 Night Light
Night Light is a feature that has become popular in other operating systems and Linux distributions lately, now elementary has it too. It automatically reduces the amount of blue light during the late hours of the day, makes the colors warmer, which allegedly minimizes the stress put on your eyes and makes you less exhausted. I can't say if it actually does that since I'm no doctor, but it does feel more comfortable after you've gotten used to it, so I like it.
Adjustable Window Tiling
You could already move windows to the edges of the screen in elementary OS Loki to put two windows side by side easily, each taking up 50% of the screen width, but now in Juno you can even resize the width of one of the windows, and the other will follow suit.
⌨ Shortcuts
Press the super key on your keyboard to bring up a nice little help screen showing you all of the keyboard shortcuts in elementary OS.
🖼 PIP (Picture in Picture)
If you press Super + f
your mouse cursor turns into a target reticle that you can use to either select a window by clicking or to drag a rectangle around an area. The selected area will then be displayed in a little preview window in the bottom left of your screen that stays always on top and can be resized or dragged around.
You can use it to keep watching a video while you do something else, or if you have to wait for an installation to finish and you want to keep an eye on the progress bar, this is a simple way to do that. It might sound like a gimmick at first, but try it out, it's actually super useful.
Quick toggles in the menubar
You can middle-click on any icon in the menu bar that has a toggle switch to quickly toggle that switch without having to open the menu first. A middle click on the sound icon for example mutes the sound.
Emoji
elementary OS 5 comes with full-color emoji support out of the box (Noto Color Emoji) and to make using them easy, an Emoji keyboard is integrated into the system so you can right click and choose "Insert Emoji" on or use Ctrl + ;
in any native text input control and the keyboard opens up.
A visual tour of elementary OS Juno
Pantheon
Pantheon is elementary OS's desktop environment, it consists of a special elementary OS GTK3 theme and the apps Greeter (LightDM login screen), WingPanel (menubar at the top with indicators), Slingshot (app menu), Plank (app dock at the bottom), Switchboard (settings) and Gala, a window manager based on Mutter as an alternative to Compiz.
💾 Apps
elementary OS comes with a number of apps out of the box, that are either made from scratch just for elementary OS or in some cases are forks of Open Source apps made to better integrate with elementary OS. Photos for example is a fork of Shotwell.
App Center
App Center is elementary OS's app store. It's divided into two tabs, the store part and an update section where you can install updates for the operating system and the installed apps.
The store listings themself are also divided into two categories, elementary OS apps (called curated apps) and other apps, those that come from Ubuntu.
Calculator
Calendar
Camera
Code
Originally based on Scratch, Code is turning into a little Vala IDE. It even has an integrated terminal that you can enable in the settings in the plugin section.
Files
Photos
Originally based on Shotwell.
Terminal
Originally based on Geary.
Music
Screenshot
System Settings
Videos
There are over 100 elementary OS apps in the App Center, some of the highlights that I've got installed myself:
Bookworm
A very simple ebook reader, can't compare with Calibre of course.
Eddy
Eddy lets you install .deb packages, elementary doesn't come with a way to install the files out of the box.
Image Burner
A super easy to use app to copy ISOs to a thumb drive.
Image Optimizer
Notes Up
Note taking app using Markdown formatting
Quilter
A Markdown writing app that is distraction free and can simulate a typewriter.
Regex Tester
A handy tool for every developer.
Resizer
Screencast
Very simple screencasting app that works quite well, which is rarely the case on Linux. This might be more due to the window manager Gala than the app itself.
Snaptastic
The same as eddy, but for Snap packages instead of .deb files
Spice-Up
A presentation app, like Keynote or Powerpoint.
Tootle
A Mastodon (Open Source Twitter clone) client
A few non elementary apps I recommend installing:
Gnome Usage
elementary OS doesn't come with a system monitor, but there is one in the repository called Gnome Usage, or just Usage when it's installed. It's part of the official Gnome project and is Gtk3 based so it fits really well into the theme of elementary OS. It's well designed and simple and also has a disk usage analyzer integrated that helps you see where all of your drive's storage has gone.
Podcasts
There is a quite popular Podcast app for elementary called Vocal, but at the time of writing this it wasn't available for Juno, so I tried out another GTK3 podcast app plainly called Podcasts, give it a try, it's super simple but works fine.
🔨 Developing apps for elementary OS
elementary OS apps are preferably written in Vala which is an Object Oriented language that looks a lot like C# but compiles to C and is part of the Gnome project, so integrated very well with Gtk3 and therefore also elementary OS. It never gained much popularity and maybe that's why you are allowed to stay away from Vala and use any programming language you like, as long as the frontend is native Gtk3, so no Qt, web or JavaFX/Swing apps. The apps also have to follow human interface guidelines, much like the requirement Apple puts on apps in their app stores.
To try out what elementary OS development is like, I did start developing a little shell wrapper for the popular youtube-dl Python script that downloads videos from hundreds of websites.
The elementary OS website has a short but very easy to follow and well made tutorial that teaches you all you need to know to get started developing. I did try out Vala briefly about a decade ago, but I basically started from scratch and wrote this app in just five evenings.
After the tutorial, you will want to check out the Valadoc website (or install quickDocs and DevHelp from App Center), I also really recommend checking out the source code for all of the Vala apps elementary OS comes with, it's remarkably easy to get into and understand. I don't usually write C level code but I still found it quite easy to get into.
My own pet peeve here is the scarce amount of documentation, tutorials and screencasts, but that is to be expected. The Vala programming language isn't popular, it's been pretty much abandoned before elementary picked it up. As more people start getting into elementary development, I'm sure this situation will improve.
The app distribution process is not just way ahead of your typical Linux app distribution process, it probably also beats Windows and macOS, you don't need to buy a license (code signing key) to publish your app, you just put it on Github. Elementary's Houston CI (continues integration based on Travis CI) does the rest after checking you made no mistakes. At least that is my understanding, I haven't gone through the process myself yet, just read through the very thorough documentation and listened to a few podcasts where it's described.
From what I've heard, only 2% of paid apps downloaded from the App Center are actually paid for, most people don't pay for the software they use, so you won't be getting rich off developing for elementary OS any time soon, but again, that might improve with time, it's a great idea at the very least to help developers monetize their Open Source contributions.
📋 Review
I've been using the elementary OS Juno Beta 2 for a few days now, my opinion is going to be based on that. I will assume the few bugs I saw are fixed in the actual final release of Juno. Even if they aren't, I found the beta to be super stable, I don't think my opinion would have been any different if I had written this after using the final version of Juno because my opinion is extremely positive.
I'll "review" elementary OS in two parts. The operating system, and the elementary apps. I'll keep it short, and I won't give it a score because review scores are silly, I'll just give you my quick subjective opinion.
The operating system
The minimum requirements for elementary OS is 4 GB of RAM, but I'm running it on an Acer C720 Chromebook with just 2 GB RAM and a dual core 1.4 Ghz Intel processor, and it works beautifully.
I had Manjaro (Arch Linux) installed before with the lightweight Xfce desktop environment and elementary feels faster in general day to day use (I'm sure in very specific benchmarks Arch Linux would win hands down, but the overall speed is much more important to me). Pantheon and Gala, elementary's desktop environment and window manager respectively, are just really good and optimized I assume. So I can recommend trying it out if you have an under-powered system. It can't be too old though, elementary is 64 bit only and uses hardware accelerated graphics, so don't try it on your 10 year old computers.
elementary is by far the easiest to use Linux I know of. This is something you can give to your non-techie friends and family to get them a taste of Linux. But even as a developer who is used to Arch Linux I really like using it, like the simplicity of the system. I've decided to keep using it for a few months at least. I will eventually go back to Arch Linux I'm sure, I always do, but I've just fallen in love with elemetary OS for the moment, it just works and gets out of your way, I've felt a lot more productive on this operating system, so if you've never played around with any of the previous versions I recommend giving it a try.
The apps
Both the apps that come with elementary OS and those you can buy from the App Center are beautiful GTK3 apps but are very simplistic. They lack a lot of features, they just don't have the long development history of older Linux apps and the target audience isn't your typical Linux power user, but they are a joy to use and intuitive. The power users will quickly go back to their familiar Linux apps I'm sure, but for most people the elementary apps could be a big improvement to what you usually get on Linux. I don't think it's ever going to be the year of the Linux desktop, but I believe elementary OS is the first Linux that could actually succeed here, it's made for the mainstream not for typical Linux users and isn't afraid to try out things the current Linux community base is vehemently against. It tries to be more than a Linux distribution, it tries to be a completely new operating system. It's not there yet, but with every release it's getting closer.
Short side note: Please excuse the excessive use of emoji in this article, elementary comes with an emoji keyboard so I went a bit wild... :)
Some of the screenshots in this article are taken from the elementary OS 5 Juno press kit
🔗 Links
- Elementary OS website
- Developer Portal
- Simply elementary Podcast (awesome community podcast that often has the elementary developers as guests)