Gaming with CachyOS Guide
Welcome to the guide for Gaming in CachyOS. We’ll guide you through the essentials aspects on how to setup everything and have a great experience.
Prerequisites
Section titled “Prerequisites”Essential Packages
Section titled “Essential Packages”To make things easier for you, CachyOS has grouped all the necessary packages for gaming into one meta package that includes all the necessary dependencies and libraries for gaming in Linux and a separate package for the tools and launchers/stores. This makes the installation and setup process for gaming faster and less convoluted for everyone.
If you find that any packages are missing, feel free to let the CachyOS team know.
Follow the steps below to start with the gaming setup.
sudo pacman -S cachyos-gaming-metaThis package includes the following:
- Gamescope, Goverlay, Heroic Games Launcher, Lutris, MangoHud and Steam.
sudo pacman -S cachyos-gaming-applications- Go to Apps/Tweaks and click on
Install Gaming packages
CachyOS Hello installs both packages cachyos-gaming-meta and cachyos-gaming-applications
Proton-CachyOS
Section titled “Proton-CachyOS”Proton-CachyOS is based on Proton’s bleeding-edge branch and applies a number of modifications on top of it.
- Wine-staging patches
- Wine Fullscreen FSR
- Includes video and audio codecs for game cutscenes
- Support for umu-launcher including UMU-Protonfixes
- Adds early hotfixes/workarounds for games
How to properly set multiple launch options
Section titled “How to properly set multiple launch options”The launch options in Steam are constructed using the following pattern
-
<env variables> <wrappers> %command% <application arguments><env variables>: These are options in the form ofVARIABLE=value. For examplePROTON_DXVK_D3D8=1orDXVK_HUD="fps,memory,version,api"<wrappers>: Applications and scripts that modify how the real application is run. Arguments to the wrapper usually go after the wrapper’s executable. For examplemangohud --dlsymorgamescope -W 1680 -H 1050 -w 1280 -h 720 -S fit -F fsr --mangoapp --%command%: This is the real application. This should be specified exactly as is and Steam will replace it with the proper command when the application is run.<application arguments>: These are various arguments to the real application, and they depend on the application. For example-dx11should go here if the application supports it.
-
Example:
__GL_SHADER_DISK_CACHE_SKIP_CLEANUP=1 prime-run game-performance %command% -dx11
Environment Variables
Section titled “Environment Variables”- DLSS & NVIDIA Features
PROTON_DLSS_UPGRADE=1: Automatically upgrades DLSS to the latest versionPROTON_DLSS_INDICATOR=1: Shows DLSS status indicator in-gamePROTON_NVIDIA_LIBS=1: Enables NVIDIA libraries (PhysX, CUDA) - not needed for DLSS/ray tracing
Advanced NVIDIA Controls
PROTON_NVIDIA_NVCUDA=1: Enables CUDA support onlyPROTON_NVIDIA_NVENC=1: Enables NVENC encoding onlyPROTON_NVIDIA_NVML=1: Enables NVML monitoringPROTON_NVIDIA_NVOPTIX=1: Enables OptiX ray tracingPROTON_NVIDIA_LIBS_NO_32BIT=1: Only enable in 64-bit games (fixes RTX 4000+ performance issues)
- AMD & Intel Upscaling
PROTON_FSR4_UPGRADE=1: Automatically upgrades FSR to latest AMD versionPROTON_FSR4_RDNA3_UPGRADE=1: Uses RDNA3-optimized FSR4 DLLPROTON_XESS_UPGRADE=1: Automatically upgrades XeSS to latest version
-
Wayland & Display
PROTON_ENABLE_WAYLAND=1: Enables native Wayland support- Benefits: HDR without Gamescope, improved latency/frame pacing
- Caveats: Breaks Steam Overlay, currently experimental
PROTON_NO_WM_DECORATION=1: Disables window manager decorations- Fixes: Borderless fullscreen issues, mouse clicking through windows
-
HDR Support
PROTON_ENABLE_HDR=1: Enables HDR output support- Requirements: Gamescope with
--hdr-enabledORPROTON_ENABLE_WAYLAND=1 - Setup: Additional configuration needed
-
CPU & Sync Performance
PROTON_USE_NTSYNC=1: Uses NTSync for better CPU performance- Best for: CPU-bound games, replaces WINESync
- Note: Experimental, may cause issues in some games
- Verification: Use
lsof /dev/ntsync(MangoHud reports incorrectly)
-
Shader & Cache Management
PROTON_LOCAL_SHADER_CACHE=1: Enables per-game shader cache, similar to Steam’s “Shader Pre-Caching”. This does NOT compile shaders ahead-of-time, it ONLY isolates the shader cache of each game. Shaders will still be compiled during gameplay.PROTON_ENABLE_MEDIACONV=1: Enables Proton Media Converter- Note: Testing purposes only
-
AMD Anti-Lag
ENABLE_LAYER_MESA_ANTI_LAG=1: Enables AMD Anti-Lag for reduced input latency
- Controller & Input
PROTON_PREFER_SDL=1: Workaround for controller detection issuesPROTON_NO_STEAMINPUT=1: Disables Steam Input support- Fixes: Wayland controller/gamepad issues
Setting Up Proton-CachyOS with Lutris and Heroic
Section titled “Setting Up Proton-CachyOS with Lutris and Heroic”- In the main Lutris screen, click the cogwheel icon next to Wine.
- Go to the Runner Options tab and confirm that your settings match the following:
- Wine version =
proton-cachyos - Use System winetricks = Disabled
- Graphics
- Enable DXVK =
Enabled - Note: User-defined versions of DXVK, VKD3D and DXVK-NVAPI are not applied when using
umu-launcher
- Enable DXVK =
- Wine version =
- Navigate to the System Options tab.
- Lutris
- Disable Lutris Runtime =
Enabled - Prefer system libraries =
Enabled
- Disable Lutris Runtime =
- Lutris
- Continue scrolling down to the Game execution section and locate the Environment variables table
- Add the following environment variables:
- Key:
UMU_RUNTIME_UPDATEoptional- Value:
0 - This will skip Steam Linux Runtime updates for proton-cachyos. Do not use this with any Proton that utilizes the Steam Linux Runtime, such as proton-cachyos-slr, -GE, or -EM.
- Value:
- Key:
PROTON_VERBoptional- Value:
waitforexitandrun - This allows protonfixes to work with a corresponding GAMEID.
- Value:
- Key:
- Click Save to apply the changes.
- Right Click in the game you want to configure, then click on Configure
- Go to the Runner Options tab and confirm that your settings match the following:
- Wine version =
proton-cachyos - Use System winetricks = Disabled
- Graphics
- Enable DXVK =
Enabled - Note: User-defined versions of DXVK, VKD3D and DXVK-NVAPI are not applied when using
umu-launcher
- Enable DXVK =
- Wine version =
- Navigate to the System Options tab.
- Lutris
- Disable Lutris Runtime =
Enabled - Prefer system libraries =
Enabled
- Disable Lutris Runtime =
- Lutris
- Continue scrolling down to the Game execution section and locate the Environment variables table
- Add the following environment variables:
- Key:
UMU_RUNTIME_UPDATEoptional- Value:
0 - This will skip Steam Linux Runtime updates for proton-cachyos. Do not use this with any Proton that utilizes the Steam Linux Runtime, such as proton-cachyos-slr, -GE, or -EM.
- Value:
- Key:
PROTON_VERBoptional- Value:
waitforexitandrun - This allows protonfixes to work with a corresponding GAMEID.
- Value:
- Key:
- Click Save to apply the changes.
- Click on the
Configurebutton next to thePlay Nowbutton in the game you want to run. - In the
WINEtab. Set the Wine Version toProton - proton-cachyos.
Anti Cheat Support
Section titled “Anti Cheat Support”How to install proton-cachyos-slr
Section titled “How to install proton-cachyos-slr”-
Open a terminal and install
protonupTerminal window sudo pacman -S protonup-qt -
Open protonup-qt and follow the screenshot:

-
Restart Steam if you had it opened.
sudo pacman -S proton-cachyos-slrManual Installation (Advanced)
- Download the latest version here. (
Scroll down to Assets) - Decompress the file and move the folder to
~/.steam/steam/compatibilitytools.d/ - Restart Steam if you had it open.
Wine-CachyOS
Section titled “Wine-CachyOS”This is the same wine that is at the core of proton-cachyos, but as a standalone package. It can be used in Lutris, Heroic, Bottles and others.
- All the Wine modifications included with Proton-CachyOS
- Adds early hotfixes/workarounds for games
Additional configuration options
WINE_WMCLASS="<name>": Sets theWM_CLASSof all wine windows, allowing the window manager to control the Wine’s windows through rules.WINEUSERSANDBOX=1: Disables the creation of symlinks from Wine user folders such as Documents/Pictures, to the equivalent folders in the user’sHOMEdirectoryWINE_NO_WM_DECORATION=1: Disables window decorations using the Linux window manager. It can fix issues with borderless fullscreen and the mouse clicking through the window.WINE_PREFER_SDL_INPUT=1: Enable to work-around issues with proper controller detection.
How to use wine-cachyos-opt
Section titled “How to use wine-cachyos-opt”Normally, running /opt/wine-cachyos/bin/wine instead of just wine should be enough for an application to run using wine-cachyos-opt.
If a more strict configuration is required, it could look like this:
export PATH="/opt/wine-cachyos/bin/:$PATH"export WINEDLLPATH="/opt/wine-cachyos/lib/wine:/opt/wine-cachyos/lib32/wine:$WINEDLLPATH"export LD_LIBRARY_PATH="/opt/wine-cachyos/lib/:/opt/wine-cachyos/lib32/:$LD_LIBRARY_PATH"If you want to use winetricks with wine-cachyos-opt, you can invoke it like this:
WINE=/opt/wine-cachyos/bin/wine WINEPRFIX=<your prefix> winetricks <verb>




Steam FAQ & Tips
Section titled “Steam FAQ & Tips”Which Proton version should be used in Steam?
Section titled “Which Proton version should be used in Steam?”Proton 10.0is the stable release fromValve. Use this if the game you want to play is known to work well.Proton Experimentalis the bleeding edge release fromValve. Use this if the game you want to play is relatively new, doesn’t work well with the current Proton stable release, or if people recommend it on ProtonDB.proton-cachyos-slris the one we build and maintain. Using it is highly recommended with various quality-of-life features, fixes and optimizations. For games using anticheat, such as BattlEye or Easy Anti-Cheat or custom launchers, preferproton-cachyos-slr.proton-cachyosis the same version asproton-cachyos-slrbut built without depending on the Steam Linux Runtime. Use it only if you understand the significance of this difference and fallback toproton-cachyos-slrif issues occur.Proton-GEis a custom build made by GloriousEggroll. It includes various fixes, and can be useful to have in certain situations.Proton 9.0.4 or lowerare the stable releases fromValve. Use this if the game you want to play only works in a previous Proton release.
Fix stuttering caused by the Steam Game Recorder Feature
Section titled “Fix stuttering caused by the Steam Game Recorder Feature”LD_PRELOAD="" %command%Capturing and sharing Proton logs
Section titled “Capturing and sharing Proton logs”To enable Proton logging for a game:
- Right-click your game in Steam and select Properties.
- Under Launch Options, add the
PROTON_LOGenvironment variable:This will create a log file in your home directory, namedTerminal window PROTON_LOG=1 %command%steam-<AppID>.log(for example, Counter Strike 2 uses AppID 730, so the file would besteam-730.log).
Custom Log Directory
To set a custom log directory, use PROTON_LOG_DIR:
PROTON_LOG=1 PROTON_LOG_DIR=/home/cachyos/steam-logs %command%Pre-caching shaders with Proton-CachyOS, -GE and -EM
Section titled “Pre-caching shaders with Proton-CachyOS, -GE and -EM”Here is how to disable this feature:


Repurposing a Windows NTFS game partition
Section titled “Repurposing a Windows NTFS game partition”Lutris serves as a central hub for all your games on CachyOS.
With Lutris, you can efficiently manage your game runners, including Wine, Proton, and emulators.
- You can launch games through Lutris simply by clicking the Play button.
- Add any game you want clicking the + sign in the top left.
- Set up a store in the Sources at the left panel and connecting your account, it will then proceed to install said store, and then you’ll be able to run games from within the store, just like you do on Windows.
- And more!
Games stores supported in Lutris:
How to properly set multiple launch options and environment variables in Lutris
Section titled “How to properly set multiple launch options and environment variables in Lutris”- Launch options such as
-dx11or-fullscreenshould be added in the Arguments field under the Game options tab using a space as a separator. - Command wrappers for example
mangohud --dlsymorgame-performanceshould be added in the Command prefix field under the System options tab using a space as a separator. - Environment variables such as
PROTON_ENABLE_HDR=1should be added in the Environment variables table under the System options tab using the+button to add a new entry.
Performance & Misc tips
Section titled “Performance & Misc tips”What not do when Gaming in CachyOS
Section titled “What not do when Gaming in CachyOS”Combining gamemode and ananicy-cpp
Section titled “Combining gamemode and ananicy-cpp”Due to gamemode and ananicy-cpp both trying to modify a process niceness at the same time, it can lead to conflicts and unexpected behavior. It’s recommended to use gamemode without ananicy-cpp.
To stop ananicy-cpp, execute the following command:
systemctl stop ananicy-cppPower Profile Switching on Demand
Section titled “Power Profile Switching on Demand”CachyOS includes a wrapper script game-performance
which uses power-profiles-daemon to temporarily switch the power profile to performance.
The profile raises system power levels and sets the CPU governor to performance.
When used to launch a game, the system remains in performance mode until the game exits, at which point the previous profile is restored.
Feral’s GameMode offers similar functionality.
How to add game-performance to Steam, Lutris and Heroic Games Launcher
Section titled “How to add game-performance to Steam, Lutris and Heroic Games Launcher”- Open your
Steam Library. - Right click the game’s title and select
Properties. - On the
Generaltab you’ll findLaunch Optionssection. - Add the following Launch Option:
Terminal window game-performance %command%
- On the left panel open
Settings. - Go to
Game defaultsthen click onAdvanced. - In the
wrappercommand section. Add the following line without any argument:Terminal window game-performance - Click on the
+sign to save changes.
- On the top right open the
hamburger menu. - Go to
Preferences/Global options. - Enable
Advanced Modeon the top right. - Scroll down to
Command prefixand add the following line:Terminal window game-performance - Save changes.
Increase maximum shader cache size
Section titled “Increase maximum shader cache size”Game shaders are compiled automatically while playing, which may cause long loading times and stuttering the first time you encounter them. These shaders are stored on your system to be reused when needed.
However, there is a maximum limit to the shader cache’s file size, causing old shaders to be forgotten when exceeding the default size. This can be an issue since large games can have shaders over 1GB in size, causing them to re-compile shaders every launch.
To avoid long loading times and stuttering, we can increase the global shader cache size:
- Open the terminal.
- Enter this command to edit the environment file:
Terminal window sudo nano /etc/environment - Paste the following at the end of the file:
Terminal window # Increase Nvidia's shader cache size to 12GB__GL_SHADER_DISK_CACHE_SIZE=12000000000 - Save the file by pressing
CTRL+X,Y, thenEnter. - Restart your system.
- Open the terminal.
- Enter this command to edit the environment file:
Terminal window sudo nano /etc/environment - Paste the following at the end of the file:
Terminal window # Enforces RADV Vulkan implementationAMD_VULKAN_ICD=RADV# Increase AMD's shader cache size to 12GBMESA_SHADER_CACHE_MAX_SIZE=12G - Save the file by pressing
CTRL+X,Y, thenEnter. - Restart your system.
After restarting, the maximum shader cache size should be permanently increased. Thanks to psygreg’s shader booster for helping this guide.
Forcing the latest DLSS preset
Section titled “Forcing the latest DLSS preset”How to add dlss-swapper to Steam, Lutris and Heroic Games Launcher
Section titled “How to add dlss-swapper to Steam, Lutris and Heroic Games Launcher”- Open your
Steam Library - Right click the game’s title and select
Properties. - On the
Generaltab you’ll findLaunch Optionssection. - Add the following Launch Option:
Terminal window dlss-swapper %command%
- On the left panel open
Settings. - Go to
Game defaultsthen click onAdvanced. - In the
wrappercommand section. Add the following line without any argument:Terminal window dlss-swapper - Click on the
+sign to save changes.
- On the top right open the
hamburger menu - Go to
Preferences/Global options. - Enable
Advanced Modeon the top right. - Scroll down to
Command prefixand add the following line:Terminal window dlss-swapper - Save changes.
Manual DLL Replacement Method
If dlss-swapper is not working or causing issues try updating game’s DLSS implementation manually by replacing nvngx_dlss.dll with an up-to-date version and using the dlss-swapper-dll wrapper script instead.
Ray tracing Support
Section titled “Ray tracing Support”The Arch Wiki has already provides comprehensive instructions on how to enable ray tracing for various hardware platforms.
Performance drop on NVIDIA in DirectX12 games
Section titled “Performance drop on NVIDIA in DirectX12 games”Some users report that the issue is related to how NVIDIA’s Linux drivers handle GPU scheduling—unlike on Windows, where proper scheduling is enforced. There’s no official NVIDIA statement yet. Currently there is no known workaround for this issue and NVIDIA is supposedly working on a fix but it’s not clear when it will be released.
It has nothing to do with CachyOS.
In some titles the performance drop is less noticeable than in others. Check out this benchmark comparison video for reference.
Follow the NVIDIA thread about this issue to know more about it.