What's the best linux distro for Gaming? and how to configure it?

We'll explore the best gaming distributions in Linux, and later we'll install Steam, Lutris, and other game tools.

Recently, three distributions have surged in popularity. Specifically,

Bazzite

  • a distribution based on Fedora Silverblue (an inmutable system)

CachyOS

  • based on Arch

Nobara

  • based on Fedora.

Although these distributions are popular amongst those who game on Linux, actually, I don't recommend installing any of those distributions, because they have various problems:

Bazzite:

Pros:

  • It's base installation already has Steam, Lutris and other components(wine/proton) preconfigured, so we don't need to install anything else
  • As it's an immutable system, there's less risk of damaging/breaking the system

Cons:

  • As its an immutable distro, this makes it difficult to modify the system, or fix it (if it's necessary to)
  • Also, it causes problems trying to install new packages/programs. Some system programs can be installed with rpm-ostree but it's difficult to modify the base system. Eg: where are the wine/proton versions installed? they don't appear as flatpaks, and niether appear in rpm-ostree. And it's unclear how to add other Proton versions to Steam. (like Proton-GE)
  • Even though it's based on Fedora, not all packages for Fedora can be installed. The majority of packages don't have a version for flatpak/snap/AppImage, and rpm-ostree can cause issues when trying to install packages. Eg, I couldn't install Kaspersky antivirus because of some errors or incompatibility.
  • Issues repairing the system: As it's immutable, it's difficult to fix anything. Let's say you can't enter into the system, and try to fix it using Chroot. However, using Chroot doesn't work on this immutable distro, and the modifications are lost.

CachyOS:

Pros:

  • in some specific usecases, CachyOS uses some Kernel and compiling optimisations, so it could be a bit faster (in specific scenarios)
  • They have an easy installer for Steam/lutris etc

Cons:

  • As it's based on Arch Linux, it has a limited selection of packages. Many programs have a version for Debian, and maybe Fedora/RHEL, but don't have a version for Arch/CachyOS.
  • Also, the majority of instructions and guides are for Debian/Fedora, so it's difficult to find information. In many cases, you could be the only person trying it.

Debian

It's better to simply use Debian (or one of it's popular derivatives such as Ubuntu/Mint). You'll have the biggest selection of packages, and the most guides and information.

I found it useful to see this video para aprender como instalar y configurar todo.

First, we want to install Flatpak. Even though it's not strictly necessary to use Flatpak, because everything can be installed normally using apt, it's easier to use Flatpak. sudo apt install flatpak

If you want (it's completely optional), you can also install a flatpak integration in the software centre for Gnome/KDE:

for Gnome:

sudo apt install gnome-software-plugin-flatpak

for KDE:

sudo apt install plasma-discover-backend-flatpak

Next, we add the FlatHub repo:

flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo

Now that we have Flatpak installed, we can install the following packages:

Steam:

flatpak install com.valvesoftware.Steam

Lutris:

flatpak install net.lutris.Lutris

Proton-GE (another version of Proton):

flatpak install com.valvesoftware.Steam.CompatibilityTool.Proton-GE

ProtonTricks (a tool to configure Proton):

flatpak install com.github.Matoking.protontricks

ProtonUp-Qt (another tool to configure Proton):

flatpak install net.davidotek.pupgui2

Flatseal (a tool to configure Flatpak app's permisions):

flatpak install com.github.tchx84.Flatseal

Gamescope (a program to activate options like DLSS/FSR/CPU statistics):

flatpak install org.freedesktop.Platform.VulkanLayer.gamescope

MangoHUD (a program to show CPU/GPU statistics in a HUD):

flatpak install org.freedesktop.Platform.VulkanLayer.MangoHud

Note: if you want to use MangoHUD with lutris, install the 23.08 version instead of the newest 25.08.

Configuration:

  • If you want to install Steam games in a different location than the default, or if you already have Steam games installed on another drive, you'll have to give Steam permissions to that folder.

flatpak override --user --filesystem=/path/to/your/games com.valvesoftware.Steam

flatpak override --user --filesystem=/path/to/your/games com.github.Matoking.protontricks

  • Once you've installed a game on Steam, right-click on the game, and click options.
  • If you want to see CPU/GPU statistics in a HUD, in the commandline options, put:

gamemoderun gamescope --mangoapp -w 640 -h 380 -W 1920 -H 1080 -f -- %command%

  • If you want to force the use of FSR, you can put:

env MANGOHUD_CONFIG="fsr,fps_value,gamemode" gamemoderun gamescope --mangoapp -w 640 -h 380 -W 1920 -H 1080 -F fsr -f -- %command%

  • Next, find the compatibility page, and tick force the use of a compatibility layer. You can choose the Proton version to use. Personally, i haven't had issues with Proton Experimental.

Non-Steam games

If you have games outside of Steam, don't worry. It's very easy to add games to Steam or Lutris to use Proton. Down on the left hand side, there's a button to add external games (+). Note, that you have to give permissions to Steam to see the directory with the games:

flatpak override --user --filesystem=/path/to/your/games com.valvesoftware.Steam

If instead of Steam, you want to launch them using Lutris, then click on the (+) on the up-left corner and click Add a locally-installed game. If you enter the Name of the game field correctly, Lutris can automatically find the cover image for the icons. And select 'Wine' as the runner.

On the next page (Game options), select the executable (.exe) of the game. And below, you need to select the Wine prefix. In the Wine prefix, Lutris will install some libraries like .Net, and will create a drive_c directory, to mimic Windows. This allows games, as an example, to save game data in a fake C:Users\user\AppData\Local\game. You can select a directory like ~/Games/name-of-the-game if you don't need Steam integration.

That said, if you want to add the game through Steam, then the wine prefix lives in

~/.var/app/com.valvesoftware.Steam/data/Steam/steamapps/compatdata/[0-9]/pfx

(the [0-9] is different for every game)

On the executor options page you can select the Proton version to use (if Proton - Experimental doesn't work, you can try Proton-GE which was installed via the flatpak previously, or another Proton verion. You can also activate MangoHUD.

Instal games from a .exe installer

If you 'find a free version under the bed', you can install the game using this method. First, in Lutris, proceed just as if you will add a locally installed game. Ie, click on the (+), select add a locally installed game and enter the name of the game. In the game options tab, don't select any executable file (for now). But do select the Wine prefix, wherever you want. Select the Proton version and add the game.

Next, selecting the game on the main screen, near the wine cup icon is an up arrow. Click on the arrow, and select execute a .EXE inside the wine prefix. Here, select the game installer, and in a little while, the installer will appear. You can install the game as if it were Windows, to disk C:. Lastly, modify the game configurations to point the executable to where you installed the game (ie, ~/wine-prefix/pfx/drive_c/route/to/the/game) and you can launch the game!

Notes:

  • Sometime Lutris doesn't correctly create the wine prefix. If so, you can create and use the wine prefix created by Steam.

  • Some games (eg stellaris) might not work unless you enable the Battleye and EasyAntiCheat options in Lutris