How to Reduce Input Lag in Games on Arch Linux
Categories:
5 minute read
Input lag is a common concern among gamers, especially those who play competitive or fast-paced titles where every millisecond counts. On Linux systems like Arch Linux, there are several factors that can contribute to input lag, ranging from kernel latency and compositors to display settings and driver configurations. Fortunately, with Arch’s flexible and minimalist approach, users have significant control over system components, making it easier to fine-tune for low-latency gaming.
In this article, we’ll explore practical ways to reduce input lag on Arch Linux, addressing both system-level configurations and gaming environment optimizations.
1. Understanding Input Lag
Input lag refers to the delay between the moment an input device (like a mouse, keyboard, or controller) registers an action and the moment that action is displayed on the screen. Several layers of hardware and software are involved:
- Peripheral input (mouse/keyboard/controller latency)
- OS processing time
- Graphics driver and rendering delay
- Display pipeline latency
- Compositor and desktop environment overhead
Reducing input lag involves minimizing latency at each of these stages.
2. Choosing the Right Kernel
Use a Low-Latency or Real-Time Kernel
The default kernel in Arch is optimized for general-purpose computing. For gaming, especially when reducing input lag is critical, consider switching to a kernel with better latency characteristics:
- linux-zen: Optimized for desktop responsiveness and low-latency use cases.
- linux-rt: Real-time kernel with the lowest possible latency (best for specific workloads, but less common for gaming).
You can install the linux-zen
kernel with:
sudo pacman -S linux-zen linux-zen-headers
Make sure to update your bootloader to reflect the change and reboot into the Zen kernel.
3. Disable Compositor
Compositors like those used in GNOME, KDE, or other desktop environments can add extra latency due to the way they manage window rendering and effects.
Options
- Disable compositor in-game: Some DEs (like KDE Plasma) allow you to suspend the compositor when a game launches.
- Use lightweight DE or window manager: Try i3, Openbox, or XFCE with compositor turned off.
- Manual compositor toggle (e.g., picom):
If using
picom
, toggle it off before gaming:pkill picom
Turning off the compositor often results in a noticeable decrease in input lag.
4. Use a High-Performance GPU Driver Configuration
NVIDIA
For NVIDIA users:
Install the proprietary drivers:
sudo pacman -S nvidia nvidia-utils nvidia-settings
Enable
ForceFullCompositionPipeline
only if screen tearing is a problem, as it can add latency: Add this to your/etc/X11/xorg.conf.d/20-nvidia.conf
:Option "TripleBuffer" "False" Option "AllowIndirectGLXProtocol" "off" Option "TripleBuffer" "false" Option "ForceFullCompositionPipeline" "false"
Use
nvidia-settings
to set PowerMizer to “Prefer Maximum Performance”.Add this environment variable to your game launch script or
.bashrc
:export __GL_YIELD="USLEEP" export __GL_THREADED_OPTIMIZATIONS=1
AMD and Intel
Use the open-source mesa
drivers, which perform well out of the box.
Install Vulkan support:
sudo pacman -S vulkan-radeon lib32-vulkan-radeon
Disable vsync if not needed (vsync adds latency in exchange for smoothness).
5. Use a Real-Time I/O Scheduler
Linux provides different I/O schedulers that determine how disk reads and writes are handled.
For gaming, the mq-deadline
or none
scheduler often provides better latency than the default:
Check your current scheduler:
cat /sys/block/sdX/queue/scheduler
Set it temporarily (replace sdX
with your drive):
echo none | sudo tee /sys/block/sdX/queue/scheduler
To make it permanent, use a udev rule or udevmon
.
6. Optimize CPU Governor
CPU frequency scaling can cause lag if the CPU isn’t ramping up fast enough.
Set your CPU governor to performance
:
Install
cpupower
:sudo pacman -S cpupower
Set the governor:
sudo cpupower frequency-set -g performance
To make it persist, enable the service:
sudo systemctl enable cpupower.service
7. Enable GameMode by Feral Interactive
GameMode is a daemon/lib combo that adjusts CPU governor, I/O priority, and niceness levels to optimize performance during gameplay.
Installation
sudo pacman -S gamemode lib32-gamemode
Usage
Many games launched via Steam or Lutris automatically detect GameMode. Alternatively, launch your game like this:
gamemoderun ./game_binary
8. Tweak Display Settings
Use a High Refresh Rate Monitor
Make sure your display is set to its native high refresh rate:
xrandr --output HDMI-1 --mode 1920x1080 --rate 144.00
Replace HDMI-1
with your display output name.
Disable VSync (if latency matters more than screen tearing)
In Vulkan or OpenGL titles, look for an option to disable vsync.
For Steam games using Proton, set:
PROTON_NO_ESYNC=1 PROTON_NO_FSYNC=1 DXVK_HUD=1 gamemoderun %command%
9. Reduce Polling Rate Delay
Polling rate determines how often your mouse or keyboard sends input data to the computer.
Mouse Polling Rate
For USB mice, set higher polling rate (e.g., 1000Hz):
sudo rmmod usbhid
sudo modprobe usbhid mousepoll=1
Add this to a startup script or systemd unit to persist across reboots.
Note: Some motherboards or mice may not support polling rates above 500Hz reliably.
10. Use an Xorg Session (Avoid Wayland for Competitive Gaming)
Wayland is the future of Linux display servers, but it still introduces more latency in some gaming scenarios, particularly when combined with NVIDIA drivers.
If minimizing latency is your priority, consider running your games on Xorg instead of Wayland.
How to switch to Xorg
- For GNOME: Choose “GNOME on Xorg” at login screen.
- For KDE: Login manager should allow session selection (plasma-x11).
11. Monitor Latency and Performance
Use these tools to check and monitor system performance:
latencytop
: For measuring kernel-related latencies.htop
: For monitoring CPU performance.powertop
: For checking CPU power states (should stay at C0 during gaming).MangoHud
: For in-game HUD performance metrics.
Install MangoHud:
sudo pacman -S mangohud lib32-mangohud
Run game with HUD:
mangohud ./game_binary
Conclusion
Arch Linux’s flexibility gives you unmatched control over system performance, making it ideal for tweaking and tuning for low-latency gaming. By choosing a low-latency kernel, disabling compositors, optimizing GPU drivers, and using tools like GameMode and MangoHud, you can significantly reduce input lag and enjoy smoother gameplay.
Keep in mind that some techniques (e.g., disabling vsync or compositors) may trade visual polish for responsiveness. Experiment to find the right balance for your setup and the games you play.
With thoughtful tuning and the Arch community’s vast documentation, achieving near-console levels of responsiveness on Linux is entirely within reach.
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.