====== Osu! on Linux ======
Osu works pretty well on Linux, it just requires a bit of configuration for low-latency playing.
===== Requirements =====
* Wine Staging (current version in Gentoo repos fix alot of issues in the older versions of wine)
* Winetricks
Wine Gecko or Mono isn't needed, we won't be using them. This install assumes a default pulseaudio config. Staging is preferred over vanilla if possible, but osu! can run with vanilla just fine with some tweaks.
===== Setup =====
- Create an empty wineprefix, 64-bit works perfectly fine and is recommended if you want to use other windows applications too.
- Using winetricks, install ''dotnet40'' and ''cjkfonts''
- (optional) Install ''gdiplus''. While this fixes the option menu icons and audio player icons, it breaks cjk fonts using the fontaliases that wine does by default, you will have to copy over windows fonts to fix this.
- Install osu! with their [[https://osu.ppy.sh/home/download|installer]].
- Create a .desktop file in ''~/.local/share/applications''. See [[osu_on_linux#desktop_template|template]].
==== Alternative: Use Lutris ====
The ''Windows version'' of osu! Stable on [[https://lutris.net/games/osu|Lutris' website]] is another good way to install the game. It contains tkg's patched wine v4.16 with Poon's audio fixes alongside other things. Its recommended to follow Poon's guide after setting this one up. Also, since the installer adds ''gdiplus'' into the wineprefix, you must copy over Windows fonts for CJK text to display properly. Apart from that, it is practically plug and play.
===== .desktop Template =====
[Desktop Entry]
Exec=wine /home//.wine/drive_c/users//Local\ Settings/Application\ Data/osu\!/osu\!.exe
#Exec=env PULSE_LATENCY_MSEC=40 vblank_mode=0 wine /home//.wine/drive_c/users//Local\ Settings/Application\ Data/osu\!/osu\!.exe
Name=osu!
Comment=Weeb circle clicking game
Icon=osu.png
StartupWMClass=osu!.exe
Type=Application
Categories=Game;
MimeType=x-scheme-handler/discord-367827983903490050;x-scheme-handler/osu;
Replace '''' with your Linux user. The commented ''Exec'' option is for an older version of wine that required ''PULSE_LATENCY_MSEC=40'' to prevent audio artifacts. ''vblank_mode=0''((''%%__GL_SYNC_TO_VBLANK=0%%'' is the proprietary NVIDIA equivalent)) stops vsync if you are having issues with your desktop environment. Place {{:osu.png?linkonly |}} in ''~/.local/share/icons'' for a lovely icon.
===== OpenTabletDriver =====
Linux users are lucky to have **__1__** osu! tablet driver available! It's cross-platform, open-source, and the successor to hawku's drivers which are windows only :/. Anyways, it's called OpenTabletDriver and it is a C# program. You can manually install it into ''/opt'', and make a cronjob/systemd-user service to start the daemon on boot. The AUR package also has an icon and accompanating .desktop file. Be sure to blacklist the ''wacom'' drivers and copy over the provided udev rules to avoid permission errors. Check the FAQ if there are any other issues. This driver works 100x better than the native Windows/Linux wacom drivers.
===== Discord RPC =====
To get Discord RPC working on the lutris version of osu!, use [[https://github.com/HorizonCode/linux-lutris-osu-rpc|this script]] and follow the ''README.md'' instructions.
===== Notes =====
* While Poon's wine modifications seem to improve latency alot, the newer version of wine don't have as bad latency as the older ones and his patch no longer compiles on the latest staging version. Maybe I still should try it sometime though.
* Play on unlimited framerate, you can notice a decrease in responsiveness otherwise.
* Don't play with fucking [[https://wiki.archlinux.org/index.php/Mouse_acceleration|mouse acceleration]]. You can disable it in GNOME with ''gnome-tweaks''.
===== References =====
* [[https://appdb.winehq.org/objectManager.php?sClass=version&iId=28025|WineDB]]
* [[https://osu.ppy.sh/community/forums/topics/367783|Franc[e]sco's guide]]
* [[https://blog.thepoon.fr/osuLinuxAudioLatency/|The Poon's Guide]]
* [[https://github.com/InfinityGhost/OpenTabletDriver/wiki/Linux-FAQ|OpenTabletDriver's Linux FAQ]]