You’re about to take your first steps in the wonderful world of Linux, but you’re overwhelmed by the amount of choices? Welcome to this (I hope) very simple guide :)
The aim of this guide is to provide simple, clear information to ease your transition as a beginner. This is not a be-all-end-all guide nor an advanced guide.
Preamble
Make sure your hardware is compatible
Nowadays most relatively recent hardware works perfectly fine on Linux, but there are some edge cases still. If you don’t use niche hardware and your wifi card is supported, chances are you’re golden. Please note that nVidia is a bad faith player in the Linux world, so if you have a GeForce GPU, expect some trouble.
Make sure your favourite apps are either available or have a good replacement on Linux
If some proprietary app is essential to your workflow and is irreplaceable, consider running it in a VM, keeping a Windows partition for it or try and run it through Wine (this is advanced stuff though).
Be aware that Linux is not Windows/MacOS
Things work differently, and this is normal. You will probably struggle at the beginning while adjusting to a new paradigm. You may have to troubleshoot some things. You may break some things in the process. You will probably get frustrated at some point or another. It’s okay. You’re learning something new, and it can be hard to shed old habits forged by years on another system.
What are the best resources out there?
Arch Wiki without a doubt. Despite being heavily tied to Arch, most of its content is readily usable to troubleshoot most modern distros, as the building blocks (Kernel, systemd, core system apps, XOrg/Wayland, your DE of choice etc.) are the same.
Okay, now to the most important questions
Which distro should I use?
There are a metric fuckload (or 1.112 imperial fucktons) of distros out there, but these can be broadly put into two main categories: general-purpose distros and niche-distros. I advise you to keep it as mainstream as possible for your first steps. A distro with a large user base, backed by a large community of maintainers and aimed at being as fuss-free as possible is always better than a one-person effort tailored to a specific use-case.
Beginner distros
These are great distros for beginners as well as more advanced users who just want to have a system that needs almost no configuration out of the box, just works and stays out of the way.
- Fedora Workstation: Clean, sensible, modern and very up to date and should work out of the box for most hardware. Despite the community’s rightful backlash against Red Hat, this is still a great distro for beginners and advanced users. Even Linus Torvalds himself favors Fedora as a daily driver. Fedora is the flagship distro for the Gnome Desktop Environment.
- Linux Mint: While I haven’t used it myself, there is a lot of praise here for this Ubuntu derivative from beginners and advanced users alike. Its main goals are ease of use and being the flagship distro for the Cinnamon DE, which is very similar to Windows and may ease the transition for new users.
- Pop!_OS: Backed by hardware Linux vendor System76, this Ubuntu derivative shares some of the issues with its infamous parent, but its heavily modified Gnome DE looks and feels nice.
- I do not recommend Ubuntu nor Manjaro: despite being marketed as “beginner friendly distros”, and despite often running perfectly fine, these two have major issues in management, packaging policies or philosophy that might make your life as a beginner difficult. Ubuntu suffers from it’s parent company’s goal to make Ubuntu kinda-Linux-but-not-really, and there are some great derivatives like the ones cited above that work equally well but revert some of the most controversial decisions made by Canonical. Manjaro might seem appealing as a “beginner-friendly” Arch derivative and some of its tools are fantastic to remove some configuration burden, but ongoing mismanagement issues and the fact that it needs regular maintenance as updates often break stuff prevent it from being a truly beginner distro.
Advanced distros
So you’ve taken your first steps, you’re starting to be really comfortable with Linux, and you want to get your hands dirty and really learn what’s happening under the surface? These should not be installed as your first distro, unless you like extremely steep learning curves and being overwhelmed.
- Debian: as one of the oldest, still maintained distros and the granddaddy of probably half of the distros out there, Debian is built like a tank. A very stringent policy of focusing on bug and security fixes over new features makes Debian extremely stable and predictable, but it can also feel a bit outdated. Still a rock-solid experience, with a lot to tinker with despite very sensible defaults. It is an incredible learning tool and is as “Standard Linux” as can be.
- Arch: The opposite of Debian in philosophy, packages often come to Arch almost as soon as the source code is released. Expect a lot of manual installation and configuration, daily updates, and regularly fixing stuff. An incredible learning tool too, that will make you intimate with the inner workings of Linux.
Which Desktop Environment should I use?
This is entirely up to you, and depends on your preferences.
- Gnome: Full featured yet very minimalist, Gnome is a great DE that eschews the traditional Desktop metaphor. Like MacOS, out of the box, it provides the strongly opinionated developers’ vision of a user experience. Fortunately, unlike MacOS, there are thousands of extensions to tweak and extend the looks and behaviour of the DE. Dash-to-dock or Dash-to-panel are great if you want a more MacOS-like or Windows-like experience, Blur My Shell is great if you love blurry transparent things, Appindicator is a must, and everything else is up to you. Gnome’s development cycle is highly regular and all core components and apps follow the same release schedule, which explains why a lot of distros choose it as their default DE.
- KDE Plasma: Full featured and maximalist, Plasma does not cater to a single design philosophy, is very flexible and can be tweaked almost ad infinitum. This may be an advantage for people who like to spend hours making the perfect environment, or a disadvantage as the possibilities can be overwhelming, and the added complexity may compromise stability, bugginess or completeness. There is no single development cycle for core components and apps, which makes it a bit more difficult for distro maintainers.
- Cinnamon: If you want the most “windows-like” experience out of the box, Cinnamon is great. As I have no experience with it, I’ll let the Mint users praise it in the comments :D
- Lightweight DEs for old or underpowered machines: The likes of XFCE, LXDE, LXQt are great if you want to ressurect an old machine, but lack the bells and whistles of the aforementioned DEs.
Philosophical questions, or “I heard conflicting stuff over the Internet and now I’m scared”
You’ve done your research, you’re almost ready to take the plunge, you even read a lot of stuff on this very community, but people seem very passionately for or against stuff. What should you do?
Shoud I learn the command line?
Yes, eventually. To be honest, nowadays a lot of things can be configured on the fly graphically, through your DE’s settings. But sometimes, it’s much more efficient to work on the command line, and sometimes it’s the only way to fix something. It’s not that difficult, and you can be reasonably productive by understanding just about a dozen very simple commands.
I have a very old laptop/desktop, should I use a distro from this era?
Noooo!. Contrary to Windows and MacOS which only work correctly on period-correct computers, Linux runs perfectly well on any hardware from the last 20 to 30 years. You will not gain performance by using an old distro, but you will gain hundreds of critical security flaws that have been since corrected. If you need to squeeze performance out of an old computer, use a lightweight graphical environment or repurpose it as a headless home server.
Should I be concerned about systemd?
No. In short, systemd is fine and all major distros have switched to systemd years ago. Even the extremely cautious people behind Debian have used systemd as default since 2015. Not wanting to use systemd is a niche more rooted in philosophical rather than practical or technical reasons, and leads to much deeper issues than you should concern yourself with as a beginner. (Thanks @[email protected] for the precisions)
Should I be concerned about XOrg/Wayland?
Yes and No, but mostly No. First off, most distros install both Wayland and XOrg by default, so if one is not satisfying to you, try the other. Remember in the preamble when I said nVidia was a bad actor? Well, most of people’s complaints about Wayland are because of nVidia and their shitty drivers, so GeForce users should stay on XOrg for now. But like it or not, XOrg is dead and unmaintained, and Wayland is the present and future. XOrg did too many things, carried too many features from the 80’s and 90’s and its codebase is a barely maintainable mess. Wayland solves that by being just a simple display protocol with a much smaller codebase, and offloading feature development to the compositors.
Should I look for a gaming-focused distro?
No. General purpose distros are perfectly fine for gaming. You can install Steam, Lutris, Heroic, Itch etc. and use Proton just fine on almost anything. Even Debian. In short, yes, you can game on Linux, there are great tutorials on the internet.
Should I be concerned about Flatpaks and/or Snaps?
Not really. Flatpaks are great, and more and more developers package their apps directly in Flatpak format. As a rule of thumb, for user facing applications, if your app store gives you the choice between Flatpak and your native package manager version, choose the most recent version. Snaps however are a Canonical/Ubuntu thing, so as long as you avoid Ubuntu, its spins and its derivatives that still include Snaps, you should be fine. They tend to take a lot longer to startup than regular apps or Flatpaks, the snap store is proprietary, centralized and Canonical controls every part of it. If you’re fine with that, have fun. (Thanks @[email protected] for the precisions)
Should I follow The Way?
Yes. One does not speak unless one knows. You can take your helmet off in public tho.
Feel free to help correct, expand, or simplify this guide :)
Great write up, thanks!
You can use the bangs
!arch
or!aw
to search the arch wiki, e.g.!aw kde
.I don’t think dash to dock is a must have extensiom. The workflow of GNOME is different to other opersting systems. That’s why GNOME boots into overview and not the desktop. The overview is there to launch an app or switch to it graphically. When you boot the system the first thing would be to go into overview to launch an app, hence it boots directly into overview. Removing dash from overview defeats the purpose of it.
But “hot bottom” is important otherwise you have to move the mouse into the upper left corner in order to move the mouse to the bottom to launch an app which is nuts.
I don’t like the philosophy of “if they do it, it’s safe”. But I couldn’t explain it in one sentence either. Not only debian but all big distros have systemd. Not having systemd is such a nieche that you shouldn’t bother with it as a beginner.
Snaps. You don’t provide info why snaps are bad. The snap store is centralized and canonical controls every part of it. Moreover, I’ve never read that snaps are reproducible. Flatpaks are technically reproducible. And we all want and need reproducible builds because then we don’t have to trust but know that it’s the original and published source code.
Am I the only person that just uses the Super/Windows key to navigate GNOME. Super to open up the global search and dock, Super again quickly to open up the full app menu, and Super again to go back. Or just press Super and type name of the app you want to run
Nah I use Super and Super-A all the time when docked. Otherwise I mostly use trackpad gestures.
The three finger swipe is soo good
Thank you for your feedback!
I’m enriching this guide with the info you provided :)
I don’t want to spread FUD that snaps aren’t reproducible. I just don’t know that they are and there is no source stating they are or aren’t.
Neither, flatpak not snaps are with https://reproducible-builds.org/who/projects/ which is bad of both.
You’re right. I’m changing this paragraph.