As I review one Linux distribution or another, I find myself uttering phrases like "This is pretty good! Almost makes me want to switch my system to this," over and over again. So many distributions of Linux are truly fantastic – but usually with a caveat. Something that stops me from making them my primary system.
Which begs the question… What does the perfect Linux distribution (or Linux-based operating system) look like for me?
If I throw out all of my preconceptions of various distros, and ignore any sense of brand or community loyalty that I have (let's be honest… we all have at least a little bit of that) and focus purely on what that makes up that perfect system… what would it look like?
Now, before I begin, I am fully aware that what makes a "perfect system" for one person will, almost certainly, not be perfect for someone else. That is part of the beauty of Linux; we get to mix and match parts until we have the system we are happiest with.
With that out of the way… here we go! One part of the system at a time.
Package Management
I couldn't care less whether I install my packages using "apt-get install" or "zypper install" or "pacman -S". They all work and they all work well (for most things).
Do I really care if my software comes bundled in an .RPM or a .DEB? Nope. Not at all. So I'm going to simply say "as long as it works" and move on to some of the more critical aspects of the system.
Release Model
I tend to be a rolling release kinda guy. I like my software to be fresh and new. As such, systems like Arch and openSUSE Tumbleweed have often called to me.
That said, I also quite like my base system to be as stable as possible for as long as possible. It's very rare that I need an updated kernel or display server. That makes various "long-term support" style releases quite appealing to me.
What I really want, for a release model, is a stable core that is the primary (or only) major release for a reasonably long time – at least, say, two years – with a rock-solid, rarely changing repository filled with the foundation of the system. Then an additional repository filled with the latest and greatest user-focused software (Firefox, LibreOffice, etc.) that are updated in a more rolling style – regularly.
In other words: LTS for the bulk of the system with a rolling, rapidly updated repository for the common end-user software.
Tablet (and other mobile device) Support
This is a much simpler thing than it may seem at first glance – at least for me.
I don't need my desktop OS to run on every tablet and smartphone on the planet. Only a small handful of devices will do just fine. If it makes the job easier to simply support one or two x86 tablets, then that will meet my needs.
And I don't need the system to magically transform itself into a touch-centric user interface. I definitely don't need a huge collection of custom developed applications just for an "optimized mobile experience."
The reality is, for a nerd like me, there are quite a few desktop environments that are already plenty usable on smaller, touchscreen devices – so long as you can adjust the scaling of controls and text to make things a wee bit easier to tap. Combine that with a good on-screen keyboard and I'm good to take things on the road.
So, hardware support for at least one or two good tablets, a good on-screen keyboard, and the ability to easily scale UI elements. That's all I'm looking for.
Default Desktop Environment
With the tablet support in mind… what would the ideal Desktop Environment be? GNOME Shell? KDE Plasma? Unity? Pantheon (from the elementary project)? Enlightenment?
There are quite a few available that would fit those needs quite nicely. I would probably cross Unity off the short-list simply because it isn't terribly customizable. And, while we're at it, I'd need to do the same for Pantheon (even though it's absolutely gorgeous).
I'd probably say that I'd go with GNOME… with a lot of extensions. It's fairly easy to make GNOME do all sorts of tricks. But it's a close call between that and Plasma and Enlightenment. Super close.
Non-default Software Support
Even though my ideal system would have one Desktop Environment that it focused on (in order to provide the best "out of the box" experience), I'd also like to know that I can change my environment any time I like and have it reasonably well supported and modern.
I should always be able to tweak the heck out of my system – and that includes being able to install as wide a range of software as possible. Any other design decisions made about this system should always keep that in mind.
Software Installation Mechanism
While I typically do most of my software installation and management from the terminal, it's still nice to have a graphical application manager.
My needs in this regard are simple: It has to work. It has to be easy to discover new software. And it absolutely cannot be as slow as molasses (I'm looking at you, Ubuntu Software Center).
With this in mind, and considering it seems like I'm going with GNOME anyway, GNOME Software seems like the logical choice. It looks nice and it works.
Integration with Online Services
Or, rather, this should read "Absolutely no system-wide integration with online services."
None. At all. I don't want my searches being reported to Amazon. I don't want to be connected to any social network unless I specifically load one up in my web browser or a social network-focused application.
The only time my computer should ever contact a server – unless I specifically tell it to do so via one of the various applications – is for software updates. And, even then, I should be able to easily turn checking for those updates off entirely.
As Little "Invented Here" as Possible
My ideal Linux distro will not roll its own software unless absolutely necessary. And, if it is necessary, that software should be built in a way that makes it as easy as possible for any other project to make use of them.
No in-house developed desktop environment – instead using something upstream with, as needed, extensions and tweaks. With those bits of code always being made available to the upstream project.
It's all about being a good member of the broader Free and Open Source community. Behaving in a responsible way here goes a long way towards making me feel good about my choice of system.
Modification and Redistribution
And, finally, it should be as easy as possible for people to take that distro, customize it in whatever way they like, and redistribute it.
This means that tools need to be in place to make this process simple and approachable for anyone (things like SUSE Studio, Linux Respin, and others). It also means that it should be easy to change branding (branding-specific packages helps there), and there should be no licensing issues relating to redistribution.
Where does that leave me?
The good news (for me) is that there are several existing Linux distributions that do come pretty close to meeting most of these needs. Ubuntu GNOME edition, openSUSE Leap, and Fedora are all not that far off. Not far at all.
And the good news for everyone else – perhaps the best news of all – is that nobody needs to be forced to use "The Lunduke Dream Distro." Because I can already think of several people who wouldn't like it one bit.