Getting started with Linux
This is a community-maintained version of the Guide: Migrating to Linux in 2020 written by u/PBLKGodofGrunts.
I recommend reading the whole article, but if you feel overwhelmed with too much information or too many options, here is a short version that should work.
It's probably a good idea to read the short version first, it will give a good overview about what to expect.
So, you want to get started with Linux. The most important thing you need to remember is that you're using Linux.
Now that might seem obvious, but you'd be surprised how often you'll see "Why isn't this easy like in Windows?" or "I just want it to act like my Mac."
While I do understand that it's hard to get used to something you're not familiar with, I promise that, in time, it will be just as comfortable as Windows or macOS.
Curious to see Linux gaming in action before getting your feet wet? /u/PCgamingFreedom has an amazing thread with a huge list of Youtubers that play games on Linux.
Perhaps the biggest hurdle of using Linux is compatibility issues with the software you currently use. Before you get started on your journey, I would highly recommend you do a bit of prep work here.
- Which software do I commonly use?
- Get a pen and paper and start writing a list. Include your most played games (and the ones that you are sure that you will want to play in the future) and the software you need for a computer to be your daily driver (Office, Photoshop, etc).
Now that you have a list, let's check. There are four possible outcomes for each item in your list.
- You will be able to run it natively.
- This is almost always the best case scenario, since it's the one where you will get all the performance and compatibility without drawbacks.
- You will be able to run it, but not natively.
- You'll most often find this with Proprietary software and is the nature of using closed source software. We have a few tricks up our sleeves that we can try and we'll get to those a little later.
- Cloud Software (SaaS or Software as a Service)
- Though not ideal, especially in a world where owning your own software is becoming less and less common, a lot of business and professional software can be run "in the cloud". Office 365 is a prime example and allows people like me to work on Linux computers at work since I can still access all the Microsoft Office applications required to interact with my coworkers.
- You won't be able to run it.
- This is the big one, the one that will hold you back. Sometimes, and it's not your fault, there is a killer app that you absolutely need in order for your computer to be useful to you. While it would be great if the OSS community provided a good alternative to you, we understand that this is not always the case. There's no shame in this. Thank you for trying.
In order to catalog your list into these four outcomes, you grab the first item on the list. If it's a game, check in SteamDB if the game does have Linux support (Note: Sometimes the game offers Linux support even if it's not listed here or in steam). In 2018, Valve released a compatibility software called Proton that is based on Wine. Check ProtonDB (used to be called Steam Compatibility Reports) to see if your Windows only games run fine under it. If it's software, just check in the official website if there's a Linux version.
Full article: Windows Compatibility
If there's no Linux support, we go to the next step.
For Steam games you can just use Steam. For games that are not on Steam, use Lutris. For other programs, Bottles might be good option. Check www.protondb.com for Steam game compatibility, and appdb.winehq.org for other games.
If what you want to run shows as garbage in there (and most of the times bronze, you seriously want to read the reports to see what works and what doesn't) you just put it in the "I won't be able to run it" section. Now repeat with each element of the list until you've gone through your list.
I will mention that some games are more problematic than others. For example, League of Legends is notorious for needing custom versions of Wine to get working. Thankfully, it has a dedicated subreddit /r/leagueoflinux which has the latest news and tends to be very helpful.
Otherwise, if your software is not mentioned there, bring up the Wine AppDB and put there the name of your software. Click on the link that fits the most your search (Usually the first link, ignore all the [Bug XXXXX] results) and check the rating of the game. Generally you'll be able to use it if it's not bronze or garbage. If you click in the version of the software, you'll see reports of people who have tried to run it, known bugs and general instructions and steps to follow. For now we're just cataloging the software, so we'll see how to actually install it later. If there's no search results there's still hope. Do a quick google search (probably "NameOfTheSoftware Wine support") and see what happens. If the software you want to use is really small and unknown probably nobody tried it, but just leave it marked as "dubious" or something because you may be able to run it anyways.
You got your list and a general idea of what you can run and what you can't run and at which degree you will be able to use it. If you have something that needs to be run but you can't run, here's a small list of alternatives you can use.
- Look for an alternative. If it's a game I'd say that you should look for games with similar tags in steam. If it's software use something like alternativeto, or just search for "<task to achieve> Linux".
- Use a windows VM. Useful if the software you want to run is not resource intensive (99% of the time games won't like this, so don't use this for games unless you're going to attempt the GPU passthrough option)
- Dual boot.
- GPU passthrough. This is hard. You need to meet a lot of requirements and invest time, but if you can pull it out you can get the best of both worlds. The Level1Techs forum has been one of the driving forces behind using this technology and has a lot of information on the subject. (You can also check out their Linux Youtube channel)
Distributions, or "versions" of Linux
If you are here, congratulations! You want to get started with Linux and you have all your software narrowed down. In order to get started in the odyssey of Linux, you have to think about what distribution (informally referred to as
distro) you want to use. The distribution is just the flavor of Linux you want to use. Just to be clear from the start, pretty much every distribution is equally capable of gaming and running software. The differences between them are:
- The preinstalled software.
- Some are more minimalist than others, but all of them can run the same software. With enough patience, you can turn one distribution into another just by installing and removing stuff.
- The update frequency.
- Some distros release updated software faster than others. Distros that push out updated software with minimal testing are known as
rolling releasedistros. If you want to be up to date with features, you want a rolling release distro, but in exchange for the latest and greatest features you run an increase risk of running into bugs.
Stable Releasedistros usually have to wait longer for updates, but those updates are often heavily vetted before being pushed out. It is to be noted, that stable does not mean that it has less bugs, it just means that it changes less often. A bug that is present in a stable release is not going to be fixed until the next major version upgrade, even if it is already fixed in a rolling release.
- Some distros release updated software faster than others. Distros that push out updated software with minimal testing are known as
- The community.
- Different distros have different communities. The distros that are perceived to be easier or more user friendly tend to have communities that are quicker to help with easy to follow instructions.
- The other minor things including default configurations, art, fonts, etc.
- The package manager.
- You don't need to worry about this. All of them are fine.
- This is the program that installs, upgrades, configures, and removes packages. Packages are archives containing all of the compiled files of an application, and metadata(data providing info about other data) such as application name, version, dependencies(other packages required in order to function), etc.
- Every package manager has a package format that it uses. For example, APT, which is used by Debian and its derivatives(Ubuntu, Pop!_OS, Linux Mint), manages DEBs. DNF, which is used by Fedora and its derivatives, manages RPMs. Pacman, used by Arch and it's derivatives, uses .pkg.tar.zst, and so on and so forth.
But the most obvious difference is the desktop environment (also called DE). The desktop environment is what you see, what you interact with, and what you would probably think "is Linux". You don't like that you can't put icons on your desktop? This is not a limitation of Linux, this is a limitation of the DE you chose. Your windows look ugly? Also the DE (or probably rather a theme for the DE). You don't like the menu system? This is also part of the DE and there are alternatives. The most popular desktop environments are KDE Plasma, GNOME, Mate, Cinnamon, LXDE, LXQt, and Xfce. Out of this list, KDE and GNOME are the most modern desktops, and also have the best support for gaming.
The desktop environment (short DE) is the user interface that you interact with. When you think of Windows, it's the task bar, start menu, file explorer, context menu, settings, control panel, task manager, etc. Basically everything that you can see on a fresh install. On Linux you can choose the DE, and even combine different ones, for example you could use KDE but use the file manager from GNOME. Some DEs that you can use on Linux are described in the following.
|Approximate RAM usage
|Very customizable, and full featured. Windows 10 and 11 look a lot like default KDE. But if you don't like that, you can customize it, so that it looks and feels completely different. This doesn't mean only colors. For example you can create a MacOS clone, or basically whatever you want. It also has a lot of nice-to-have features that make your life easier. This is the default DE in SteamOS and Nobara.
|short video longer video website
|Very clean, but not easy to customize. The default workflow is very different from Windows, but definitely has it's strengths. It's perfect if you like it. You can customize it, but it's not as easy as KDE Plasma, and the options are a bit more limited. However, it's still a lot easier to customize than Windows. For example, there are ways to change the Workflow to be more comparable with Windows (Nobara GNOME does this, for example). Customizing GNOME often works with addons, and those addons tend to break with major upgrades. Use them with caution.
It has great touchpad and touchscreen support, and works really well with convertible devices.
|longer video longer video website
|Easy to use, but might feel a little old. Customization is easier than on GNOME, but there are not as many options as on KDE.
|Very customizable, but not as easy as KDE. Also not as full featured as KDE. Feels a bit older.
|Perfect for very old computers. However, it lacks some features. You can customize it, but the options are a bit more limited.
|You cannot disable the compositor on X11, which makes it bad for gaming.
If you want to avoid problems:
- Choose something with KDE Plasma or GNOME. KDE Plasma is usually more lightweight.
- Don't choose a "stable" distribution because "stable" usually means "old". You don't need this as long as you're not trying to run a server with 100% uptime.
- Don't choose a niche distribution because this probably means that you don't have good software availability, and many bugs.
- Don't choose something with Wayland if you can't use FreeSync.
- Some distributions make problems if you change the default desktop environment. For example, if you want to use Ubuntu with KDE, choose Kubuntu.
Now, let's have a look at different distributions.
First a list of some "easy" distributions:
|Based on Fedora, and specifically made to be great for gaming. Has three versions: Official (KDE with modifications), GNOME, and KDE. It's very new (as of 09/2022), so there could still be issues, but the developer is very reputable (Glorious Eggroll, Red Hat employee best known for Proton-GE). With other words: It will probably be great, but there is a chance that it won't work for you. It will give you better performance than most other distributions, and it will probably be less problematic than most other distributions.
|Pop!_OS is a Linux distribution developed by System76 based on Ubuntu, using the GNOME Desktop Environment. Has an Nvidia and an AMD/Intel image for convenience, and comes with some tweaks that make it better for gaming. It's been there for quite some time, and should be a solid choice. (Recommended by LTT)
If you're feeling particularly adventurous, there are other distributions, that might work great for you. Particularly Arch and Arch based distributions are known to work great for gaming, but also to require more knowledge. You might have a good experience, if you have the knowledge to fix a couple minor problems.
|Made by Red Hat, one of largest open source companies, and has a lot of officially supported desktop environments. Packages are up to date, but well tested.
|The latest Ubuntu LTS (22.04 as of this writing). Ubuntu also has a new-user-friendly community but is heavily discussed because of some design choices. Comes with GNOME, but also offers other flavors with different desktop environments, for example Kubuntu with KDE Plasma.
|EndeavourOS is an ArchLinux based distro. Uses the offical ArchLinux software repositories. Very minimal. You will need to use the terminal. Basically a graphical installer for Arch, and coming with a very helpful community. If you want to try Arch, this might be a good choice.
|Garuda is an ArchLinux based distro. Uses the offical ArchLinux software repositories. Ships with useful software for gaming, and useful presets like Zen kernel. Is made to be a user-friendly gaming-distribution. Comes highly themed and with many effects like wobbly windows. This can be disabled if you don't like it.
|Solus brings updates to its users by means of a curated rolling release model.
|Comes with YAST, a tool similar to the Control Panel that makes configuring the system easier, since for many functions it is thus not necessary to use a terminal, or to edit config files. Offers both a rolling release (Tumbleweed) and a regular release (Leap) option. You probably want to use Tumbleweed.
|If you are looking for a Steam-centric, couch-gaming-friendly Linux distribution, this might be what you are looking for. Don't use this if you want a traditional desktop experience.
|There are a ton of Linux distros out there. Just know that they might come with problems. The mentioned distros are popular for a reason, and this reason is that they work well.
|Arch Linux is not beginner friendly, but it'd be an opportunity for you to learn a lot about Linux at the same time, especially that you got the Arch Wiki which is considered the best Linux Wiki and a very important and reliable source of information that covers nearly everything. Arch is one of the best distributions for gaming, because it comes raw and pulls straight from sources with no pre-configuration. Therefore, you will have a minimal base system and add the extra essentials by yourself (which is optimal for gaming, since you don't want things you don't need slowing down your computer). Obviously you need to do the correct choices if you want good performance. If you don't configure your system enough, it will probably be worse than other distributions. Only choose this option if you have time and are willing to learn. Contrary to popular belief, installing Arch is not too hard if you follow carefully the installation guide; it's even simpler with the provided archinstall script, although "it's not the recommended way". It will take long though.
You should keep in mind, that you will have to spend a lot of time if you really want to use Arch. You will have to do everything yourself. You want to have a graphical user interface? Read the wiki. You want to use a printer? Read the wiki. You want GPU drivers? Read the wiki. You have a problem? Read the wiki. Don't even try to ask stupid questions in the Arch forum. They will just tell you to read the friendly wiki. And the wiki is great, seriously. But if you want to use Arch, you have to read and understand it yourself.
Make sure to tell everyone you use Arch btw.
|Gentoo Linux is a source-based metadistribution; it means it comes raw and with nothing, just like Arch, but is also the best when it comes to performance, as it allows you to compile all programs specifically configured for your own setup! BUT, it makes it a double-edged sword! Not only are the performance gains not massive; it also means it will take quite longer to install and update software! Thankfully, you don't have to compile huge software like web browsers (or even the kernel, though you will lose the benefits). Adding to that, it is notorious for being hard to install, although it's as hard or even easier to install than Arch Linux as long as you follow the installation guide. It will take extremely long though: count more than two hours of setting things up!
Gentoo also has the benefits of supporting nearly every architecture there is, including ARM.
Do note that, just like Arch, if you don't configure much (including compiler flags!!), you will probably end up with no better, or worse, than other distros, considering you also rarely get grand performance gains!
|Based on ArchLinux, but uses its own repositories and includes other features like automatic graphic card drivers installation. Is made to be user friendly. (Recommended by LTT)
However, it is criticized for being unreliable. Such issues are listed here, and include:
You should instead consider EndeavourOS, or Arch Linux using archinstall, if you want an installer-driven experience.
|Has a strong focus on reliability and not changing much. That's great for servers or if you just need something that works for basic tasks, but unless you know why you want Debian, it's probably not the best choice for gaming. It could be a good choice for very old hardware.
|Nice distribution, but probably not the best for gaming. You might face weird bugs. Cinnamon has issues with performance, and with disabling composition!
Offers two versions. "Linux Mint" is based on Ubuntu and "LMDE" is based on Debian.
|Based on Ubuntu, elementary OS strives to be user-friendly and deliver a cohesive and aesthetic user experience. Comes with Pantheon, a modern, good looking DE that is only available here. Unfortunately it is not possible to disable composition which makes it a bad choice for gaming. Only use this if you really don't care about performance at all.
If you are having trouble deciding, Pop!_OS is good for beginners. It's not the flashiest, but you're almost guaranteed to find an answer to your problem if you search "My Problem Pop!_OS" or "My Problem Ubuntu" (Pop!_OS is very similar to Ubuntu) in your favorite search engine (make sure to limit the search to only things from the past year). You can always switch later.
Most of them will let you install next to Windows and set up a dual boot automatically. Be careful though, Windows Updates have a bad habit of changing the boot loader and it will look like your Linux OS vanished. REMEMBER TO DO BACKUPS. Things can always go wrong and you don't want to lose anything. It's FOSS has a video on dual booting if you'd like a visual example, but it basically boils down to you clicking an option that says "Install along side Windows".
Window managers have the job of moving windows. They do things like the title bar, and the border around windows. If you really want, you can choose which window manager you want to use. You can even choose, to not use a desktop environment, and just use a standalone window manager. If you ever saw really cool looking images of Linux desktops, that's probably a standalone window manager. This is not something you have to do, and if you don't want to spend a lot of time on customization, just skip this. However, if you really want to dive deep, click here.
What to do after the installation
So, you've installed your distro and you have your computer running Linux. Congratulations! The absolute most important part of becoming a Linux user is to consistently use Linux! The last step is to get all of your software back running so you can use your computer as a daily driver.
A few things first:
This is rather controversial, but you do not be afraid of the terminal. While the terminal is absolutely not required to do your normal day to day activities, you'll often find solutions to your problems require you to enter a few lines into the terminal. This isn't any sort of magic and it's nothing to be fearful of using, if you want you can think of it a bit like a voice assistant that works with text. The reason for this is because the terminal is, generally, distro agnostic and it's easier to explain one line of code instead of having lots of different pictures showing you what to click in each distro.
Second, use the internet! Everyone starts as a beginner at some point. You might be very comfortable in Windows or macOS now, but at some point you had no idea what you were doing. That's very normal! As you use Linux more and more you'll gain the knowledge and experience needed and eventually it will feel like home. There's absolutely no shame in asking questions!
If you are coming from Windows, you are probably used to search for an .exe and install it by double clicking. Things are way different here. Installing software individually is often discouraged. The reasons for this varies, but security and compatibility are the main reasons. So what do you do in Linux? You use a package manager. Think of it as being similar to the Play store, but instead of random people uploading software to it, everything is maintained by your distribution's software team. This also applies to drivers, including GPU drivers, even though AMD and Nvidia both offer a download. Don't use it! It will probably break your system!
Package managers have a lot of benefits that may not be immediately obvious to new users. The package manager knows what other software is required to work on your system and can manage updating all of the software pieces you have without you manually having to handle it. As I mentioned earlier, since your distribution's software team creates these packages, the chances of installing malware on your system is very slim.
Remember when I said don't be afraid of the terminal? Here's a good example as to why. To install Steam on Ubuntu, Linux Mint, Pop!_OS, or most other distros that derive from Debian, all you have to do is open a terminal and type:
sudo apt install steam
Video example. And that's it. Steam is installed, from a trusted source and with everything it needs. Do you want to update all the stuff installed in your system?
sudo apt upgrade
Let's break those two lines down a bit so you know what's going on.
sudo stands for "super user do". You can think of this like right clicking and choosing the "Run As Administrator" in Windows.
apt is the package manager's name.
apt is used by distributions based on Debian.
apt's command for installing programs.
steam is the Steam software. So in English we just said. "Please install the "steam" program as administrator (called root on Linux)."
Now, if you wanted to use the graphical way, I'd have to post pictures from Ubuntu, Mint, etc and they all look slightly different and you have to find their front end in different places. It's just easier this way. But generally, you would open your software store (or whatever it is called), and search for the program you want to install, click "update", or whatever else.
So what do you do if the software you need isn't in your package manager? The next best thing is to add a 3rd party repository to your package manager. As an (educational) example, let's add Google Chrome. Note, that the following procedure is not recommended for various reasons, including, but not limited to Chrome being considered spyware. UbuntuUpdates.org give the following instructions:
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' sudo apt-get update sudo apt-get install google-chrome-stable
That looks a bit scary, but it's just adding the security key and repository to your system and then installing Google Chrome. You'll want to use a PPA of your software when possible since it will update with the rest of your system.
However, what about distros that don't use apt? For example, let's say you installed Fedora instead. Fedora uses DNF. Unfortunately, Steam is not in Fedora's default repository, so we will have to enable the RPMFusion repositories with this command:
sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
Then we enter:
sudo dnf install steam
As you can see, instead of using apt to call in apt, we used dnf to call in dnf.
Since you want to play games, you probably want to have the best performance that your hardware is capable of. The default settings are usually bad, though. Read this article to see how you can improve them for a flawless experience.
Look at other articles in this wiki to see what you might want to use. Most of what you are used to from Windows is possible, including game streaming, modding, up-/downscaling, noise cancelling, and much more.
Learn using the terminal. While you might not necessarily need it, it makes many things easier.
- Join the IRC channel of the distribution that you are using
- Join the /r/linux_gaming discord channel
- Ask in one of the linux subreddits
- Ask in forums
When asking about your problems, remember to give as much info as you can. For example, include what Distro you're on, what you have already tried, any error messages that come up, anything you've changed recently, etc.
Vulkan games (native, Proton, Wine with DXVK) don't run (no Vulkan support)
- Ensure that Vulkan drivers are installed, including the 32-bit drivers
- For users of older AMD GCN 1 or 2 cards, ensure that the AMDGPU kernel driver is used instead of radeon
u/PBLKGodofGrunts put this guide under the WTFPL License. Please attach this license when sharing or modifying this guide. I hope that this is helpful to someone.