Quantcast
Channel: Debian User Forums
Viewing all articles
Browse latest Browse all 4056

Off-Topic • How-To Ultimate Gaming Linux Desktop On Debian 2026

$
0
0
How-To Ultimate Gaming Linux Desktop On Debian 2026

This is my guide for creating the Ultimate Linux Desktop with Debian, and
for general desktop usage, and gaming in particular, and goes through
the entire process, of actually creating a rock-solid, super stable,
and high performance configuration of the entire system. After distro
hopping for many years, using Linux since Ubuntu first came out, and
learning as much as I possibly could, this is my own personal method
for making the Ultimate Linux Desktop. Instead of going through
my reasoning for everything, I decided to attempt to keep the guide
as concise as possible, while comprehensively covering the top-bottom
configuration of my own ideal Ultimate Linux Desktop.

To be clear, I use a Windows 11 based gaming PC, with gaming hardware,
so this guide demonstrates how to install/configure such a system, with Nvidia,
to do gaming and get similar performance to Windows 11, with Gnu/Linux, on Debian 13+Xfce/Xorg. It's not meant to be a guide for newbies, or to explain every little detail, because it would take a very long time to do so.

# hashtags are comments
$ dollar signs indicate commands at a command prompt
# hashtags also indicate commands to run as the root user
-> arrows indicate using the mouse to navigate gui interfaces

Create an Installation/Rescue USB

# Ventoy

https://sourceforge.net/projects/ventoy/files/
https://sourceforge.net/projects/ventoy ... z/download

# Debian Install Cd (XFCE)(XORG!)

https://cdimage.debian.org/debian-cd/cu ... 4-xfce.iso

# Rescue Tools

https://clonezilla.org/downloads.php

https://www.system-rescue.org/Download/

Configuring UEFI/BIOS

# disable stuff I don't use

Installation

# use cpufreq.default_governor=performance on the grub command line
# to speed up installation, and disconnect the computer from the internet

First Boot+Initial Configuration

Applications -> Settings-> Display Settings -> Max Refresh Rate

Applications -> Settings -> Window Manager Tweaks -> Disable Shadows

Applications -> Settings -> Workspaces -> 1

Applications -> Settings -> Settings Editor -> xsettings -> CursorBlink -> off

Applications -> Settings -> Appearance -> Fonts -> Disable anti-aliasing/hinting/subpixel
# this is how to get rid of rainbow colored fonts (will configure them more later)

Applications -> Settings -> Power Manager -> Put To Sleep/Switch Off -> Never

Editing Sources

$ sudo mousepad /etc/apt/sources.list

# See https://wiki.debian.org/SourcesList for more information.
deb http://deb.debian.org/debian trixie main contrib non-free non-free-firmware
#deb-src http://deb.debian.org/debian trixie main non-free-firmware

deb http://deb.debian.org/debian trixie-updates main contrib non-free non-free-firmware
#deb-src http://deb.debian.org/debian trixie-updates main non-free-firmware

deb http://security.debian.org/debian-security/ trixie-security main contrib non-free non-free-firmware
#deb-src http://security.debian.org/debian-security/ trixie-security main non-free-firmware

# Backports allow you to install newer versions of software made available for this release
#deb http://deb.debian.org/debian trixie-backports main contirb non-free non-free-firmware
#deb-src http://deb.debian.org/debian trixie-backports main non-free-firmware

Initial Grub Configuration

$ sudo mousepad /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT='cpufreq.default_governor=performance'

$ sudo update-grub

First System Upgrade

$ sudo dpkg --add-architecture i386

$ sudo apt update

$ sudo apt upgrade

Creating The Root Account

$ sudo passwd

## First Reboot

$ sudo poweroff

Initial Package Installation

# dependencies for building the Linux kernel

$ sudo apt install bc binutils bison dwarves flex gcc git gnupg2 gzip libelf-dev libncurses5-dev libssl-dev make openssl perl-base rsync tar xz-utils pahole

# the best video/music player

$ sudo apt install vlc && sudo apt remove exfalso quodlibet parole

# useful utilities

$ sudo apt install wget git galculator traceroute tcpdump dnsutils yt-dlp gparted transmission

# graphical editing

$ sudo apt install krita

# a pdf viewer with broader support

$ sudo apt install okular okular-extra-backends

# packages for gaming

$ sudo apt install lutris steam playonlinux pulseeffects mangohud gamemode

# packages for gaming+nvidia

$ sudo apt install libvulkan1 libvulkan1:i386 vulkan-tools pkg-config

# a firewall

$ sudo apt install gufw

Applications -> Settings -> Firewall Configuration -> Enabled

# updating firefox

# https://support.mozilla.org/en-US/kb/in ... efox-linux

# See the section "Install Firefox .deb package for Debian-based distributions"

# after installing firefox from their own debian repository, you can
# remove debians firefox-esr (sudo apt remove firefox-esr)

Further System Configuration

Applications -> Session and Startup -> Application -> Autostart

Geoclue, Im-launch, KDE-Connect, Print-Queue, Screen Locker, Spice vdagent -> disabled

$ sudo service --status-all

$ sudo systemctl disable --now apparmor cron cups cups-browsed

$ sudo systemctl disable --now cups.socket cups.path

$ sudo systemctl disable --now avahi-daemon

$ sudo systemctl disable avahi-daemon.socket

$ sudo systemctl list-timers

$ sudo systemctl disable anacron anacron.timer apt-daily.timer apt-daily-upgrade.timer e2scrub_all.timer xfs_scrub_all.timer

$ sudo sysctl --system

$ sudo rm /usr/lib/sysctl.d/*

$ sudo mousepad /etc/sysctl.conf

kernel.randomize_va_space=0
kernel.dmesg_restrict=1
kernel.kptr_restrict=1
kernel.nmi_watchdog=0
kernel.soft_watchdog=0
kernel.watchdog=0

net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.all.rp_filter=0
net.ipv4.ip_forward=0
net.ipv4.conf.all.forwarding=0
net.ipv6.conf.all.forwarding=0
net.ipv6.conf.default.forwarding=0
net.ipv4.conf.all.accept_redirects=0
net.ipv4.conf.default.accept_redirects=0
net.ipv4.conf.all.secure_redirects=0
net.ipv4.conf.all.send_redirects=0
net.ipv6.conf.all.accept_redirects=0
net.ipv6.conf.default.accept_redirects=0
net.ipv4.conf.all.log_martians=0
net.ipv4.conf.all.accept_source_route=0
net.ipv4.conf.default.accept_source_route=0
net.ipv6.conf.all.accept_source_route=0
net.ipv6.conf.default.accept_source_route=0

vm.vfs_cache_pressure=75
vm.dirty_background_ratio=5
vm.swappiness=10
vm.dirty_ratio=10
#vm.max_map_count=16777216
#vm.max_map_count=1048576
vm.max_map_count=524288

$ sudo mousepad /etc/systemd/journald.conf

Storage=none
Audit=no

$ sudo mousepad /etc/systemd/system.conf

DefaultLimitNOFILE=1024:524288
DefaultCPUAccounting=no
DefaultIOAccounting=no
DefaultIPAccounting=no
DefaultMemoryAccounting=no
DefaultTasksAccounting=no

$ sudo mousepad /etc/systemd/user.conf

DefaultLimitNOFILE=1024:524288

$ sudo mousepad /etc/security/limits.conf

# esync
user hard nofile 524288

# gamemode
user hard nice -20

$ sudo mousepad /etc/environment

# for games to show fps
DXVK_HUD=fps

# make menuconfig theme (for building the kernel)
MENUCONFIG_COLOR=blackbg

# for nvidia
__GL_LOG_MAX_ANISO=0
__GL_SYNC_TO_VBLANK=0
__GL_MaxFramesAllowed=1

$ sudo nano -w /etc/fstab

UUID=537cbbc6-fe24-442b-a16d-0e4c64887fcj / ext4 defaults,lazytime 0 1

Last reboot

$ sudo poweroff

Preparing for custom gaming kernel(6.18), and nvidia graphics driver

# right now we have to get a specific version of nvidia to use with xfce
# or it will break the window manager/compositor, and that also,
# requires the right kernel version which will build with it

$ cd ~

$ wget https://cdn.kernel.org/pub/linux/kernel ... .13.tar.xz

# https://www.nvidia.com/en-us/geforce/dr ... ts/257493/

$ mv ~/Downloads/NVIDIA-Linux-x86_64-580.105.08.run ~/nvidia_580.run

Building/Installing Custom Gaming Kernel With Cachy Patches For Debian

# become root to build/install the custom kernel

$ su

# tar -xf linux-6.18.13.tar.xz

# cd linux-6.18.13

# cp /boot/config-6.12.73+deb13-amd64 .config

# make olddefconfig

# patching with cachy os patches

# Source: https://github.com/CachyOS/linux-cachyo ... e/.SRCINFO

# wget https://raw.githubusercontent.com/cachy ... -all.patch

# wget https://raw.githubusercontent.com/cachy ... achy.patch

# wget https://raw.githubusercontent.com/cachy ... i915.patch

# patch -p1 < 0001-cachyos-base-all.patch

# patch -p1 < 0001-bore-cachy.patch

# patch -p1 < 0001-rt-i915.patch

# disabling module signing

# ./scripts/config --file .config --disable MODULE_SIG

# make menuconfig

General Setup ->

-> Local Version -> (enter whatever name you like)
-> Automatically append version information -> on

-> Timers subsystem -> periodic timer ticks

-> Preemption model -> low latency Desktop
-> Fully preemptible kernel (Real-Time) -> on

-> cpu/task time and stats accounting -> simple accounting

-> Control Group support -> CPU controller -> SCHED_RR/FIFO -> on

-> Profiling/Kexec -> disabled

Processor type and features ->

-> Build and optimize for local/native CPU -> on
-> Supported proccesor vendors -> Intel/AMD

-> TSX mode -> on
-> Software Guard eXtensions -> off
-> x86 userspace shadow stack -> off

-> Timer Frequency -> 1000 HZ

-> Randomize the address of the Kernel Image (KASLR) -> off

-> Kernel Live Patching -> off

Mitigations -> off

Power Management and ACPI ->

Suspend/Hibernate -> off

Binary Emulations ->

-> IA32 Emulation -> on
-> x32 ABI for 65-bit mode -> on

Virtualization -> off(on optional)


General architecture-dependent options ->

-> Stack protector buffer overflow detection -> off


-> Default state of kernel stack offset randomization -> off

Memory Management ->

-> Slab allocator options ->
-> Randomize slab freelist -> off

-> Harden slab freelist metadata -> off

-> Enable per cpu partial caches -> off

-> Page allocator randomization -> off
-> disable heap randomization -> on
-> Memory hotplug -> off

Security Options -> disable everything

Kernel Hacking -> disable Scheduler Debugging

Save -> .config -> exit

# make -j$(nproc) && make modules && make modules_install && make headers_install && make install && sudo poweroff

# it will take awhile to build/install the kernel

Installing the Nvidia graphics driver (580.105.08) after the new linux kernel is installed/rebooted

https://www.nvidia.com/en-us/geforce/dr ... ts/257493/

$ sudo IGNORE_PREEMPT_RT_PRESENCE=1 sh nvidia_580.run --no-x-check

follow the prompts -> select open kernel modules -> select continue installion

install 32 bit compatibility libraries? -> yes
rebuild initramfs -> yes
run xconfig? -> yes

# reboot

$ sudo poweroff

Themeing the entire desktop with catppuccin

# important sources/info

# https://wiki.archlinux.org/title/Unifor ... plications
# https://github.com/catppuccin/catppuccin
# https://github.com/catppuccin/gtk

# https://github.com/catppuccin/gtk/relea ... efault.zip

# https://github.com/catppuccin/gtk/relea ... efault.zip

# mocha is darker, frappe is lighter

$ sudo cp -r catppuccin-frappe-lavender-standard+default-dark/ /usr/share/themes/.

Settings -> Appearance -> Catppuccin -> on ( set matching xfwm4 theme -> off)

# https://github.com/catppuccin/xfce4-ter ... appe.theme

$ sudo cp catppuccin-frappe.theme /usr/share/xfce4/terminal/colorschemes/.

# reload terminal

xfce terminal -> edit -> preferences -> Colors -> Presets -> Catpuccin

$ mousepad ~/.bashrc

if [ "$color_prompt" = yes ]; then
# PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
#else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt

# reload terminal

# note these colors somewhere to help configure other apps to match catpuccin

background: #303446
foreground(text): #c6d0f5

# set desktop background to darker color from catppuccin palette #11111b
# darker background, with light foreground elements (stuff you use)
# makes the desktop comfortable to use.

use krita to make custom matching wallpapers

load an image you want to transform -> https://images.wallpapersden.com/image/ ... Wdma2U.jpg

grab a reference image -> https://github.com/zhichaoh/catppuccin- ... vender.png

Open the first image in krita -> Filter -> Color Transfer ->
and add the second image as the reference image

save as -> My_New_Custom_Catppuccin_Wallpaper.png

start adding some transparency

Applications -> Settings -> Window Manager Tweaks ->

Opacity of window decorations -> 80%
Opacity of inactive windows -> 50%-70%
Opacity of windows during move -> 50%
Opacity of windows during resize -> 50%
Opacity of popup windows -> 90%-100%

Theme firefox

# grab addons like no-script, adblock plus

edit -> settings -> Override colors -> custom

Text/links: #c6d0f5
background: #303446

# sometimes pages wont view properly with custom colors,
# so don't forget, and if you can't view a page,
# just turn off custom colors temporarily.

# disable rainbow font pixels in firefox

url box -> about:config ->

gfx.webrender.enable-subpixel-aa -> false

gfx.font_rendering.ahem_antialias_none-> true

# grab custom fonts to use system wide.

# https://fonts.google.com/specimen/Space+Mono
# get fonts -> download

# I chose space mono because it actually has a correctly shaped a
# that isn't upside down like most fonts. what's important is
# installing a font to use system wide, to make all the fonts uniform

$ unzip Space_Mono.zip
$ sudo cp ./*ttf /usr/share/fonts/.

final reboot (to change the fonts everywhere)

sudo poweroff

# because I disabled anti-aliasing to get rid of the rainbow pixels
# in the fonts, have to use a larger or medium/bold font to make them look good

Applications -> Settings -> Appearance -> Fonts -> Space Mono 13

Applications -> Settings -> Window Manager -> Title Font -> Space Mono 13

Terminal -> edit -> preferences -> appearance -> font -> Space Mono 13

Mousepad -> edit -> preferences -> font -> Space Mono 13

Firefox -> edit -> settings -> Fonts -> Space Mono 17
Firefox -> edit -> settings -> Fonts(advanced) -> Space Mono 17
-> Allow pages to choose their own fonts -> disabled

Setting matching Grub Theme

$ sudo cp Catppuccin_Wallpaper.png /boot/.

$ sudo mousepad /etc/default/grub

GRUB_BACKGROUND="/boot/Catppuccin_Wallpaper.png"

$ sudo update-grub

*attempting to theme qt apps

$ sudo apt install qt5-gtk-platformtheme

$ sudo mousepad /etc/environment
# QT_QPA_PLATFORMTHEME=gtk3
# idk why this doesn't work, it used to work with the older one,
# and setting it as gtk2

# can also do...

$ sudo apt install adwaita-qt

$ sudo mousepad /etc/environment
QT_STYLE_OVERRIDE=adwaita-dark

vlc -> tools -> preferences use a dark palette

okular -> accessibility -> change colors -> change dark and light colors

dark color: #c6d0f5
light color: #303446

Setting catppuccin icons

$ sudo apt install papirus-icon-theme
# papirus is the base icon set

# https://github.com/catppuccin/papirus-folders
# follow instructions on github page for lavender dark icons
( this part is like this: ./papirus-folders -C cat-frappe-lavender --theme Papirus-Dark)

Applications -> Settings -> Appearance -> Icons -> Papirus-Dark

can reboot again, to finally apply all the theme/font stuff

# and after setting up the base system to my liking, then it's time,
# to reload the installation/rescue cd from the start, and to
# use clonezilla to make a backup of my perfect/custom Debian installation,
# to safe external storage, before installing any large gaming apps,

# Right now when the system is perfect, configured to my liking,
# and still somewhat small, is the perfect time to make a backup,
# and if anything goes wrong in the future, or if I simply want
# to start over from a clean base, I have the backup to work with.


(plain text link to this post without forum formating: https://paste.debian.net/hidden/dd4899af)

# This guide, was made 2/25/26 as I set up my own system for fun, and so
# as of this writing everything is working for me, but over time things can change,
# and everyone has different systems, so some advice may not be applicable, or
# require alteration to get working

Statistics: Posted by GamingOnLinux — 2026-02-25 21:21



Viewing all articles
Browse latest Browse all 4056

Trending Articles