Skip to content

Optimizing: osu! performance

NelloKudo edited this page Jul 9, 2026 · 16 revisions

Optimizing osu! on Linux

There are many desktop environments and window managers available for Linux, each with unique implementations and behaviors. This guide provides optimized settings for various DEs and WMs to ensure the best osu! experience with minimal input lag and graphical glitches.


  • If you experience issues with alt-tabbing or switching workspaces, set osu! to borderless fullscreen. This setting does not introduce input lag.

  • If the solutions below don’t fix freezing issues, switch to the winealsa driver:

    osu-wine --winetricks sound=alsa

    (This only changes the audio driver settings; it does not launch the game. Start osu! afterwards with osu-wine as usual.)

    • To eventually switch back to winepulse, run: osu-wine --winetricks sound=pulse
  • If none of the fixes below help, please test our fallback build before reporting the issue. You can run the wine-osu-cachy build, which is based on wine-cachyos/wine-valve from Proton, with:

    WINE_USE_CACHY=true osu-wine
    

Index


Desktop Environments

GNOME

  • GNOME X11 sessions disable compositor for fullscreen apps by default, hence there should be no problems with it by default.
  • GNOME Wayland doesn't support (yet) allowing tearing for fullscreen apps, so for the time being the default experience is the best possible.
  • GNOME has known issues with alt-tab and windowing, sometimes even leading to gnome-shell crashes (#216), possible solutions are:
    • Using borderless fullscreen in-game (doesn't affect latency, unlike Windows)
    • Using virtual desktop (osu-wine --winecfg, enable virtual desktop in the Graphics tab)
    • Using the fallback wine-osu-cachy build with: WINE_USE_CACHY=true osu-wine

KDE

KDE works great for osu!, in both X11 and Wayland, but there are some needed changes.

KDE - X11

Without disabling compositing (which you can do with shift + alt + f12), osu! will probably feel very iffy.

If you don't want to permanently disable it, you can add a rule that only disables it for osu! this way:

  • Launch osu! and make it windowed
  • Right click on the top bar, then go to: More Actions > Configure Special Application Settings
  • Click on "Add property..", search for "Block compositing" and set it to "Force" and yes.
  • Apply and save, osu! will now block compositing when it's launched!

image

It is also recommended to play in borderless fullscreen due to some issues with alt-tabbing, just set it and relaunch the game if you're having issues.

KDE - Wayland

Input and visual latency can be further lowered on Wayland by forcing tearing.

WARNING: There's been reports that tearing could lead to system freezes, please disable it in Settings > Window Rules if you get the issue.

  • Launch osu! and make it windowed
  • Right click on the top bar, then go to: More Actions > Configure Special Application Settings
  • Click on "Add property..", search for "Allow tearing" and set it to "Force" and yes.
  • Apply and save, osu! will now allow tearing and feel way better!

image


Cinnamon

Cinnamon doesn't automatically disable compositing for fullscreen apps:

  • Go to Settings > General
  • Toggle "Disable compositing for full-screen windows"

image


XFCE

XFCE also needs compositing to be disabled before playing:

  • Go to Settings > Window Manager Tweaks
  • In the "Compositor" tab, untick "Enable display compositing"

image

This can't sadly be automated unless you make a script that disables/enables it after launching/closing the game, something like:

xfconf-query -c xfwm4 -p /general/use_compositing -s false ; osu-wine ; xfconf-query -c xfwm4 -p /general/use_compositing -s true

Another alternative is using picom instead, which works even better (and it's automated) all by setting: unredir-if-possible = true


Window Managers

Hyprland

P.S: Hyprland configs change pretty often, so if the instructions below become outdated, please refer to the Hyprland wiki.

Hyprland allows enabling tearing for fullscreen apps, edit hyprland.conf and set:

general {
  .... // the rest of your config
  allow_tearing = true
}
windowrule = match:class .*osu.*, immediate 1

After this, launch osu! and you'll immediately notice the game runs way better.

If you have issues with tablet on Hyprland, see this.


MangoWM

MangoWM allows setting tearing with the following syntax:

windowrule=force_tearing:1,appid:osu!.exe

X11 Window Managers (i3, bspwm etc..)

If you use picom for compositor in your configuration, setting unredir-if-possible = true in picom's config file will make sure it turns off when fullscreen apps (like osu!) are launched.

Optimizing Performance

Gamemode

One way to optimize osu! and prevent lag/stutters is using gamemode:

  • Install it with your package manager: ex. sudo apt install gamemode
  • Add yourself to the gamemode group: sudo gpasswd -a $USER gamemode
  • Add gamemoderun to your PRE_LAUNCH_ARGS with: osu-wine --edit-config
image

Save with ctrl+x, try launching osu! and see if it runs any better.

  • If you feel like it introduced input lag, make sure to remove gamemode.

While your game's running, you can check if your CPU's governor has changed to performance with:

cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

If it didn't, please troubleshoot more at here or consider using something else like auto-cpufreq.


Realtime permissions

wine-osu also supports setting Wine-Staging's realtime permissions:

Add the required file with:

sudo mkdir -p /etc/security
sudo nano /etc/security/limits.conf

Then paste the following into it:

@userOrGroup         -       rtprio          90
@userOrGroup         -       nice           -10

Save with ctrl+x, then reboot.


By following these optimizations, you can ensure osu! runs with minimal latency and maximum performance on your Linux setup!

Clone this wiki locally