Gaming on Linux is very easy these days. You can install your OS, install Steam, install a game and hit "Play" and it should work. I use Ubuntu because I have been using it for so long and know both the distro and Gnome well. I made this mostly for myself. Maybe someone will find it useful. This small guide will not discuss the OS install and setup. You should be able to do that on your own. If you are new to Linux there are plenty of guides to help you. If you are running on a VM you are on your own.
More than anyone else, Valve has progressed the Linux gaming experience significantly. Both Nvidia and AMD have very good GPU drivers for Linux. This is especially true for AMD who contribute to the open source AMD driver directly. If you do not have a specific reason to get an Nvidia card get an AMD GPU for use in Linux. Rasterization performance is very good for AMD GPUs. Ray tracing is better with Nvidia graphics cards. Frame rates are generally better without the Windows overheard and telemetry.
Be sure to run sudo apt update to check for updates to your install before starting.
echo "$XDG_SESSION_TYPE"
Wayland and X11 usage is determined by a setting in this file: /etc/gdm3/custom.conf. You need to restart the desktop for this change to take effect. Ubuntu 24.04 defaults to x11. I think Ubuntu 25.10 “Questing Quokka” defaults to Wayland.
Enable Wayland:
set WaylandEnable=true in /etc/gdm3/custom.conf
or sudo sed -i s/WaylandEnable=false/WaylandEnable=true/g /etc/gdm3/custom.conf
sudo systemctl restart gdm3
Disable Wayland (switch to x11):
set WaylandEnable=false in /etc/gdm3/custom.conf
or sudo sed -i s/WaylandEnable=true/WaylandEnable=false/g /etc/gdm3/custom.conf
sudo systemctl restart gdm3
I prefer the non-Snap package. Mostly because I hate snaps.
curl -O https://cdn.fastly.steamstatic.com/client/installer/steam.deb
sudo apt install ./steam.deb
This command is only for 24.04. global.compositor.backend.get_monitor_manager().experimental_hdr = 'on' Ubuntu 25 has made big improvements to HDR support.
There are several different drivers for Nvidia GPUs. I use the propritary version installed through the built-in Ubuntu driver management tool. ubuntu-drivers Follow these instructions https://documentation.ubuntu.com/server/how-to/graphics/install-nvidia-drivers/
If you really want the latest Nvidia driver and skip the stable release go here: https://www.nvidia.com/en-us/drivers/unix/ Help is here https://forums.developer.nvidia.com/c/gpu-graphics/linux/148
Follow these instructions https://gist.github.com/russiantux/592b1267591c011bf765b14590774a5f Another guide https://github.com/ValveSoftware/gamescope?tab=readme-ov-file#building There is a Flatpak version but you will need everything else to be Flatpak as well like Steam. Gamescope is built into Ubuntu 25. I have had better experience with Gamescope on X11 than Wayland.
You don't need this but it is nice to have. It is like perfmon on windows. This is not available in an Ubuntu repository. Either install an image or compile it.
Snap https://snapcraft.io/mission-center Flatpak https://flathub.org/apps/io.missioncenter.MissionCenter App Image https://gitlab.com/mission-center-devs/mission-center/-/jobs/8004560208/artifacts/raw/MissionCenter-x86_64.AppImage Portable https://portable-linux-apps.github.io/apps/mission-center.html Home https://missioncenter.io/
I have a Logitech keyboard and mouse. Need to control the lights and update the firmware. There is a PPA repo you can add to your setup and pull from there. https://launchpad.net/~solaar-unifying/+archive/ubuntu/stable This software detected both my Pro X TKL keyboard and my G502 X Plus mouse.
Another option might be Piper on top of libratbaq. Check to see if your hardware is supported. Your keyboard and mouse should work out of the box at a basic level.
There is a .deb you can download from the official website. You can also install a snap from the App Center. I have never trierd the Snap version. The usual annoyances presented by Discord and all the same privacy violations that exist for the Windows version of the app are all present on the Linux version as well.
Lutris sucks now. Avoid. I like this one much better. It is super minimal and works flawlessly. https://github.com/Faugus/faugus-launcher There is a Debian repo you can add to you install and pull from there. I only tested this with the Battle.net client and Diablo 3 and Diablo 4 games and had no issues. I have EA App, EPIC Games Launcher, Rockstar Launcher, and Ubisoft Connect working without issue. Just follow the setup instructions for each app or game. Mostly don't login to the launcher the first time. Install, exit, then relaunch and then login.
If you have audio stuttering in a game try adding -PULSE_LATENCY_MSEC=60 as a launch option.
I have tried several. They have all been more work than it is worth. Just copy the files to the mods directory.
preempt=full
Simply copy paste the options above for the desired performance profile and add them to the GRUB_CMDLINE_LINUX_DEFAULT= line in /etc/default/grub (then run sudo update-grub to apply them at the next reboot).
- set the cpufreq governor to performance via:
/sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
- disable proactive memory compaction:
echo 0 | sudo tee /proc/sys/vm/compaction_proactiveness
- disable kernel samepage merging
echo 0 | sudo tee /sys/kernel/mm/ksm/run
- trashing mitigation (prevent working set from getting evicted for 1000 millisec, this can help to mitigate stuttering behavior under memory pressure conditions):
echo 1000 | sudo tee /sys/kernel/mm/lru_gen/min_ttl_ms
- prevent stuttering behavior during intense I/O writes that may involve massive page cache flushing:
echo 5 | sudo tee /proc/sys/vm/dirty_ratio
echo 5 | sudo tee /proc/sys/vm/dirty_background_ratio
Read the full Ubuntu Dev Post
A Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more. Details
sudo apt install mangohud
In your game launch options in Steam add mangohud %command% To make MangoHud automatically launch with all Vulkan games, it is possible to set the following environment variable:
MANGOHUD=1
I had problems loading a customized config file in Baldur's Gate 3 in Steam. I protected the path with double quotes and it worked. Launch option looks like this:
MANGOHUD_CONFIGFILE="/home/jason/.config/MangoHud/bg3.conf" mangohud %command%
I wanted nothing but the FPS counter. No background no extra text. Add fps_only and set background_alpha=0.0
background_alpha=0.0
background_color=000000
font_size=14
text_color=FFFFFF
position=top-left
fps_only
fps_color_change
fps_color=B22222,FDFD09,39F900
fps_value=30,60
There is a useful piece of software to generate Mangohud config files. It is called goverlay. You can find a .deb version in the official repos. It is very old. The Ubuntu install instructions are messed up, adjust accordingly. There is a dependency you need that is not in an official Ubuntu repo libqt6pas6. One of the dependencies is something called pascube. I couldn't figure out how to install this or compile it so there is a warning in the gui about it missing. goverlay still works fine without it. There is also an app image for this software. Here is what I did:
sudo apt install zypper
sudo apt-get update
wget https://github.com/davidbannon/libqt6pas/releases/download/v6.2.8/libqt6pas6_6.2.8-1_amd64.deb
sudo apt install ./libqt6pas6_6.2.8-1_amd64.deb
wget https://github.com/benjamimgois/goverlay/releases/download/v1.5.2/goverlay_1_5_2.tar.xz
xz --decompress ./goverlay_1_5_2.tar.xz
./goverlay_1_5_2/goverlay
sudo ln -s ~/Downloads/goverlay_1_5_2/goverlay /usr/bin/goverlay
goverlay writes to ~/.config/MangoHud/MangoHud.conf by default.


