Busting Major Myths Around elementary OS
The open source desktop landscape is complicated. There are many distros, many desktop environments, and so many things to know about each of them. We often see folks fall into some of the same pieces of misinformation when reporting on or commenting about elementary OS. So here’s a look at some of the major myths around elementary OS and what the actual facts are.
“elementary OS uses GNOME Shell”
This is a pretty easy mistake to make. GNOME has been around a long time and there are quite a few distros that just ship with a modified version of it. But, elementary OS ships with our own home-grown desktop environment called Pantheon. Just recently, Pantheon has been recognized in both the freedesktop.org menu specification and in AppStream.
Unlike GNOME Shell, Pantheon is made up of a number of individual components. The panel, window manager, and dock are all separate programs, as are many other small helper programs like the Polkit Agent which handles authentication dialogs. In GNOME Shell these are all part of a single monolithic program. We believe that our choice of architecture makes the desktop environment more robust and ensures that others are able to benefit from our work by remixing it into their own distributions.
“elementary OS is just a skin for Ubuntu”
It’s a common criticism among Ubuntu derivatives that the developers just add a desktop environment on top of Ubuntu, making it effectively a skin and not having a meaningful impact on the usage of the operating system as compared to Ubuntu. But elementary OS is far from a skin. We maintain Over 40 distinct open source projects. That includes our desktop environment Pantheon, 13 apps, libraries like Granite, daemons and agents for services like Parental Controls and Polkit, patches for upstream projects including unique configurations, a tool that puts all of that together into the final disk image, and then of course our stylesheet and icons which extend past the freedesktop.org specification and provide 3rd party developers with a more expansive set of assets than what comes with Ubuntu.
But it doesn’t stop with providing things on top of Ubuntu. elementary OS is not a remixed Ubuntu disk image. Instead, we build elementary OS images from metapackage seeds, just like Debian. This gives us the ability to tailor an experience that not only changes little things like showing password feedback asterisks in Terminal, but big things like using LibInput instead of xinput for better touchpad support.
“elementary OS is made to look like macOS”
It’s no secret that macOS has been a champion of design on the desktop for nearly 15 years now. Steve Jobs is quoted as saying, “We made the buttons on the screen look so good you’ll want to lick them”. So we can see where people are coming from. We’re also very careful and put a lot of effort into having great design in elementary OS. But you might be surprised to know that we have less in common with OS X than others would have you believe.
Pantheon was originally developed to be a successor to GNOME 2, the desktop environment that we shipped in the first version of elementary OS. Many of the decisions about the layout of the desktop come from that heritage, including an applications menu at the top left, indicators with a session menu at the top right, and a place to switch between apps and workspaces at the bottom of the display. The first few iterations of our desktop included multiple docks or panels in different styles, sizes, and positions, but in the end we kept a single dock at the bottom of the screen. While at first glance it might look similar to the one found in OS X, the behavior of our dock is quite different, especially with regards to our hide mode which doesn’t steal screen real estate away from apps while you’re working.
Some things you won’t find in elementary OS are the iconic “traffic light” window buttons or a global menu, something you will see in Ubuntu. We also have chosen to make much wider use of colorful iconography in a style derived from Tango!, which is quite different from both the hyper-real app icons and the flat symbolic toolbar icons you’ll see in macOS. We’ve avoided trends like translucency, extra gloss, and over-flatness and instead have opted to take a number of more timeless notes from things like Material design, emphasizing the use of light, shadow, and color to help break up an application’s layout and provide clarity.
“elementary just forks other apps and doesn’t write their own”
This myth is ever-so-partially based in truth; elementary does maintain two forked apps: Photos and Mail. However both of these apps were originally developed by Yorba (who has unfortunately closed up shop and ceased development) and Mail was designed in heavy collaboration with elementary. After some discussion with Jim Nelson, head of Yorba at the time, we felt it was better to continue developing these apps under a new name and vision. We’ve heard that recently some other developers have also adopted the original codebases and we can only remark that this means more choice for our users.
There are two other apps that might loosely qualify as forks: Files and Music. Both of these were originally developed for elementary OS, but the development team split over technical disagreements. In both cases, elementary gave up the original names to the developers who left.
On to the misconceptions! Switchboard (aka System Settings) is not a fork of GNOME Control Center. elementary maintains a compatibility layer that allows Control Center panes to be displayed, and we currently only ship 4 out of 22 of these by default. The major difference being that Switchboard is designed from the beginning to be extensible and modular, making it easier to reuse and re-mix in new fledgling desktop environments, but also that our Switchboard panes contain settings that are unique to our desktop environment and applications. We don’t need to carry extra external apps to supplement or deal with settings that don’t apply.
“elementary writes their own apps for no good reason”
We have a number of our own apps including: AppCenter, Calculator, Calendar, Camera, Scratch, Screenshot, Terminal, and Videos. For each of these apps, there are comparable solutions from other developers. We could just ship a collection of other folks’ apps with elementary OS. However, we have some pretty good reasons for not doing so.
First and foremost and most important to our users, elementary apps have features that the other apps don’t. Files has the column view and our smart pathbar. Terminal has backlog search, smart copy/paste, and until recently was the only Terminal app to support notifications. Scratch is built around auto saving. And, all of the aforementioned apps make use of Granite’s tab bar widget which gives them some free extra features like Undo Close Tab, Close Other Tab, and Duplicate Tab. Building our own apps using complex widgets from a common library means that our users can expect features to translate across all of our apps. Every app is also built to adhere to our Human Interface Guidelines. Using common design patterns means you can learn one app and that knowledge applies to other apps as well. It’s part of what makes elementary OS so easy to pick up for people new to it. Building our own apps also gives us the ability to create unique system features like Privacy Mode and gives us special insight into how to make a desktop environment and platform that makes it easier for third parties to develop powerful and feature-full apps.
But it’s also important to bear in mind that we don’t go our own way unless necessary. We make it a point to use and contribute back to standard libraries and avoid writing things that have already been written. And if one of our upstreams comes up with a better solution, we’re happy to retire our code in favor of it, a prime example being the several utilities and widgets that we’ve retired from Granite. We believe that having multiple implementations of a library makes sure that interests are diverse and the library will remain useful to more than just the original authors. We also recognize that development resources are scarce and precious. Focus is the key to success and it means saying “no” to time sinks.
“elementary OS is for noobs or dumbs down their apps”
I think this stems from the idea that features require complexity. It’s a cultural belief in poor design. But we think that clear, easy-to-use apps are good for both new users and pros. Usability is for everyone and truly usable apps help, not hinder. Keyboard navigation is an example of something that is a priority both for pro users and users with special accessibility needs. An interface works best when it is transparent and empowers users to get things done.
It’s worth mentioning that elementary OS itself is developed with elementary apps. Scratch, Files, and Terminal need to be good development tools, because they’re the ones that we use every day. The people that develop elementary apps are using them for pro user cases and we think about how to make the system more powerful out of the box by including useful tools like Parental Controls and Firewall settings. But we also think about how to make the system more lean and usable by removing clutter and distractions that get in the way of doing meaningful things.
“elementary doesn’t allow other distros to use Pantheon or their apps”
This is patently false. All of our desktop code is licensed under the terms of the GPL. That means that we explicitly allow anyone to reuse, remix, and redistribute this code. We also work directly with developers who are interested in porting our code to run on other distros. There are preliminary working versions of Pantheon available on Arch and Fedora, with efforts underway to port to Gentoo and Suse among others. Also of note, several of our apps are currently available in upstream Debian.
“elementary OS holds back updates”
In elementary OS, patched packages are built with launchpad recipes, so when an upstream codebase is changed, a new build is automatically triggered and our patch is applied on top. We also make sure to avoid things like namespace collisions in packages. We take full advantage of the knowledgeable and hard-working security team at Canonical and want to make sure that our users are getting those updates.
“elementary doesn’t contribute to upstream projects”
Our upstream code contributions include the likes of Evolution Data Server, Gstreamer, GSSO, Gtk+, Vala, and more. We’ve also contributed funds to events like Inkscape Toronto and Debconf. We’ve donated to FontAwesome and OpenStreetMap and even to projects that our users make use of like rEFInd. And of course there’s the several thousand dollars in bounties that we’ve placed on upstream projects, particularly Gtk+.
We also have several downstreams and we work with them regularly, for example Xubuntu who uses a derivative of elementary icons. In fact, Humanity (the Ubuntu icon set), is derived from elementary icons and many downstreams use derivatives of those icons like Mint. We’re also happy to see that other distros have started picking up useful tools like our Captive Network Assistant.
Something else we’ve done pretty recently is to revitalize the development of valadoc.org. We fixed broken features, gave it a massive visual overhaul, and now serve the site over HTTPS. We’ve also joined the Snap Format technical oversight board. So we’re very interested in participating in technologies that benefit the wider open source ecosystem.
We’d like to say thanks again to our supporters on Bountysource and Patreon, those who’ve purchased a copy of elementary OS or merch from our store. Every contribution helps make all of this possible, and we wouldn’t be here without you! If you’d like to help improve elementary OS, don’t hesitate to Get Involved!