CachyOS Gaming Configuration - ryzendew/Linux-Tips-and-Tricks GitHub Wiki

CachyOS Gaming Configuration Guide

This guide covers optimizing CachyOS for gaming, including Steam setup, Wine/Proton configuration, performance tweaks, and gaming-specific optimizations.


Table of Contents

  1. Why CachyOS for Gaming?
  2. Graphics Driver Setup
  3. Steam Installation and Configuration
  4. Wine and Proton Setup
  5. Performance Optimizations
  6. Gaming-Specific Tweaks
  7. Lutris Setup
  8. Troubleshooting Gaming Issues

Why CachyOS for Gaming?

Performance Benefits

CachyOS provides excellent gaming performance:

  1. BORE Scheduler: Lower input lag, better responsiveness
  2. Optimized Packages: Faster application startup
  3. Custom Kernel: Better performance optimizations
  4. Low Latency: Optimized for real-time applications

Gaming Advantages

  • Lower input lag: BORE scheduler prioritizes interactive tasks
  • Better frame times: More consistent performance
  • Faster loading: Optimized packages load quicker
  • Better multitasking: System stays responsive while gaming

Graphics Driver Setup

NVIDIA Setup

Install NVIDIA drivers:

# Use chwd (recommended)
sudo chwd -h -a nvidia

# Or manually
sudo pacman -S nvidia nvidia-utils nvidia-settings

# For 32-bit support (needed for Steam)
sudo pacman -S lib32-nvidia-utils

Configure NVIDIA:

# Open NVIDIA settings
nvidia-settings

# Configure:
# - Performance mode
# - VSync settings
# - Power management

NVIDIA optimizations:

# Enable performance mode
sudo nvidia-smi -pm 1

# Set power limit (if needed)
sudo nvidia-smi -pl 200  # Adjust wattage as needed

AMD Setup

Install AMD drivers:

# AMD open-source drivers (usually pre-installed)
sudo pacman -S mesa vulkan-radeon lib32-mesa lib32-vulkan-radeon

# For newer AMD GPUs
sudo pacman -S mesa vulkan-radeon xf86-video-amdgpu

AMD optimizations:

# Enable performance mode (if available)
# Check with: cat /sys/class/drm/card*/device/power_dpm_force_performance_level

Intel Setup

Intel integrated graphics:

# Install Intel drivers
sudo pacman -S mesa vulkan-intel lib32-mesa lib32-vulkan-intel

Note: Intel integrated graphics have limited gaming performance. Consider a dedicated GPU for serious gaming.

Verify Graphics Setup

Check GPU is working:

# Check NVIDIA
nvidia-smi

What this command does:

  • nvidia-smi: NVIDIA System Management Interface
  • Shows detailed information about your NVIDIA GPU
  • Verifies that NVIDIA drivers are installed and working

What you should see:

  • A table showing GPU information
  • Driver version
  • GPU temperature and usage
  • Memory usage

If you see an error:

  • NVIDIA-SMI has failed: Drivers not installed or GPU not active
  • Solution: Install NVIDIA drivers: sudo chwd -h -a nvidia
# Check OpenGL
glxinfo | grep "OpenGL renderer"

What this command does:

  • glxinfo: Shows OpenGL graphics information
  • OpenGL: A graphics API used by many games and applications
  • | grep "OpenGL renderer": Finds the line showing which GPU is used

Example output (NVIDIA):

OpenGL renderer string: NVIDIA GeForce RTX 3060/PCIe/SSE2

Example output (AMD):

OpenGL renderer string: AMD Radeon RX 6700 XT (radeonsi, navi22, LLVM 15.0.7, DRM 3.49, 6.6.5)

What this tells you:

  • Which GPU is being used for graphics
  • If it shows your GPU model, drivers are working
  • If it shows "llvmpipe" or "software", hardware acceleration isn't working

If command not found:

# Install mesa-utils (contains glxinfo)
sudo pacman -S mesa-utils
# Check Vulkan
vulkaninfo | grep "deviceName"

What this command does:

  • vulkaninfo: Shows Vulkan graphics API information
  • Vulkan: A modern graphics API used by many games (alternative to OpenGL)
  • | grep "deviceName": Finds the GPU name in Vulkan output

Example output:

deviceName     = NVIDIA GeForce RTX 3060

What this tells you:

  • Your GPU supports Vulkan (good for modern games)
  • Vulkan drivers are installed correctly
  • Games using Vulkan will work

If command not found:

# Install vulkan-tools (contains vulkaninfo)
sudo pacman -S vulkan-tools

If you see errors:

  • Vulkan not supported: Your GPU may not support Vulkan (very old GPUs)
  • Driver issues: Install/update graphics drivers
  • Note: Most modern GPUs (2015+) support Vulkan

Steam Installation and Configuration

Installing Steam

Install Steam:

# Install Steam
sudo pacman -S steam

# Or from AUR (for latest version)
yay -S steam-native-runtime

Steam Configuration

Launch Steam:

steam

What this command does:

  • steam: Launches the Steam application
  • Steam is a gaming platform and store
  • First launch may take longer (initial setup)

What you'll see:

  • Steam login window (if not logged in)
  • Or Steam main window (if already logged in)
  • May show update/download progress

First-time setup:

  1. Create or log in to Steam account
  • If you don't have an account: Click "Create account"
  • If you have an account: Enter username and password
  • Why needed: Steam requires an account to use
  1. Complete Steam setup wizard
  • Steam may ask to install additional components
  • May download Steam runtime (libraries Steam needs)
  • Follow on-screen instructions
  1. Install Steam runtime
  • Steam runtime: Libraries and dependencies Steam needs
  • Usually installs automatically
  • May take a few minutes to download
  • Required for games to run

What is Steam runtime?

  • Collection of libraries and dependencies
  • Ensures games work even if your system is missing some libraries
  • Provides consistent environment for games
  • Usually installs automatically on first launch

Steam Performance Settings

Steam settings for performance:

  1. Steam → Settings → In-Game:
  • Enable "In-game overlay"
  • Set FPS counter position
  • Configure screenshot settings
  1. Steam → Settings → Downloads:
  • Set download region (closest to you)
  • Limit bandwidth if needed
  • Enable "Allow downloads during gameplay"
  1. Steam → Settings → Interface:
  • Disable hardware acceleration (if causing issues)
  • Adjust interface scaling

Proton Setup

What is Proton?

  • Proton: Compatibility layer that runs Windows games on Linux
  • Developed by: Valve (Steam's parent company)
  • What it does: Translates Windows game calls to Linux
  • Result: Windows games can run on Linux without Windows

How Proton works:

  • Uses Wine (Windows compatibility layer)
  • Includes DXVK/VKD3D (DirectX to Vulkan translation)
  • Provides game-specific fixes and optimizations
  • Handles Windows APIs and libraries

Proton enables Windows games on Linux:

Enable Proton:

  1. Open Steam Settings
  • Click "Steam" in top-left menu
  • Select "Settings"
  1. Navigate to Steam Play
  • Click "Steam Play" in left sidebar
  • You'll see Proton options
  1. Enable "Enable Steam Play for supported titles"
  • What this does: Allows Steam to use Proton for games Valve has tested
  • Supported titles: Games Valve has verified work with Proton
  • Check this box
  1. Enable "Enable Steam Play for all other titles"
  • What this does: Allows Proton for ALL Windows games (not just tested ones)
  • Why enable: Many untested games also work with Proton
  • Check this box (recommended)
  1. Select Proton version (latest recommended)
  • Dropdown menu shows available Proton versions
  • Recommended: Latest stable version (e.g., "Proton 8.0")
  • Experimental: Latest features but may be unstable

What happens when you enable Proton:

  • Steam downloads Proton automatically
  • Games can now use Proton to run
  • Windows games appear in your library
  • You can install and play Windows games

Install Proton versions:

  • Steam automatically downloads Proton when you enable it
  • Or install manually: Steam → Library → Tools → Proton
  • Multiple versions can be installed (choose per-game)

Proton versions explained:

Proton Experimental:

  • What it is: Latest development version
  • Features: Newest fixes and improvements
  • Stability: May be unstable (experimental)
  • Best for: Testing new games, getting latest fixes
  • Not recommended for: Stable gaming experience

Proton 8.x (e.g., 8.0):

  • What it is: Latest stable version
  • Features: Well-tested, reliable
  • Stability: Stable and reliable
  • Best for: Most users, reliable gaming
  • Recommended: Use this for best experience

Proton GE (GloriousEggroll):

  • What it is: Community-maintained version
  • Features: Additional fixes not in official Proton
  • Stability: Generally stable
  • Best for: Games that don't work with official Proton
  • Installation: Requires separate installation (see below)

Install Proton GE (optional):

# Install ProtonUp-Qt (GUI tool)
yay -S protonup-qt

What ProtonUp-Qt does:

  • Graphical tool for managing Proton versions
  • Easy installation of Proton GE
  • Can install multiple Proton versions
  • User-friendly interface

How to use ProtonUp-Qt:

  1. Launch ProtonUp-Qt from application menu
  2. Select "Steam" as the platform
  3. Choose Proton GE version to install
  4. Click "Install"
  5. Wait for download and installation
  6. Proton GE will appear in Steam's Proton list

Or install manually from GitHub:

Steam Launch Options

What are launch options?

  • Launch options: Commands that run before the game starts
  • Purpose: Configure how the game runs
  • Format: Environment variables and game parameters
  • Where: Set in Steam game properties

Add launch options for games:

How to access launch options:

  1. Right-click game in Steam library
  2. Select "Properties"
  3. Find "Launch Options" field (usually at bottom)
  4. Enter your launch options

Common options:

# Disable compositor (for better performance)
__GL_SYNC_TO_VBLANK=0 %command%

What this does:

  • __GL_SYNC_TO_VBLANK=0: Disables VSync (vertical sync)
  • VSync: Synchronizes frame rate with monitor refresh rate
  • Disabling: Removes frame rate cap (can get higher FPS)
  • Trade-off: May cause screen tearing (visual artifacts)
  • %command%: Placeholder for the actual game command
  • Benefit: Higher frame rates, lower input lag
# Use specific GPU (for dual GPU systems)
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia %command%

What this does:

  • __NV_PRIME_RENDER_OFFLOAD=1: Tells system to use NVIDIA GPU
  • __GLX_VENDOR_LIBRARY_NAME=nvidia: Uses NVIDIA OpenGL library
  • When to use: If you have NVIDIA + Intel dual GPU
  • Benefit: Game uses dedicated GPU instead of integrated
# Disable Steam overlay (for performance)
-novid %command%

What this does:

  • -novid: Disables intro videos (some games)
  • Steam overlay: The Steam interface that appears in-game (Shift+Tab)
  • Note: This doesn't disable overlay, just skips intro videos
  • To disable overlay: Steam → Settings → In-Game → Uncheck "Enable Steam Overlay"
# Set CPU affinity
taskset -c 0-7 %command%  # Use cores 0-7

What this does:

  • taskset -c 0-7: Limits game to specific CPU cores
  • 0-7: Cores 0 through 7 (8 cores total)
  • When to use: If game doesn't use all cores properly
  • Benefit: Can improve performance on some games

Performance options:

# Disable VSync
-vsync 0 %command%

What this does:

  • -vsync 0: Disables VSync in the game
  • VSync: Limits frame rate to monitor refresh rate
  • Disabling: Allows unlimited frame rate
  • Benefit: Higher FPS, lower input lag
  • Trade-off: Possible screen tearing
# Set resolution
-w 1920 -h 1080 %command%

What this does:

  • -w 1920: Sets width to 1920 pixels
  • -h 1080: Sets height to 1080 pixels
  • Result: Game runs at 1920x1080 resolution
  • When to use: If game doesn't detect correct resolution
  • Common resolutions: 1920x1080, 2560x1440, 3840x2160
# Fullscreen
-fullscreen %command%

What this does:

  • -fullscreen: Forces game to run in fullscreen mode
  • Fullscreen: Game takes up entire screen (no window borders)
  • Benefit: Better performance, no window manager overhead
  • Alternative: -windowed for windowed mode

Combining options:

__GL_SYNC_TO_VBLANK=0 -vsync 0 -fullscreen %command%

What this does:

  • Combines multiple options
  • Disables VSync, forces fullscreen
  • All options apply when game launches

How to find game-specific launch options:

  • Check game's Steam community guides
  • Search ProtonDB for the game
  • Check game's official documentation
  • Experiment with different options

Wine and Proton Setup

Wine Installation

Install Wine:

# Install Wine
sudo pacman -S wine-staging wine-gecko wine-mono

# For 32-bit support
sudo pacman -S lib32-wine-staging

Wine Configuration

Configure Wine:

# Run Wine configuration
winecfg

# Configure:
# - Windows version
# - Graphics settings
# - Audio settings
# - Libraries

Wine optimizations:

# Set Windows version (Windows 10 recommended)
WINEPREFIX=~/.wine winecfg

# Install dependencies
winetricks corefonts vcrun2019 directx9

Proton Configuration

Proton works automatically with Steam, but you can configure it:

Proton compatibility:

  • Most Windows games work with Proton
  • Check ProtonDB for game compatibility: https://www.protondb.com/
  • Some games need tweaks

Proton launch options:

# Force specific Proton version
PROTON_USE_WINED3D=1 %command%  # Use OpenGL instead of Vulkan

# Enable DXVK/VKD3D logging
PROTON_LOG=1 %command%

# Disable esync
PROTON_NO_ESYNC=1 %command%

Performance Optimizations

CPU Optimizations

Set CPU governor to performance:

# Install cpupower
sudo pacman -S cpupower

# Set performance governor
sudo cpupower frequency-set -g performance

# Make permanent
sudo systemctl enable --now cpupower

Or use systemd:

# Create service
sudo nano /etc/systemd/system/cpu-performance.service

Add:

[Unit]
Description=Set CPU to performance mode

[Service]
Type=oneshot
ExecStart=/usr/bin/cpupower frequency-set -g performance

[Install]
WantedBy=multi-user.target

Enable:

sudo systemctl enable --now cpu-performance

I/O Scheduler

Set I/O scheduler for gaming:

# For SSDs, use none or mq-deadline
echo mq-deadline | sudo tee /sys/block/sda/queue/scheduler

# Make permanent
echo 'ACTION=="add|change", KERNEL=="sd*", ATTR{queue/scheduler}="mq-deadline"' | sudo tee /etc/udev/rules.d/60-ioscheduler.rules

Memory Optimizations

Disable swap for gaming (if you have enough RAM):

# Temporarily disable
sudo swapoff -a

# Or reduce swappiness
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf

Network Optimizations

Optimize network for online gaming:

# Reduce network latency
echo 'net.core.rmem_max = 16777216' | sudo tee -a /etc/sysctl.conf
echo 'net.core.wmem_max = 16777216' | sudo tee -a /etc/sysctl.conf
echo 'net.ipv4.tcp_rmem = 4096 87380 16777216' | sudo tee -a /etc/sysctl.conf
echo 'net.ipv4.tcp_wmem = 4096 65536 16777216' | sudo tee -a /etc/sysctl.conf

# Apply changes
sudo sysctl -p

Gaming-Specific Tweaks

Disable Compositor

Compositors can cause input lag:

For KDE:

  • System Settings → Display and Monitor → Compositor
  • Set "Rendering backend" to "OpenGL 3.1"
  • Disable "Allow applications to block compositing"

For GNOME:

  • May need extensions to disable compositor
  • Or use X11 instead of Wayland

For i3/Window Managers:

  • Disable picom/compton if using
  • Or configure for low latency

Mouse Acceleration

Disable mouse acceleration for gaming:

# Create X11 config
sudo nano /etc/X11/xorg.conf.d/50-mouse-acceleration.conf

Add:

Section "InputClass"
    Identifier "My Mouse"
    Driver "libinput"
    Option "AccelProfile" "flat"
    Option "AccelSpeed" "0"
EndSection

Game Mode

Install gamemode (automatic optimizations):

# Install gamemode
sudo pacman -S gamemode lib32-gamemode

# Run game with gamemode
gamemoderun game-command

Configure gamemode:

# Edit config
nano ~/.config/gamemode.ini

Example config:

[general]
; Enable CPU governor
; Set CPU governor
cpu_governor=performance

; Set I/O scheduler
; Set I/O scheduler
io_scheduler=none

; Disable compositor
; Disable compositor
compositor=off

Feral GameMode

Feral GameMode provides automatic optimizations:

  • Automatically optimizes system for games
  • Can be launched with games
  • Works with Steam, Lutris, etc.

Use with Steam:

  • Add gamemoderun %command% to launch options

Lutris Setup

Installing Lutris

Install Lutris:

# Install Lutris
sudo pacman -S lutris

# Install Wine dependencies
sudo pacman -S wine-staging winetricks

Lutris Configuration

Configure Lutris:

  1. Launch Lutris
  2. Go to Preferences
  3. Configure:
  • Wine versions
  • DXVK versions
  • Runners
  • System options

Adding Games to Lutris

Methods:

  1. Install from Lutris website: Browse and install
  2. Add existing game: Add → Install a Windows game
  3. Import from Steam: Import Steam games

Lutris Performance

Lutris optimizations:

  • Use latest Wine/DXVK versions
  • Enable DXVK/VKD3D for DirectX games
  • Configure game-specific options
  • Use Feral GameMode

Troubleshooting Gaming Issues

Problem: Low FPS

Solutions:

  1. Check GPU is being used:

    # NVIDIA
    nvidia-smi
    
    # Check which GPU
    glxinfo | grep "OpenGL renderer"
    
  2. Disable compositor

  3. Set CPU to performance mode

  4. Check power settings (not in power-saving mode)

  5. Update drivers:

    sudo pacman -Syu
    

Problem: Input Lag

Solutions:

  1. Disable compositor
  2. Disable VSync (in game or driver settings)
  3. Use exclusive fullscreen (not borderless windowed)
  4. Disable mouse acceleration
  5. Check BORE scheduler is active

Problem: Games Won't Launch

Solutions:

  1. Check Proton/Wine version
  2. Check game compatibility on ProtonDB
  3. Try different Proton version
  4. Check launch options
  5. Check game logs:
    # Proton logs
    cat ~/steam-*.log
    

Problem: Audio Issues

Solutions:

  1. Check audio service:

    systemctl --user status pulseaudio
    
  2. Install audio codecs:

    sudo pacman -S gstreamer gst-plugins-good gst-plugins-bad
    
  3. Configure Wine audio:

    winecfg  # Audio tab
    

Problem: Controller Not Working

Solutions:

  1. Install controller support:

    sudo pacman -S xboxdrv  # For Xbox controllers
    
  2. Check controller is detected:

    lsusb | grep -i controller
    
  3. Configure in Steam:

  • Steam → Settings → Controller
  • Enable controller support

Additional Resources


Summary

This guide covered:

  1. Why CachyOS for gaming - Performance benefits
  2. Graphics driver setup - NVIDIA, AMD, Intel
  3. Steam installation - Setup and configuration
  4. Wine and Proton - Running Windows games
  5. Performance optimizations - CPU, I/O, memory, network
  6. Gaming-specific tweaks - Compositor, mouse, game mode
  7. Lutris setup - Alternative gaming platform
  8. Troubleshooting - Common gaming issues

Key Takeaways:

  • CachyOS provides excellent gaming performance
  • Proper graphics drivers are essential
  • Steam + Proton enables Windows games
  • Performance optimizations improve gaming experience
  • Disable compositor for lower input lag
  • Use GameMode for automatic optimizations

This guide is based on the CachyOS Wiki and expanded with detailed explanations for beginners. For the most up-to-date gaming information, always refer to the official CachyOS documentation.