It’s amazing how our brains can just compute jacobians, am I right?
Activity Stream
-
Setting Up Ubuntu 25 for Gaming with GeForce RTX 4090
A complete guide for 4k HDR gaming, 3D audio, and Xbox controller support
Introduction
This guide covers the complete setup process for gaming on Ubuntu 25.04 with an NVIDIA RTX 4090, including HDR support, spatial audio, and Xbox Elite 2 controller configuration. These instructions are based on real-world testing and successful implementations.
Prerequisites
- Ubuntu 25.04 installed
- NVIDIA GeForce RTX 4090
- HDR-capable monitor (tested with ASUS XG27UCS)
- Xbox Elite 2 controller (or similar Xbox controller)
- DisplayPort cable for 4K HDR support
Graphics Driver Setup
Step 1: Add Graphics Drivers PPA
# Add the official graphics drivers PPA for newest drivers sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt update
Step 2: Install NVIDIA Proprietary Driver
# Check available drivers ubuntu-drivers devices # Install NVIDIA 575 driver (proprietary - required for HDR support) sudo apt install nvidia-driver-575 # Important: Do NOT use the open-source nouveau or NVK drivers as they don't support HDR or ray tracing
Step 3: Enable DRM Kernel Mode Setting
Create the NVIDIA configuration file:
sudo nano /etc/modprobe.d/nvidia-drm.conf
Add this line:
options nvidia-drm modeset=1
Update initramfs and reboot:
sudo update-initramfs -u sudo reboot
Step 4: Verify Installation
# Check driver version nvidia-smi # Verify DRM modeset is enabled cat /sys/module/nvidia_drm/parameters/modeset # Should output "Y" # Verify you're using proprietary driver, not NVK glxinfo | grep "OpenGL renderer" # Should show: NVIDIA GeForce RTX 4090/PCIe/SSE2 # NOT: NVK
HDR Setup
Desktop HDR Support
Ubuntu 25.04 includes native HDR support through GNOME 48. While this enables HDR for the desktop, games do not recognize this HDR support directly.
Enable Desktop HDR:
- Open Settings → Displays
- Select your HDR monitor
- Toggle HDR to ON
- The screen may flicker briefly as HDR activates
Important Note: Even with HDR enabled in GNOME, games did not detect HDR capability without using Gamescope. The GNOME compositor’s HDR implementation is not recognized by games running through Wine/Proton at the time of writing.
Gaming HDR Support via Gamescope
To get HDR working in games, you must use Gamescope as a wrapper. Gamescope provides the HDR signaling that games can detect and use.
Step 1: Install Gamescope
sudo apt install gamescope
Step 2: Universal Gamescope HDR Command
For all games requiring HDR, use this launch command in Steam:
VKD3D_DISABLE_EXTENSIONS=VK_KHR_present_wait DXVK_HDR=1 gamescope -W 3840 -H 2160 -w 3840 -h 2160 -r 160 --hdr-enabled --hdr-debug-force-output -f -- %command%
Command breakdown:
VKD3D_DISABLE_EXTENSIONS=VK_KHR_present_wait
– Prevents frame presentation hangsDXVK_HDR=1
– Enables HDR in DirectX translation layergamescope
– The wrapper that provides HDR support-W 3840 -H 2160
– Output resolution (4K)-w 3840 -h 2160
– Game internal resolution (4K native)-r 160
– Refresh rate limit--hdr-enabled
– Enable HDR mode--hdr-debug-force-output
– Force HDR output even if game doesn’t request it-f
– Fullscreen mode
Step 3: Apply to Steam Games
- Right-click any game in Steam
- Select Properties
- Paste the command above into Launch Options
- The game will now launch with HDR support
Note: Without Gamescope, games will not detect HDR capability even though the desktop has HDR enabled. This is a limitation of the current GNOME HDR implementation.
Diablo 4 Installation with Battle.net
Overview
Getting Diablo 4 working with HDR and ray tracing requires installing Battle.net through Steam using Proton, then launching with Gamescope.
Step 1: Download Battle.net Installer
- Download the Battle.net installer from: https://www.blizzard.com/download/
- Save
Battle.net-Setup.exe
to a known location (e.g.,~/Downloads/
)
Step 2: Add Battle.net Installer to Steam
- Open Steam
- Click “Add a Game” → “Add a Non-Steam Game”
- Click “Browse” and navigate to your Battle.net installer
- Select
Battle.net-Setup.exe
and click “Add Selected Programs”
Step 3: Configure Proton for Battle.net
- In Steam Library, find Battle.net-Setup.exe
- Right-click → Properties
- Go to Compatibility tab
- Check “Force the use of a specific Steam Play compatibility tool”
- Select Proton Experimental from the dropdown
Step 4: Install Battle.net
- Click Play on Battle.net-Setup.exe in Steam
- The installer will launch through Proton
- Complete the Battle.net installation process
- Important: Do NOT close Steam or remove the installer entry yet
Step 5: Create Diablo 4 Launch Entry
- After Battle.net installs, locate the Battle.net.exe:
# It will be in a path like: ~/.steam/steam/steamapps/compatdata/[STEAM_ID]/pfx/drive_c/Program Files (x86)/Battle.net/Battle.net.exe
- Add Battle.net.exe to Steam:
- “Add a Game” → “Add a Non-Steam Game” → “Browse”
- Navigate to the Battle.net.exe location
- Add it to Steam
- Rename it to “Diablo 4” for clarity
Step 6: Configure Diablo 4 Entry
- Right-click “Diablo 4” (Battle.net.exe) → Properties
- In Compatibility tab:
- Enable “Force the use of a specific Steam Play compatibility tool”
- Select Proton Experimental
- In Launch Options, add the standard HDR command:
VKD3D_DISABLE_EXTENSIONS=VK_KHR_present_wait DXVK_HDR=1 gamescope -W 3840 -H 2160 -w 3840 -h 2160 -r 160 --hdr-enabled --hdr-debug-force-output -f -- %command%
Step 7: Hide but Keep the Installer Entry
Critical: The Battle.net-Setup.exe entry creates the Proton prefix (folder structure) that Diablo 4 needs. You must keep it but can hide it:
- Right-click Battle.net-Setup.exe in Steam Library
- Select Manage → Hide this game
- Never delete this entry – it maintains the Proton prefix that Diablo 4 requires
Step 8: Install and Configure Diablo 4
- Launch “Diablo 4” from Steam (this opens Battle.net)
- Log into your Battle.net account
- Install Diablo 4 through the Battle.net client
- Once installed, Diablo 4 will launch through the gamescope wrapper with HDR enabled
Step 9: Enable Ray Tracing
Ray tracing requires the proprietary NVIDIA driver (575). If ray tracing options are grayed out:
- Verify you’re using the proprietary driver:
glxinfo | grep "OpenGL renderer" # Must show: NVIDIA GeForce RTX 4090/PCIe/SSE2 # NOT: NVK
- In Diablo 4, go to Settings → Graphics
- Ray tracing options should now be available
3D Audio Setup
Step 1: Install Required Packages
# Core audio packages sudo apt install pipewire pipewire-pulse pipewire-alsa wireplumber sudo apt install pavucontrol helvum alsa-utils # OpenAL for 3D positional audio sudo apt install libopenal1 libopenal-data openal-info # Audio effects processor sudo apt install easyeffects
Step 2: Configure OpenAL for HRTF
Create OpenAL configuration:
mkdir -p ~/.config/openal nano ~/.config/openal/alsoft.conf
Add this configuration:
[general] hrtf = true hrtf-mode = full frequency = 48000 channels = stereo sample-type = float32
[pulse]
allow-moves = true adjust-latency = true fix-rate = true
[hrtf]
search-path = /usr/share/openal/hrtf search-path = ~/.local/share/openal/hrtf
Step 3: Set Up Virtual Surround (Safe Method)
Create a safe virtual surround configuration:
# Create virtual surround sink pactl load-module module-remap-sink \ sink_name=virtual-surround \ sink_properties=device.description="Virtual 5.1 Surround" \ master=@DEFAULT_SINK@ \ channels=6 \ channel_map=front-left,front-right,front-center,lfe,rear-left,rear-right \ remix=no
Step 4: Configure EasyEffects
- Launch EasyEffects:
easyeffects
- Create a preset called “Gaming Audio” with these effects:
- Crossfeed: Cutoff 700 Hz, Feed 4.5 dB
- Stereo Tools: Default settings
- Equalizer: Adjust to taste
Step 5: Test Audio Setup
# Test surround sound speaker-test -t wav -c 6 # For Steam games, add to launch options if needed: PULSE_LATENCY_MSEC=60 %command%
Xbox Elite 2 Controller Setup
Step 1: Connect via Bluetooth
- Put controller in pairing mode: Hold Xbox button + Connect button (small button on top) for 3 seconds
- Open Settings → Bluetooth
- Click Add Device and select your controller
Step 2: Install xpadneo Driver
The xpadneo driver provides better Xbox controller support:
# Install dependencies sudo apt install dkms linux-headers-$(uname -r) # Clone and install xpadneo git clone https://github.com/atar-axis/xpadneo.git cd xpadneo sudo ./install.sh
Step 3: Configure Steam
- Open Steam → Settings → Controller → General Controller Settings
- Enable “Enable Steam Input for Xbox controllers” (toggle should be blue)
- Your controller should appear in the detected controllers list
Step 4: Troubleshooting Controller Detection
If Steam doesn’t detect your controller:
# Add user to input group sudo usermod -a -G input $USER # Log out and back in for changes to take effect # Test controller at system level sudo apt install joystick jstest /dev/input/js0 # Force Steam to use Linux joystick interface SDL_JOYSTICK_HIDAPI=0 steam
For persistent fix, add to
~/.bashrc
:export SDL_JOYSTICK_HIDAPI=0
Performance Optimizations
CPU Governor
Set CPU to performance mode while gaming:
sudo apt install cpupower sudo cpupower frequency-set -g performance
GPU Performance Mode
# Set GPU to maximum performance sudo nvidia-smi -pm 1 sudo nvidia-smi -pl 450 # Set power limit (adjust for your card)
Disable Compositor for Gaming
For X11 sessions, disable compositor effects:
# Add to game launch options __GL_YIELD="USLEEP" %command%
Troubleshooting
HDR Not Working
- Desktop HDR but games don’t detect it: This is expected – games require Gamescope for HDR
- Ensure you’re using DisplayPort (not HDMI)
- Check monitor HDR is enabled in monitor’s OSD
- Verify NVIDIA driver version is 575 (proprietary)
- Confirm Gamescope is in the launch options
Controller Not Detected
- Check Bluetooth connection:
bluetoothctl devices
- Verify system detection:
cat /proc/bus/input/devices | grep Xbox
- Restart Steam with:
SDL_JOYSTICK_HIDAPI=0 steam
- Check permissions:
ls -la /dev/input/js*
Audio Issues
- Reset PipeWire:
systemctl --user restart pipewire pipewire-pulse wireplumber
- Check audio devices:
pactl list short sinks
- If buzzing occurs, kill all audio processes:
pkill -f pipewire pkill -f wireplumber pkill -f easyeffects
Game-Specific Issues
- Ray tracing grayed out: Ensure you’re using proprietary NVIDIA driver 575, not nouveau or NVK
- HDR not detected in games: Games require Gamescope – native GNOME HDR is not recognized by games
- Poor HDR colors: This is a known limitation with Gamescope on GNOME; colors may appear washed out
- Input lag: The
VKD3D_DISABLE_EXTENSIONS=VK_KHR_present_wait
in the launch command should fix this - Battle.net crashes: Ensure the hidden Setup.exe entry still exists in Steam library
Verification Commands
# Check NVIDIA driver nvidia-smi # Verify DRM modeset cat /sys/module/nvidia_drm/parameters/modeset # Test controller jstest /dev/input/js0 # Check audio setup pactl list short sinks speaker-test -t wav -c 6 # Monitor GPU performance nvidia-smi dmon -s pucvmet
Standard Gamescope HDR Launch Command
For all games requiring HDR, use this single command:
VKD3D_DISABLE_EXTENSIONS=VK_KHR_present_wait DXVK_HDR=1 gamescope -W 3840 -H 2160 -w 3840 -h 2160 -r 160 --hdr-enabled --hdr-debug-force-output -f -- %command%
Final Notes
- GNOME’s HDR support is desktop-only – games cannot detect it without Gamescope
- The proprietary NVIDIA 575 driver is required for HDR and ray tracing support – do not use NVK or nouveau
- For best HDR experience, consider KDE Plasma 6 on Fedora as an alternative
- Always use DisplayPort for 4K@160Hz HDR (HDMI may not support full bandwidth)
- Keep Battle.net-Setup.exe entry hidden but not deleted in Steam for Diablo 4 to work
- Check ProtonDB for game-specific tweaks and compatibility notes
This setup has been tested and confirmed working with:
- NVIDIA RTX 4090 with driver 575 (proprietary)
- ASUS XG27UCS monitor (4K@160Hz HDR)
- Xbox Elite Series 2 controller
- Ubuntu 25.04 with GNOME 48
- Steam with Proton Experimental
- Battle.net and Diablo 4 with HDR and ray tracing
Happy gaming on Linux!
-
It begins
https://ground.news/article/researchers-say-ai-designed-antibiotics-could-defeat-superbugs-gonorrhoea-and-mrsa?utm_source=mobile-app&utm_medium=article-share
-
Vampire Survivors is better than it has any right to be. Normally I’m not a huge fan of Roguelikes but this has to be the perfect handheld mobile game
-
“It’s not a race” said the loser of the race
-
My absolute favorite thing about AI right now is pointing it to compilation/install instructions for some Linux thing and saying “read this and make me a script that does it”
-
GPT-5 Released
With today’s ChatGPT-5 release it feels like the time to say this. If you don’t think AI is going to take your software job, you haven’t been paying attention.
The last thing I worked on was AI and let me tell you, the people working on it are scared for their jobs but they don’t know what to do about it. It feels inevitable. While AIs progress may be inevitable because of the market forces involved for those who achieve AGI and super intelligence first – we don’t have to use it the same way we don’t have to use nuclear weapons just because they exist.
Would you have liked a say in how your company can and can’t use AI instead of having it foist upon you? I guess you should have formed a union. Like the writers guild.
Want a quiet office for complex work instead of loud open office space? I guess you should have formed a union
Want a say in Return to Office policy? Union
Think your company is abusing the H1-B visa system by tailoring job descriptions to match specific candidates so tightly that literally nobody else qualifies as justification for the visa?
How about just better quality toilet paper?
No one person can fight these things on their own because they are economic forces and economics always wins over personal preference. Open Office spaces are cheaper than private offices. You’ll never convince your employer to switch. They’ll just push back saying their competitors are doing it and will save so much money they’ll out compete us unless we do too. Sound familiar?
Unions are about way more than just pay and benefits. “We make enough” is the most common argument I’ve heard against Unions.
It doesn’t feel that way when you work your ass off on a product that launches, get laid off but all your work is still driving sales – as has happened to me several times in my career. It feels that, like a book or a movie, the author should have gotten a part of the sales for as long as their IP was being used. Software should have royalties, but it never will unless our work can be withheld until things change.
It’s probably the too late now anyway. I really like coding with the AI agents and it’s unlocked a new era of software, akin to the boost Excel gave back when if you wanted to calculate mortgage interest you needed to code a custom application in assembly. Even if these models never got any better than they are today that change is here, but they are getting better. 2x better every 7 months.
-
Wordle 1,506 4/6
⬛🟨⬛⬛⬛
🟨⬛🟨⬛⬛
⬛🟨🟨🟨🟨
🟩🟩🟩🟩🟩
-
The Dreaming Void by Peter F. Hamilton is super boring writing (to me, reasonable people can have different opinions) — which is a shame because I think the future described in the book with all the different techno factions of humanity is extremely likely in the medium term. More likely than The Expanse even