When Gamers Switch to Linux

A method to switch to Linux, and be able to game. WARNING: Certain games cannot be played on Linux due to anti-cheats that are not anti-cheating softwre, but instead, AI-based slop and malware designed to take control of the hardware you bought and paid for.

Introduction

Similar to Vibe Coding with Free Software Philosophy, which I wrote not that long ago, gamers are eventually going to have to switch from Windows to Linux for their PC gaming needs. Granted, 90% of games can be played on Linux, some of them using WINE (WINE is Not an Emulator) or Proton (think Valve’s version of WINE), but some games won’t work at all.

The Operating System (Distribution)

Every computer needs an operating system. However, a lot of Windows victims will have no idea where to start. As I’ve mentioned in the above titled article, I would recommend something like Linux Mint, Pop_OS!, LMDE, PikaOS, Nobara Project or CachyOS depending on your computing and software experience. Most people who don’t know how Linux works are recommended to try Mint, Pop, LMDE, or Pika, as those are beginner-friendly distributions that you can take a look at. Nobara Project is good for those who want more recent versions of software, but still want something easy to use. CachyOS is Arch-based, but there are some other beginner-friendly Arch-based distributions such as EndeavourOS, RebornOS, and even Systemd-free options like Obarun and even Parabola, which uses Linux Libre, but has an OpenRC option instead of Systemd.

The User Environment

There are two types of user environments: Desktop Environments (DE) and Window Managers (WM) for X11/XLibre, or Compositors on Wayland. This is critical based upon hardware specifications. However, because IBM, GNOME (a desktop environment), and FreeDesktop are trying to force Wayland down our throats, I’d recommend sticking to X11 and trying XLibre.

The Desktop Environment

If you have enough ram, and a powerful enough CPU and GPU combo, then a DE might be a good option. These include the following:

  • Cinnamon, the Linux Mint flagship DE with X11 by default, and Wayland support in the works
    • Has the looks of Windows Vista or Windows 7
  • MATE, a GNOME 2-based DE with X11 by default, and Wayland support in the works
  • Enlightenment, the flagship DE that ships with many distributions, with X11 by default, and Wayland support in the works
  • LXQt, a continuation of LXDE, with X11 by default, and Wayland support in the works
  • Moksha, a fork of Enlightenment DR17 designed for Bodhi Linux, with X11 by default, and Wayland support in the works
  • Trinity Desktop Environment (TDE), a fork of KDE Plasma 3, with X11 only and no Wayland plans publicly
  • XFCE, a low resource-friendly DE, with X11 by default, and Wayland support in the works

The Window Manager

If your system has lower resources, or you just want to save on resources, then a Window Manager is a good option. You need to keep in mind that you’ll need to learn keybinding and configuration in order to get it to do what you want it to do. Most config files for a WM are located in ~/.config/$WM, where $WM is my codeword for what the Window Manager is.

These WM’s come as follows, all for X11/XLibre:

  • i3, a beginner-friendly, manual tiling WM, written from scratch and based off of wmii (window manager improved 2) due to some features that were not present
    • Has multi-monitor support
    • Tree metaphor (whatever that is)
    • Plan 9 interface from wmii isn’t implemented for speed purposes
    • Has a beginner-friendly syntax in its config file
    • Customizable with plugins (like Autotiling to configure it to perform master and stack layout)
  • BSPWM, a manual tiler representing windows as the leaves of a binary tree
    • Support for EWMH and multiple monitors
    • Programmable in almost any language
      • Bash is commonly used to program it
    • Controlled using messages (in this case, SXHKD)
    • Keep in mind that both the bspwmrc and sxhkdrc MUST by made executable, or the WM doesn’t run
  • HerbstluftWM, a manual tiler using Xlib and Glib
    • Frame-splitting layout similar to i3 or musca
    • Tag manipulation (addition or removal) at runtime
    • One layout per tag
    • Tags are independent of the monitor
    • Configured using herbstclient
      • Has a script to use on startup, similar to BSPWM
  • Awsome (AWM), a dynamic tiler written in C, but highly configurable using Lua in its config file
    • Fast
    • Extensible
    • GPL-2 licensed
    • System tray
    • Info bar
    • Built-in launcher
    • Extensions available, all written in Lua
    • XCB is used (in opposition to Xlib)
    • Forked from dwm (a C-based WM that is configured with the source code, and requires 2000 lines of code per file (patching is required))
      • Forked to remove the arbitrary line limit
  • Xmonad, a dynamic tiler written and configured in Haskell
    • Haskell’s major implementation outside of Facebook’s anti-spam
    • Automation of window searching and alignment
    • Requires the Haskell compiler
      • Every time a change is made, it needs to be recompiled
    • Additional features in xmonad-contrib for extra features
  • Qtile, the Xmonad clone written and configured in Python
    • Easy to write layouts, widgets, and built-in commands
    • Extensible thanks to the power of Python (and I hate Python a lot in some cases)
    • Otherwise, just as powerful as Xmonad or Awesome
  • Wingo, a fully featured true hybrid WM
    • Supports per-monitor workspaces
    • Floating or tiling modes aren’t afterthoughts
    • Scripted in its own command language
    • Themability out the wazoo
    • Supports user-defined webhooks
    • Written in Go, and has no runtime dependencies
      • Meaning, no dependency purgatory
  • Hypr, a WM that sparked the beginning of what would be Hyprland
    • Sports a beginner friendly syntax
    • Has a bar by default, similar to Qtile
  • Ratpoison, a manual tiler that’s simple and has no library dependencies
    • Modeled after GNU Screen, which made major shifts in the virtual terminal market
    • Configured with a text file
    • Info bar serves as an app launcher and notification bar
    • No systray
    • Designed to minimize key clobbering that cripples Emacs and other great Free Software

Why All This?

If you want to game, you’d kinda want the resources to be available while you do so. Not to mention that when gaming with an optimized system (you need to make sure you learn how to optimize it yourself), it will net performance gains due to the amount of bloat (almost zero) that is installed compared to Windows.

How Can Linux be Optimized?

For this section, there are many of these that can be utilized. However, I’ll go from a note I have for a course I’m designing, as follows:

Installing the OS

  • In the live environment, click on the disc icon to install the OS
    • In other OS’s, learn how to start the installation process
  • Go through the installation process, and explain in a little bit of detail how this works
  • Done for all three OS’s
  • Restart the machine
  • Remove the installation medium when prompted or during reboot sequence
  • Enter password
  • Compositing turned off
  • Open a terminal (using Ctrl+Alt+T if supported), then sudo apt update && sudo apt upgrade -y, sudo dnf update, or sudo pacman -Syyu
    • sudo apt dist-upgrade -y is also usable for the second command on Debian/Ubuntu-base, though it upgrades the kernel as well
  • Once updated, reboot
  • Enter password
  • Do the update and upgrade again, just in case something’s been updated
  • Add the 32-bit architecture (It’s not there by default)
  • Install proprietary drivers using the Driver Manager program (unless they’re installed automatically)
  • Install ufw and fail2ban, and find a recommended fail2ban.local and UFW rules (or just use the ones I install, which in turn are from Chris Titus)
  • Grab a custom kernel (Xanmod or Liquorix on Debian/Ubuntu-base, CachyOS kernel on Arch-base or Cachy itself, but custom kernel is already installed by default on Nobara)
  • Install Wine Staging and Lutris, also Steam and Itch (no brainer)
  • ulimit -Hn to check if Esync and/or Fsync is enabled (if applicable)
    • Over 500000 indicates that Esync is enabled (Potentially the same for Fsync too)
  • Download Gamemode Daemon (except those using CachyOS, don’t do this, nor if using a Systemd-free alternative)
  • Download a custom Proton (GE, using ProtonUp-Qt or another similar program)

Ubuntu/Debian-base (PikaOS or Mint)

  • Almost straightforward
  • Exception is OBS, as that needs to be added to the sources (PPA on Ubuntu-base for Mint is very easy to do)

Fedora/RedHat-base (Nobara or Fedora)

This is kinda unnecessary if you’re using Nobara Project

  • If using Fedora, first, edit /etc/dnf/dnf.conf
    • Add in the following with a text editor:
      1. fastestmirror=True
      2. max_parallel_downloads=n where n is a number (usually up to 5, but I use 3)
      3. defaultyes=True for no-confirm reasons
      4. keepcache=True
  • Clean the cache with sudo dnf clean dbcache
    • all can be used in place of dbcache
  • sudo dnf groupupdate to update a group of repos
  • sudo hostnamectl set x where x is the hostname you want to use
  • sudo dnf groupupdate multimedia --setop="install_weak_dependencies=False" --exclude=PackageKit-gstreamer-plugin to update the multimedia packages
  • sudo dnf groupupdate sound-and-video to update the sound and video repos
  • sudo dnf install wine lutris steam gamemode to get gaming set up in Fedora (not Nobara)
  • Installing OBS is as simple as sudo dnf install obs-studio

Arch-base (Arch or CachyOS)

  • sudo pacman -Syyu
    • paru -Syyu if on CachysOS, though optional (paru is pre-installed on Cachy by default), or yay -Syyu if you don’t have paru by default, but YAY instead
  • Edit /etc/pacman.conf in order to configure Pacman to include the multilib repos (just remove the # from Include = /etc/pacman.d/mirrorlist in the [multilib] section)
  • Then do sudo pacman -S lib32-mesa vulkan-radeon lib32-vulkan-radeon vulkan-icd-loader lib32-vulkan-icd-loader -y to install the graphics things
    • You might have to add the Nvidia drivers too, if using Nvidia
  • For a custom kernel, use either Zen or CachyOS kernel, nothing else
  • Then prepare for a long command, that being sudo pacman -S wine-staging giflib lib320-giflib libpng lib32-libpng libldap lib32-libldap gnutls lib32-gnutls mpg123 lib32-mpg123 openal lib32-openal v4l-utils lib32-v4l-utils libpulse lib32-libpulse libgpg-error lib32-libgpg-errpr alsa-plugins lib32-alsa-plugins alsa-lib lib32-alsa-lib libjpeg-turbo lib32-libjpeg-turbo sqlite lib32-sqlite libxcomposite lib32-libxcomposite libxinerama lib32-libgcrypt libgcrypt lib32-libxinerama ncurses lib32-ncurses opencl-icd-loader lib32-opencl-icd-loader libxslt lib32-libxslt libva lib32-libva gtk3 lib32-gtk3 gstplugins-base-libs lib32-gstplugins-base-libs vulkan-icd-loader lib32-vulkan-icd-loader lutris -y
    • Might be replaced with pipewire if PulseAudio isn’t one’s cup of tea
  • For NVIDIA sudo pacman -S nvidia for NVIDIA drivers if those are necessary
  • For CachyOS users, the cachyos-gaming-meta is the package to pick up, which has everything necessary for gaming setup on the system
  • Installing OBS is as simple as sudo pacman -S obs-studio

Got all of that? Good, because that’s how you’ll optimize your OS of choice.

Conclusion

This is just the start in actually being intentional with the data and analytics traps that you fall for. Eventually, you’ll end up using the GHOST method and start becoming private while also utilizing a digital version of the Inside/Outside method. After all, it’s a matter of time before Windows users become fed up with their data being leaked, as GNU/Linux, when optimized and secured properly, will be the key to eventually taking back control of your data you leaked.

Write a comment
No comments yet.