Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Linux Gaming

Linux gaming has come a long way in recent years, and many popular games are now available natively on the platform. Tools like Proton (a compatibility layer for running Windows games on Linux) and Lutris (a gaming platform for managing games from various sources) have also made gaming on Linux much easier.

If you want to play a lot of games and avoid heavy setup, I recommend using Bazzite or Nobara Linux. Both are gaming-focused distributions that come pre-configured with many of the tools and drivers you need. Starting from a blank distribution like Debian or Arch Linux can work, but it usually requires more manual configuration.

Understanding WINE and Proton

WINE (Wine Is Not an Emulator) is a compatibility layer that allows you to run Windows applications on Linux. It translates Windows API calls into POSIX calls, so many Windows applications can run without a full Windows installation. Proton is a Valve-maintained version of WINE, designed specifically to run Windows games through Steam.

While WINE and Proton can run many Windows applications and games, they are not perfect. Some applications require extra configuration, and some may not work at all. Check compatibility reports on ProtonDB to see whether a game is supported and what tweaks may be needed.

Lutris is a front-end for managing games on Linux, with a user-friendly interface for installing and launching games from sources like Steam, GOG, and Battle.net. It supports both WINE and Proton and includes community install scripts that can simplify setup.

Heroic Games Launcher is an open-source launcher for the Epic Games Store. It lets you install and play Epic Games on Linux with a simple interface and useful per-game configuration options.

Bottles is a front-end for WINE that simplifies running Windows applications on Linux. It provides a user-friendly interface for managing WINE prefixes and configuration profiles.

WINE Usage

WINE is a powerful tool for running Windows applications on Linux, but it can be complex to set up and use effectively. Here are some tips for using WINE:

  1. Installation: Install WINE using your distribution’s package manager. For example, on Ubuntu, you can use:

    sudo apt install wine
    

    On Arch Linux, you can use:

    sudo pacman -S wine
    
  2. Configuration: After installing WINE, you can run winecfg in the terminal to configure WINE settings. This will create a default WINE prefix in your home directory (~/.wine) and allow you to set various options, such as the Windows version to emulate, graphics settings, and audio configurations.

  3. Installing Windows Applications: To install a Windows application using WINE, you can run the installer executable with the wine command. For example:

    wine setup.exe
    

    Replace setup.exe with the actual name of the installer file. WINE will create a virtual C: drive in your WINE prefix, where the application will be installed.

  4. Running Windows Applications: After installation, you can run the application using WINE by executing the application’s executable file. For example:

    wine /path/to/application.exe
    

    Replace /path/to/application.exe with the actual path to the application’s executable file.

  5. Managing WINE Prefixes: WINE uses a concept called “prefixes” to manage different environments for running Windows applications. By default, WINE uses the ~/.wine directory as its prefix. You can create additional prefixes by setting the WINEPREFIX environment variable before running WINE commands. For example:

    WINEPREFIX="/path/to/custom/prefix" wine /path/to/application.exe
    

    This allows you to maintain separate configurations and installations for different applications, which can be useful for managing dependencies and settings.

  6. Using Winetricks: Winetricks is a script that helps you install Windows libraries and components in a WINE prefix. It is useful for installing dependencies like .NET Framework or DirectX.

    You can install Winetricks with your package manager or download it from the Winetricks GitHub repository.

WINE prefixes can get complicated when you add .NET and other components with Winetricks. Unlike Windows, you cannot uninstall .NET cleanly from a WINE prefix in many cases, so it is best to create a new prefix per application when different dependency versions are required.

Once an application is working, avoid changing that prefix by adding or removing libraries, because that can break it. If you need major changes, create a new prefix and set it up again.

Proton Usage

Proton is a compatibility layer developed by Valve that allows you to run Windows games through Steam on Linux. It is built on top of WINE and includes extra libraries and optimizations for game compatibility and performance. Here are some tips for using Proton:

  1. Installation: Proton is integrated into the Steam client, so you do not need to install it separately. Make sure you have the latest version of Steam installed on your Linux system. You can install Steam using your distribution’s package manager. For example, on Ubuntu, you can use:

    sudo apt install steam
    

    On Arch Linux, you can use:

    sudo pacman -S steam
    
  2. Enabling Proton for all games: To enable Proton for all games, open the Steam client, go to “Settings,” then “Steam Play.” Check the box for “Enable Steam Play for all other titles” and select the desired Proton version from the dropdown menu.

  3. Installing Proton GE: Proton GE (Glorious Eggroll) is a community-maintained version of Proton that includes additional patches and optimizations for specific games. You can download it from the Proton GE GitHub repository.

    After downloading, extract the contents to your Steam directory, typically located at ~/.steam/root/compatibilitytools.d/. If the compatibilitytools.d directory does not exist, you can create it. Once extracted, restart the Steam client, and you should see Proton GE listed as an available compatibility tool in the Steam Play settings.

    For updates, I recommend using ProtonUp-Qt, which provides a user-friendly interface for managing Proton GE installs. If you prefer the terminal, use:

    protonup -u
    

    This will update Proton GE to the latest version available. Install protonup through python pip:

    pip install protonup
    
Last change: