Difference between revisions of "Getting started with Linux"

From Linux Gaming
Jump to navigation Jump to search
(Fork from /r/linux_gaming)
 
Line 1: Line 1:
== Prelude ==
== 1. Prelude ==
This is a community-maintained version of the Guide: Migrating to Linux in 2020 written by u/PBLKGodofGrunts.
 
 
-----
 
This is a community-maintained version of the [https://www.reddit.com/r/linux_gaming/comments/edaq0s/guide_migrating_to_linux_in_2020 Guide: Migrating to Linux in 2020] written by [[u/PBLKGodofGrunts|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:
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:


* First, and foremost: Be prepared that nothing works as you would expect. Linux does not try to copy Windows. Stuff works differently. You will probably not be able to use the software that you're used to. But usually there is different software that might even be better.
<ul>
* Your experience will be ''much'' better if you have supported hardware. Your RGB keyboard may not blink in the way you want it to blink. You might not be able to change your mouse DPI or lift-of-distance. At least not out of the box and not without hassle. Wifi and Bluetooth are also known to be problematic. Check if your model is supported, or get a supported model. If you can choose your GPU, chose AMD. If you have a laptop that is unsupported, not all features will work out of the box, or might not work at all or without bugs. Normal functionality of other components is usually unproblematic, you should not have to worry about your CPU, RAM, etc.
<li>First, and foremost: Be prepared that nothing works as you would expect. Linux does not try to copy Windows. Stuff works differently. You will probably not be able to use the software that you're used to. But usually there is different software that might even be better.</li>
* Not all games work. Check lutris.net and protondb.com for information about what games are currently working. Most games that don't use anti-cheat work, even if they are not listed. However, they might not work without tweaking.
<li>Your experience will be ''much'' better if you have supported hardware. Your RGB keyboard may not blink in the way you want it to blink. You might not be able to change your mouse DPI or lift-of-distance. At least not out of the box and not without hassle. Wifi and Bluetooth are also known to be problematic. Check if your model is supported, or get a supported model. If you can choose your GPU, chose AMD. If you have a laptop that is unsupported, not all features will work out of the box, or might not work at all or without bugs. Normal functionality of other components is usually unproblematic, you should not have to worry about your CPU, RAM, etc.</li>
* Use Pop!_OS. It might not be the best for everyone and everything, but it's a popular choice, and you should not face too many weird issues. If you don't know how to install it, watch this video. Use Balena Etcher (ignore what he says about rufus), and ignore the part about the alternative for shadowplay (assuming that you don't want that). Note, that Pop!_OS has two versions. One for Nvidia, and one for everything else. Install the version for Nvidia GPUs if you have one.
<li>Not all games work. Check [https://lutris.net/ lutris.net] and [https://www.protondb.com/ protondb.com] for information about what games are currently working. Most games that don't use anti-cheat work, even if they are not listed. However, they might not work without tweaking.</li>
* Use ''Steam (Runtime)'' for Steam games (if you don't know how to install it, watch the video linked above). Go to ''Steam -> Settings -> Steam Play'' and check ''"Enable Steam Play for all other titles"'' and then select ''"Proton Experimental''" in the drop down menu. If something doesn't work, check out Proton-GE
<li>Use Pop!_OS. It might not be the best for everyone and everything, but it's a popular choice, and you should not face too many weird issues. If you don't know how to install it, watch [https://www.youtube.com/watch?v=_Ua-d9OeUOg this video]. Use Balena Etcher (ignore what he says about rufus), and ignore the part about the alternative for shadowplay (assuming that you don't want that). Note, that Pop!_OS has two versions. One for Nvidia, and one for everything else. Install the version for Nvidia GPUs if you have one.</li>
* Use ''Lutris'' for all other Windows Games. If something doesn't work, check out Wine-TKG
<li>Use ''Steam (Runtime)'' for Steam games (if you don't know how to install it, watch the video linked above). Go to ''Steam -&gt; Settings -&gt; Steam Play'' and check ''&quot;Enable Steam Play for all other titles&quot;'' and then select ''&quot;Proton Experimental''&quot; in the drop down menu. If something doesn't work, check out [https://github.com/GloriousEggroll/proton-ge-custom/releases Proton-GE]</li>
<li>Use ''Lutris'' for all other Windows Games. If something doesn't work, check out [https://github.com/Frogging-Family/wine-tkg-git/releases Wine-TKG]</li>
<li><p>If you have an AMD GPU, install CoreCtrl. If you previously chose Pop!_OS, input the following in the terminal:</p>
<pre>sudo add-apt-repository ppa:ernstp/mesarc
sudo apt-get update
sudo apt install corectrl</pre>
<p>Otherwise look [https://gitlab.com/corectrl/corectrl/ here] for instructions. Open CoreCtrl, and add a profile for every game, or edit the global settings to your likings.</p></li>
<li><p>When Linux gives you a warning, take it seriously. [https://youtube.com/0506yDSgU7M?t=600 It's not your average &quot;You could harm your computer&quot; bullshit you are used to from Windows.]</p></li>
<li><p>Disable Composition: Your games will run like shit if you don't disable it. Read more [https://www.reddit.com/r/linux_gaming/wiki/improving_performance here].</p></li></ul>
 
== 2. Getting Started ==


* If you have an AMD GPU, install CoreCtrl. If you previously chose Pop!_OS, input the following in the terminal
<syntaxhighlight lang="bash">
sudo add-apt-repository ppa:ernstp/mesarc
sudo apt-get update
sudo apt install corectrl
</syntaxhighlight>Otherwise look here for instructions. Open CoreCtrl, and add a profile for every game, or edit the global settings to your likings.


* When Linux gives you a warning, '''take it seriously'''. It's not your average "You could harm your computer" bullshit you are used to from Windows. This is especially important if working in terminal, if terminal application warns you that you can harm your PC, you '''WILL''' harm it (if you don't know what you are doing).
-----
* ''Disable Composition: Your games will run like shit if you don't disable it. Read more here. (this is not true in all cases!)''


== Getting started ==
So, you want to get started in Linux. The most important thing you need to remember is that you're using '''Linux'''.
'''So, you want to get started in 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."
Now that might seem obvious, but you'd be surprised how often you'll see &quot;Why isn't this easy like in Windows?&quot; or &quot;I just want it to act like my Mac.&quot;


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.
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.
Curious to see Linux gaming in action before getting your feet wet? [[u/PCgamingFreedom|/u/PCgamingFreedom]] has an [https://redd.it/aneayg amazing thread with a huge list of Youtubers that play games on Linux.]
 
Want to checkout the latest news for Linux gaming? Take a trip to [https://www.gamingonlinux.com/ GamingOnLinux]. They also have a great [https://www.gamingonlinux.com/wiki/ wiki] that covers more topics than this one.
 
== 3. The software ==
 


Want to checkout the latest news for Linux gaming? Take a trip to GamingOnLinux. They also have a great wiki that covers more topics than this one.
-----


== The software ==
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.
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?
* Which software do I commonly use?
Line 45: Line 55:
** 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.
** 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)
* 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.
** 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 &quot;in the cloud&quot;. 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.
* 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.
** 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.
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 [https://steamdb.info/ 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 [https://steamcommunity.com/games/221410/announcements/detail/1696055855739350561 Proton] that is based on [https://appdb.winehq.org/ Wine]. Check [https://www.protondb.com/ 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.


If you've done that and there's no Linux support, we go to the next step. Bring up the Wine AppDB and put the name of your software there. 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.
If you've done that and there's no Linux support, we go to the next step. Bring up [https://www.winehq.org/search 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 &quot;NameOfTheSoftware Wine support&quot;) 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 &quot;dubious&quot; or something because you may be able to run it anyways.


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.
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 &quot;I won't be able to run it&quot; section. Now repeat with each element of the list until you've gone through your list.


There is also a paid for solution called Crossover made by CodeWeavers. CodeWeavers are the same minds behind Valve's Proton so you should expect a pretty good product in general. They have a search feature that you should also use.
There is also a paid for solution called [https://www.codeweavers.com/ Crossover] made by CodeWeavers. CodeWeavers are the same minds behind Valve's Proton so you should expect a pretty good product in general. They have a [https://www.codeweavers.com/compatibility search feature that you should also use].


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.
I will mention that some games are more problematic then 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|/r/leagueoflinux]] which has the latest news and tends to be very helpful.


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.
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
* 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 [http://alternativeto.net/ alternativeto]
* Use 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)
* 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.
* Dual boot.
* GPU passthrough. This is hard. You need to met 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)
* GPU passthrough. This is hard. You need to met a lot of requirements and invest time, but if you can pull it out you can get the best of both worlds. The [https://forum.level1techs.com/tags/passthrough 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 [https://www.youtube.com/channel/UCOWcZ6Wicl-1N34H0zZe38w Linux Youtube channel])
 
== 4. The swap (Distributions, or &quot;versions&quot; of Linux) ==


== The swap (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 <code>distro</code>) 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:
-----
 
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 <code>distro</code>) 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.
* The preinstalled software.
Line 74: Line 88:
** Some distros release updated software faster than others. Distros that push out updated software with minimal testing are known as <code>bleeding edge</code> distros or <code>rolling release</code> distros. If you want to be up to date with features, you want a bleeding edge distro, but in exchange for the latest and greatest features you run an increase risk of running into bugs. <code>Stable Release</code> distros usually have to wait longer for updates, but those updates are often heavily vetted before being pushed out.
** Some distros release updated software faster than others. Distros that push out updated software with minimal testing are known as <code>bleeding edge</code> distros or <code>rolling release</code> distros. If you want to be up to date with features, you want a bleeding edge distro, but in exchange for the latest and greatest features you run an increase risk of running into bugs. <code>Stable Release</code> distros usually have to wait longer for updates, but those updates are often heavily vetted before being pushed out.
* The community.
* 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.
** 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 other minor things including default configurations, art, fonts, etc.


Line 80: Line 94:


* Choose something with KDE or Gnome.
* Choose something with KDE or Gnome.
* Don't choose a "stable" distribution because "stable" usually means "old", overall experience might be better and more stable, but since Linux Gaming is evolving each day, you will suffer from incompatibilities and/or poor performance.
* Don't choose a &quot;stable&quot; distribution because &quot;stable&quot; usually means &quot;old&quot;.
* Don't choose a niche distribution because this probably means that you don't have good software availability.
* Don't choose a nieche distribution because this probably means that you don't have good software availability.
* Don't choose something with Wayland if you want low input lag and/or have an Nvidia GPU.
* Don't choose something with Wayland if you want low input lag and/or have an Nvidia GPU.


Now that I've explained that let's have a look at different distributions.
Now that I've explained that, let's have a look at different distributions.


First a list of some "easy" distributions:
First a list of some &quot;easy&quot; distributions:
{| class="wikitable"
 
!Distribution
{|
!Explanation
! Distribution
! Explanation
|-
|-
|Pop!_OS
| [https://system76.com/pop Pop!_OS]
|Pop!_OS is a Linux distribution developed by System76 based on Ubuntu, using the GNOME Desktop Environment. Has a Nvidia and a AMD/Intel image for convenience. (Recommended by LTT) <code>If you don't know what to choose, pick this one.</code>
| Pop!_OS is a Linux distribution developed by System76 based on Ubuntu, using the GNOME Desktop Environment. Has a Nvidia and a AMD/Intel image for convenience. ([https://www.youtube.com/watch?v=Co6FePZoNgE Recommended by LTT]) <code>If you don't know what to choose, pick this one.</code>
|-
|-
|Ubuntu LTS
| [https://www.ubuntu.com/download/desktop Ubuntu LTS]
|The latest Ubuntu LTS (20.04 as of this writing). Ubuntu also has a new-user-friendly community but is heavily discussed because of some design choices.
| The latest Ubuntu LTS (20.04 as of this writing). Ubuntu also has a new-user-friendly community but is heavily discussed because of some design choices.
|}
|}
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.
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.
{| class="wikitable"
 
!Distribution
{|
!Explanation
! Distribution
! Explanation
|-
|-
|Garuda
| [https://garudalinux.org/ Garuda]
|Garuda is an ArchLinux based distro. Uses the offical ArchLinux software repositories. Ships with useful software for gaming. Is made to be user friendly.
| Garuda is an ArchLinux based distro. Uses the offical ArchLinux software repositories. Ships with useful software for gaming. Is made to be user friendly.
|-
|-
|Manjaro
| [https://manjaro.org/ Manjaro]
|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)
| Based on ArchLinux, but uses its own repositories and includes other features like automatic graphic card drivers installation. Is made to be user friendly. ([https://www.youtube.com/watch?v=Co6FePZoNgE Recommended by LTT])
|-
|-
|Endeavour
| [https://endeavouros.com/ Endeavour]
|Endeavour is an ArchLinux based distro. Uses the offical ArchLinux software repositories. Very minimal. You will need to use the terminal.
| Endeavour is an ArchLinux based distro. Uses the offical ArchLinux software repositories. Very minimal. You will need to use the terminal.
|-
|-
|Fedora
| [https://getfedora.org/ Fedora]
|Made by Red Hat, one of largest open source companies, which use the <code>dnf</code> package manager and has a lot of officially supported desktop environments.
| Made by Red Hat, one of largest open source companies, which use the <code>dnf</code> package manager and has a lot of [https://spins.fedoraproject.org/ officially supported desktop environments].
|-
|-
|Solus
| [https://getsol.us/home/ Solus]
|Solus brings updates to its users by means of a curated rolling release model.
| Solus brings updates to its users by means of a curated rolling release model.
|-
|-
|openSUSE
| [https://www.opensuse.org/ openSUSE]
|Offers both a rolling release (Tumbleweed) and a regular release (Leap) option.
| Offers both a rolling release (Tumbleweed) and a regular release (Leap) option.
|-
|-
|Linux Mint
| [https://linuxmint.com/ Linux Mint]
|Offers two versions. "Linux Mint" is based on Ubuntu and "LMDE" is based on Debian. The default desktop environment of Linux Mint, ''Cinnamon'' is nice, but doesn't get the most attention. You might face problems here.
| Offers two versions. &quot;Linux Mint&quot; is based on Ubuntu and &quot;LMDE&quot; is based on Debian. The default desktop environment of Linux Mint, ''Cinnamon'' is nice, but doesn't get the most attention. You might face problems here.
|-
|-
|elementary OS
| [https://elementary.io/ elementary OS]
|Based on Ubuntu, elementary OS strives to be user-friendly and deliver a cohesive aesthetic and user experience.
| Based on Ubuntu, elementary OS strives to be user-friendly and deliver a cohesive aesthetic and user experience.
|-
|-
|GamerOS
| [https://gamer-os.github.io/ GamerOS]
|If you are looking for a Steam-centric, couch-gaming-friendly Linux distribution, this might be what you are looking for.
| If you are looking for a Steam-centric, couch-gaming-friendly Linux distribution, this might be what you are looking for.
|-
|-
|Others
| Others
|There are a ton of Linux distros out there. Feel free to browse distrowatch if you're bored.
| There are a ton of Linux distros out there. Feel free to browse [https://distrowatch.com/ distrowatch] if you're bored.
|}
|}
If you are having trouble deciding, just start with Pop!_OS. 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 clickin an option that says, "Install alongside Windows".
'''If you are having trouble deciding, just start with Pop!_OS.''' It's not the flashiest, but you're almost guaranteed to find an answer to your problem if you search &quot;My Problem Pop!_OS&quot; or &quot;My Problem Ubuntu&quot; (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 [https://www.youtube.com/watch?v=u5QyjHIYwTQ video on dual booting] if you'd like a visual example, but it basically boils down to you clickin an option that says &quot;Install along side Windows&quot;.
 
== 5. The habit (what to do after the installation) ==
 
 
-----


== The habit (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.
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.


Line 149: Line 171:
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.
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, or most other distros that derive from Ubuntu, all you have to do is open a terminal and type:<syntaxhighlight lang="bash">
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, or most other distros that derive from Ubuntu, all you have to do is open a terminal and type:
sudo apt install steam
 
</syntaxhighlight>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?<syntaxhighlight lang="bash">
<pre>sudo apt install steam</pre>
sudo apt upgrade
[https://www.youtube.com/watch?v=iRu1FysEf6w 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?
</syntaxhighlight>Let's break those two lines down a bit so you know what's going on. <code>sudo</code> stands for "super user do". You can think of this like right clicking and choosing the "Run As Administrator" in Windows. <code>apt</code> is the package manager's name. <code>install</code> is the command to install programs. <code>steam</code> is the steam software. So in English we just said. "Please install the "steam" program as administrator (called root on Linux)."
 
<pre>sudo apt upgrade</pre>
Let's break those two lines down a bit so you know what's going on. <code>sudo</code> stands for &quot;super user do&quot;. You can think of this like right clicking and choosing the &quot;Run As Administrator&quot; in Windows. <code>apt</code> is the package manager's name. <code>install</code> is the command to install programs. <code>steam</code> is the steam software. So in English we just said. &quot;Please install the &quot;steam&quot; program as administrator (called root on Linux).&quot;


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.
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.


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:<syntaxhighlight lang="bash">
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 [https://fossforce.com/2021/10/googles-new-spyware-in-chrome-94/ Chrome being considered spyware]. [https://www.ubuntuupdates.org/ppa/google_chrome 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
</syntaxhighlight>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.


== Windows compatibility ==
<pre>wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
So you can't find a Linux version of that software you want to install? Our last step is to try Wine. Wine is a compatibility layer that tries to translate Window Binaries (.exes) calls into Linux calls. Sometimes this works really well, and other times nothing happens at all.
sudo sh -c 'echo &quot;deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main&quot; &gt;&gt; /etc/apt/sources.list.d/google.list'
sudo apt-get update
sudo apt-get install google-chrome-stable</pre>
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.
 
== 6. Windows compatibility ==
 
 
-----


First, let's install Wine.<syntaxhighlight lang="bash">
So you can't find a Linux version of that software you want to install? Our last step is to try [https://appdb.winehq.org/ Wine]. Wine is a compatibility layer that tries to translate Window Binaries (.exes) calls into Linux calls. Sometimes this works really well, and other times nothing happens at all.
sudo apt install wine
</syntaxhighlight>On some systems, installing Wine allows you to double click an .exe and it will try to run just like in Windows, but if not, you'll want to open a terminal and type (credit to /u/whyhahm for suggesting <code>cd</code> to directory before running):<syntaxhighlight lang="bash">
cd /path/to/program; wine file.exe
</syntaxhighlight>Remember to check the ratings and know issues in the wine AppDB so you know what you can expect, and you should be golden. Here's an in-depth guide of wine stuff but again, google and find how stuff works and it works. If you don't understand, please ask! The community is usually happy to help!


There are also some programs that try to help you with Wine. Lutris and PlayOnLinux are popular options. Lutris is the popular option and probably what you want to use for all your Games that are not on Steam.
For Steam games you can just use Steam. For games that are not on Steam, use [https://lutris.net/ Lutris]. Your last resort is the following:
 
First, let's install Wine.
 
<pre>sudo apt install wine</pre>
On some systems, installing Wine allows you to double click an .exe and it will try to run just like in Windows, but if not, you'll want to open a terminal and type (credit to [[u/whyhahm|/u/whyhahm]] for suggesting <code>cd</code> to directory before running):
 
<pre>cd /path/to/program; wine file.exe</pre>
Remember to check the ratings and know issues in the wine AppDB so you know what you can expect, and you should be golden. [https://wiki.archlinux.org/index.php/Wine Here's an in-depth guide of wine stuff] but again, google and find how stuff works and it works. If you don't understand, please ask! The community is usually happy to help!
 
There are also other programs that try to help you with Wine, like [https://www.playonlinux.com/en/ PlayOnLinux].
 
=== 6.1. DXVK/D9VK/Gallium Nine/VKD3D ===
 
 
-----


== DXVK/D9VK/Gallium Nine/VKD3D ==
What are DXVK/D9VK/VK9/Gallium Nine? I'll let the projects explain themselves:
What are DXVK/D9VK/VK9/Gallium Nine? I'll let the projects explain themselves:


DXVK: Vulkan-based D3D11, D3D10, and now D3D9, implementation for Linux / Wine
[https://github.com/doitsujin/dxvk DXVK]: Vulkan-based D3D11, D3D10, and now D3D9, implementation for Linux / Wine


D9VK: Used to be separate from DXVK, but now they are one project. Kept separate on this page for searching.
[https://github.com/Joshua-Ashton/d9vk D9VK]: Used to be separate from DXVK, but now they are one project. Kept separate on this page for searching.


Gallium Nine: Gallium Nine allows to run any Direct3D 9 application with nearly no CPU overhead, which provides a smoother gaming experience and increased FPS. Gallium Nine requires you to be using the Mesa3D driver though, so Nvidia users are out of luck. (Thanks to /u/MicroToast for the clarification)
[https://github.com/iXit/wine-nine-standalone Gallium Nine]: Gallium Nine allows to run any Direct3D 9 application with nearly no CPU overhead, which provides a smoother gaming experience and increased FPS. Gallium Nine requires you to be using the Mesa3D driver though, so Nvidia users are out of luck. (Thanks to [[u/MicroToast|/u/MicroToast]] for the clarification)


VKD3D (and its currently more active -proton fork): Translates D3D12 to Vulkan. Still in its early stages, but is already capable of running most games.
[https://source.winehq.org/git/vkd3d.git/ VKD3D] (and its currently more active [https://github.com/HansKristian-Work/vkd3d-proton -proton fork]): Translates D3D12 to Vulkan. Still in its early stages, but is already capable of running most games.


Okay, but what does that mean?
Okay, but what does that mean?
Line 192: Line 229:
All of these projects attempt to translate Direct3D calls to something that Linux understands. As far as I'm aware, the most used one is DXVK.
All of these projects attempt to translate Direct3D calls to something that Linux understands. As far as I'm aware, the most used one is DXVK.


Using these technologies, you can get huge performance boosts in your games. Here is Starcraft 2 running on d9vk vs regular Wine. You can see that Tuxidermy is getting almost twice the FPS most of the time (and D9VK is still really young). Here is another example, this time with World of Warcraft running regular Wine vs DXVK. In this example, you can see that DXVK is three times the FPS in most cases!
Proton and Lutris both have support for automatically using these technologies, so you don't have to worry about what to do in order to take advantage of them.
 
Using these technologies you can get very good performance, sometimes even better than on Windows! Cyberpunk 2077 for example gets 40% more FPS in [https://www.youtube.com/watch?v=sL_d_5MWPfQ this video]. Note, that this is not true for all games, though. Some games still run with less FPS, in general you can expect about the same performance. Also note, that this is not the default experience, but a heavily optimized Linux install. Your default experience will be worse.
 
== 7. Improving performance ==
 
 
-----
 
The default settings are probably not the best for a flawless experience. Read more [https://www.reddit.com/r/linux_gaming/wiki/improving_performance here]
 
== 8. Nice things ==
 
 
-----
 
You don't need the following. But you might find them useful for special use cases.


Proton has some support for automatically use these technologies when they're applicable, but you may want to use Lutris for games that aren't officially supported.
* [https://github.com/Plagman/gamescope Gamescope] for downscaling
* [https://github.com/DadSchoorse/vkBasalt vkBasalt] for additional rendering like anti aliasing or reshade
* [https://github.com/loki-47-6F-64/sunshine sunshine] to stream games from your computer to a client running [https://github.com/moonlight-stream moonlight]


== Improving performance ==
== 9. Downloading stuff from GitHub/GitLab ==
The default settings are probably not the best for a flawless experience. Read more here


== Improving visuals ==


* Use Gamescope for downscaling
-----
* Use vkbasalt for additional rendering like anti aliasing or reshade


== Downloading stuff from GitHub/GitLab ==
You might find yourself in the situation where you want to download something from GitHub or GitLab. Don't do it, as long it's not absolutely necessary. This is usually a bad idea. Try to find a better solution (for example post here in the forum). But here is how to do it:
You might find yourself in the situation where you want to download something from GitHub or GitLab. Don't do it, as long it's not absolutely necessary. This is usually a bad idea. Try to find a better solution (for example post here in the forum). But here is how to do it:


# Install git. If you're on Pop!_OS or other Ubuntu/Debian-based distributions: <code>apt install git</code>
# Install git. If you're on Pop!_OS or other Ubuntu/Debian-based distributions: <code>sudo apt install git</code>
# On GitLab there is a button called ''"Clone"'', on GitHub it's called ''"Code"''. Click it. You will see an URL like this: <code><nowiki>https://gitlab.com/some/stuff</nowiki></code>. Copy it (for example by clicking the button right next to it).
# On GitLab there is a button called ''&quot;Clone&quot;'', on GitHub it's called ''&quot;Code&quot;''. Click it. You will see an URL like this: <code>https://gitlab.com/some/stuff</code>. Copy it (for example by clicking the button right next to it).
# Open a terminal, and navigate to the folder where you want your stuff. For example, by typing <code>cd repos</code> if you have a folder <code>repos</code> in your home folder.
# Open a terminal, and navigate to the folder where you want your stuff. For example, by typing <code>cd repos</code> if you have a folder <code>repos</code> in your home folder.
# Type <code>git clone</code> (and type a space). Then paste the URL by pressing <code>ctrl</code> + <code>shift</code> + <code>v</code>. Then press <code>Enter</code>.
# Type <code>git clone</code> (and type a space). Then paste the URL by pressing <code>ctrl</code> + <code>shift</code> + <code>v</code>. Then press <code>Enter</code>.


== Troubleshooting ==
== 10. Troubleshooting ==
 
 
-----
 
I personally can't spend a lot of time helping people individually. That's where this and other communities come in!
I personally can't spend a lot of time helping people individually. That's where this and other communities come in!


* Join the IRC channel of the distribution that you are using
* Join the IRC channel of the distribution that you are using
* Join the /r/linux_gaming discord channel
* Join the [https://discord.gg/linuxgaming /r/linux_gaming discord channel]
* Ask here or in one of the linux subreddits
* [https://www.reddit.com/r/linux_gaming/wiki/index Ask here or in one of the linux subreddits]
* Ask in forums
* Ask in forums
* Check the /r/linux_gaming wiki
* Check the [https://www.reddit.com/r/linux_gaming/wiki/index /r/linux_gaming wiki]
* Google away
* Google away


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.
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.


== Common issues ==
=== 10.1. Common issues ===
Vulkan games (native, Proton, Wine with DXVK) don't run (no Vulkan support)
 
 
-----
 
'''Vulkan games (native, Proton, Wine with DXVK) don't run (no Vulkan support)'''


* Ensure that Vulkan drivers are installed, including the 32-bit drivers
* 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
* For users of older AMD GCN 1 or 2 cards, [https://www.reddit.com/r/linux_gaming/wiki/drivers#wiki_amd_hd_7xxx_and_newer ensure that the AMDGPU kernel driver is used instead of radeon]
 
== 11. Going further ==
 
 
-----
 
If you want to learn more about Linux and the command line, this is a great resource to interactively learn: https://linuxjourney.com/
 
== 12. The end ==
 


== Going further ==
-----
If you want to learn more about Linux and the command line, this is a great resource to interactively learn: <nowiki>https://linuxjourney.com/</nowiki>


== Credits ==
[[u/PBLKGodofGrunts|u/PBLKGodofGrunts]] put this guide under the [http://www.wtfpl.net/txt/copying/ WTFPL License.] Please attach this license when sharing or modifying this guide. I hope that this is helpful to someone.
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.

Revision as of 03:27, 15 January 2022

1. Prelude


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:

  • First, and foremost: Be prepared that nothing works as you would expect. Linux does not try to copy Windows. Stuff works differently. You will probably not be able to use the software that you're used to. But usually there is different software that might even be better.
  • Your experience will be much better if you have supported hardware. Your RGB keyboard may not blink in the way you want it to blink. You might not be able to change your mouse DPI or lift-of-distance. At least not out of the box and not without hassle. Wifi and Bluetooth are also known to be problematic. Check if your model is supported, or get a supported model. If you can choose your GPU, chose AMD. If you have a laptop that is unsupported, not all features will work out of the box, or might not work at all or without bugs. Normal functionality of other components is usually unproblematic, you should not have to worry about your CPU, RAM, etc.
  • Not all games work. Check lutris.net and protondb.com for information about what games are currently working. Most games that don't use anti-cheat work, even if they are not listed. However, they might not work without tweaking.
  • Use Pop!_OS. It might not be the best for everyone and everything, but it's a popular choice, and you should not face too many weird issues. If you don't know how to install it, watch this video. Use Balena Etcher (ignore what he says about rufus), and ignore the part about the alternative for shadowplay (assuming that you don't want that). Note, that Pop!_OS has two versions. One for Nvidia, and one for everything else. Install the version for Nvidia GPUs if you have one.
  • Use Steam (Runtime) for Steam games (if you don't know how to install it, watch the video linked above). Go to Steam -> Settings -> Steam Play and check "Enable Steam Play for all other titles" and then select "Proton Experimental" in the drop down menu. If something doesn't work, check out Proton-GE
  • Use Lutris for all other Windows Games. If something doesn't work, check out Wine-TKG
  • If you have an AMD GPU, install CoreCtrl. If you previously chose Pop!_OS, input the following in the terminal:

    sudo add-apt-repository ppa:ernstp/mesarc
    sudo apt-get update
    sudo apt install corectrl

    Otherwise look here for instructions. Open CoreCtrl, and add a profile for every game, or edit the global settings to your likings.

  • When Linux gives you a warning, take it seriously. It's not your average "You could harm your computer" bullshit you are used to from Windows.

  • Disable Composition: Your games will run like shit if you don't disable it. Read more here.

2. Getting Started


So, you want to get started in 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.

Want to checkout the latest news for Linux gaming? Take a trip to GamingOnLinux. They also have a great wiki that covers more topics than this one.

3. The software


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.

If you've done that and there's no Linux support, we go to the next step. 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.

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.

There is also a paid for solution called Crossover made by CodeWeavers. CodeWeavers are the same minds behind Valve's Proton so you should expect a pretty good product in general. They have a search feature that you should also use.

I will mention that some games are more problematic then 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.

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
  • 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 met 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)

4. The swap (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 bleeding edge distros or rolling release distros. If you want to be up to date with features, you want a bleeding edge distro, but in exchange for the latest and greatest features you run an increase risk of running into bugs. Stable Release distros usually have to wait longer for updates, but those updates are often heavily vetted before being pushed out.
  • 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.

If you want to avoid problems:

  • Choose something with KDE or Gnome.
  • Don't choose a "stable" distribution because "stable" usually means "old".
  • Don't choose a nieche distribution because this probably means that you don't have good software availability.
  • Don't choose something with Wayland if you want low input lag and/or have an Nvidia GPU.

Now that I've explained that, let's have a look at different distributions.

First a list of some "easy" distributions:

Distribution Explanation
Pop!_OS Pop!_OS is a Linux distribution developed by System76 based on Ubuntu, using the GNOME Desktop Environment. Has a Nvidia and a AMD/Intel image for convenience. (Recommended by LTT) If you don't know what to choose, pick this one.
Ubuntu LTS The latest Ubuntu LTS (20.04 as of this writing). Ubuntu also has a new-user-friendly community but is heavily discussed because of some design choices.

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.

Distribution Explanation
Garuda Garuda is an ArchLinux based distro. Uses the offical ArchLinux software repositories. Ships with useful software for gaming. Is made to be user friendly.
Manjaro 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)
Endeavour Endeavour is an ArchLinux based distro. Uses the offical ArchLinux software repositories. Very minimal. You will need to use the terminal.
Fedora Made by Red Hat, one of largest open source companies, which use the dnf package manager and has a lot of officially supported desktop environments.
Solus Solus brings updates to its users by means of a curated rolling release model.
openSUSE Offers both a rolling release (Tumbleweed) and a regular release (Leap) option.
Linux Mint Offers two versions. "Linux Mint" is based on Ubuntu and "LMDE" is based on Debian. The default desktop environment of Linux Mint, Cinnamon is nice, but doesn't get the most attention. You might face problems here.
elementary OS Based on Ubuntu, elementary OS strives to be user-friendly and deliver a cohesive aesthetic and user experience.
GamerOS If you are looking for a Steam-centric, couch-gaming-friendly Linux distribution, this might be what you are looking for.
Others There are a ton of Linux distros out there. Feel free to browse distrowatch if you're bored.

If you are having trouble deciding, just start with Pop!_OS. 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 clickin an option that says "Install along side Windows".

5. The habit (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.

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, or most other distros that derive from Ubuntu, 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. install is the command to install 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.

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.

6. Windows compatibility


So you can't find a Linux version of that software you want to install? Our last step is to try Wine. Wine is a compatibility layer that tries to translate Window Binaries (.exes) calls into Linux calls. Sometimes this works really well, and other times nothing happens at all.

For Steam games you can just use Steam. For games that are not on Steam, use Lutris. Your last resort is the following:

First, let's install Wine.

sudo apt install wine

On some systems, installing Wine allows you to double click an .exe and it will try to run just like in Windows, but if not, you'll want to open a terminal and type (credit to /u/whyhahm for suggesting cd to directory before running):

cd /path/to/program; wine file.exe

Remember to check the ratings and know issues in the wine AppDB so you know what you can expect, and you should be golden. Here's an in-depth guide of wine stuff but again, google and find how stuff works and it works. If you don't understand, please ask! The community is usually happy to help!

There are also other programs that try to help you with Wine, like PlayOnLinux.

6.1. DXVK/D9VK/Gallium Nine/VKD3D


What are DXVK/D9VK/VK9/Gallium Nine? I'll let the projects explain themselves:

DXVK: Vulkan-based D3D11, D3D10, and now D3D9, implementation for Linux / Wine

D9VK: Used to be separate from DXVK, but now they are one project. Kept separate on this page for searching.

Gallium Nine: Gallium Nine allows to run any Direct3D 9 application with nearly no CPU overhead, which provides a smoother gaming experience and increased FPS. Gallium Nine requires you to be using the Mesa3D driver though, so Nvidia users are out of luck. (Thanks to /u/MicroToast for the clarification)

VKD3D (and its currently more active -proton fork): Translates D3D12 to Vulkan. Still in its early stages, but is already capable of running most games.

Okay, but what does that mean?

Direct3D (the graphical part of the DirectX API) is what most Windows game built after ~2000 use. You don't really need to know any technically details about it other than the fact that it's a Windows' only API. For the longest time, one of the biggest bottle necks for gaming on Linux was translating the Direct3D calls to OpenGL (a cross platform graphical API that works on Linux/most other OSes).

All of these projects attempt to translate Direct3D calls to something that Linux understands. As far as I'm aware, the most used one is DXVK.

Proton and Lutris both have support for automatically using these technologies, so you don't have to worry about what to do in order to take advantage of them.

Using these technologies you can get very good performance, sometimes even better than on Windows! Cyberpunk 2077 for example gets 40% more FPS in this video. Note, that this is not true for all games, though. Some games still run with less FPS, in general you can expect about the same performance. Also note, that this is not the default experience, but a heavily optimized Linux install. Your default experience will be worse.

7. Improving performance


The default settings are probably not the best for a flawless experience. Read more here

8. Nice things


You don't need the following. But you might find them useful for special use cases.

9. Downloading stuff from GitHub/GitLab


You might find yourself in the situation where you want to download something from GitHub or GitLab. Don't do it, as long it's not absolutely necessary. This is usually a bad idea. Try to find a better solution (for example post here in the forum). But here is how to do it:

  1. Install git. If you're on Pop!_OS or other Ubuntu/Debian-based distributions: sudo apt install git
  2. On GitLab there is a button called "Clone", on GitHub it's called "Code". Click it. You will see an URL like this: https://gitlab.com/some/stuff. Copy it (for example by clicking the button right next to it).
  3. Open a terminal, and navigate to the folder where you want your stuff. For example, by typing cd repos if you have a folder repos in your home folder.
  4. Type git clone (and type a space). Then paste the URL by pressing ctrl + shift + v. Then press Enter.

10. Troubleshooting


I personally can't spend a lot of time helping people individually. That's where this and other communities come in!

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.

10.1. Common issues


Vulkan games (native, Proton, Wine with DXVK) don't run (no Vulkan support)

11. Going further


If you want to learn more about Linux and the command line, this is a great resource to interactively learn: https://linuxjourney.com/

12. The end


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.