- Install wine from the official repositories, wine 7.12 is stable enough to run osu!
$ sudo pacman -S wine
$ WINEPREFIX="/home/(your username here)/.wineosu" WINEARCH=win64 winetricks dotnet48 cjkfonts corefonts meiryo vlgothic gdiplus_winxp win2k3
- This will create the wine prefix, install fonts and .NET to run the game
- If it asks you to install mono and gecko, don't install them
# pacman -S --needed giflib lib32-giflib libpng lib32-libpng libldap lib32-libldap gnutls lib32-gnutls mpg123 lib32-mpg123 openal lib32-openal v4l-utils lib32-v4l-utils libpulse lib32-libpulse libgpg-error lib32-libgpg-error alsa-plugins lib32-alsa-plugins alsa-lib lib32-alsa-lib libjpeg-turbo lib32-libjpeg-turbo sqlite lib32-sqlite libxcomposite lib32-libxcomposite libxinerama lib32-libgcrypt libgcrypt lib32-libxinerama ncurses lib32-ncurses opencl-icd-loader lib32-opencl-icd-loader libxslt lib32-libxslt libva lib32-libva gtk3 lib32-gtk3 gst-plugins-base-libs lib32-gst-plugins-base-libs vulkan-icd-loader lib32-vulkan-icd-loader
- These are some libraries used by wine, some are to have internet connection and/or make the game even run
- Get the osu installer:
wget https://m1.ppy.sh/r/osu!install.exe
- Launching the installer in the WINEPREFIX we
WINEPREFIX="/home/(your username here)/.wineosu" WINEARCH=win64 wine64 (path to osu installer)
- Select
C:/
as the install path, "osu! will install to C:/osu! in x..." - Now osu! will open, close it, we will make a start script
- create a text/shell file where you want the start script to be
#! /bin/sh
export WINEPREFIX="/home/(your username here)/.wineosu"
export WINEARCH=win64
if [[ -z "$1" ]]; then
wine64 C:/osu\!/osu\!.exe
fi
if [[ $1 == "config" ]]; then
winecfg
fi
if [[ $1 == "tricks" ]]; then
winetricks
fi
if [[ $1 == "kill" ]]; then
wineserver -k
fi
if [[ $1 == "regedit" ]]; then
regedit
fi
- XDG spec doesn't support enviroment variables, so you have to replace the
(your username here)
with your actual linux user - Make the script executable:
chmod +x (path to your osu script)
./script
Opens osu!./script "config"
Opens winecfg in the osu WINEPREFIX./script "tricks"
Opens winetricks in the osu WINEPREFIX./script "kill"
kills everything running in the osu WINEPREFIX./script "regedit"
Opens up registry editor in the osu WINEPREFIX
- Install
osu-handler
from the AUR
wget --output-document ~/.osulogo.png https://github.com/ppy/osu-wiki/raw/master/wiki/Brand_identity_guidelines/img/usage-full-colour.png
- Create the .desktop file:
touch ~/.local/share/applications/osustable.desktop
- Paste this into the file:
[Desktop Entry]
Exec=(Path to you osu start script)
Icon=/home/(username here)/.osulogo.png
Name=osu!
- XDG spec doesn't support enviroment variables. Enter your username and path manually
- This is your .desktop entry, you can make a symlink to the desktop to have it there if you prefer to do so
Open folders using native file manager instead of wine's explorer (OPTIONAL, only recommended if you are prone to opening folders from ingame, either by Opening song folders or just clicking replay exports)
- Create a file in
~/.local/bin
calledrun_as_linux
- Inside that file put:
#!/bin/bash
xdg-open "`/opt/wine-osu/bin/winepath -u "${1::-1}"`"
- Next up you have to change some registry keys in the prefix, run your the script with the "regedit" argument
- Go to
HKEY_CLASSES_ROOT/folder/shell/open/
- Delete all the subfolders of
open
- Create the
command
folder insideopen
. like this: - If you are ok with adding .local/bin to your PATH env var
- Add
~/.local/bin
to your PATH env var.
- Add
- If you aren't (or dont know how)
- In the next step where you edit the
(Default)
key, replacerun_as_linux
with/home/(your username here)/.local/bin/run_as_linux
- ^ Replace
(your username here)
with your actual linux user
- In the next step where you edit the
- Edit the
(Default)
key to/bin/sh run_as_linux "%1"
. - All will have to end up looking like this:
- Or this if you didn't edit your PATH env var:
- If you edited your PATH env var you will need to log out and log back in for it to take effect in your DE/WM (or restart in some cases)
- If you are using PulseAudio, uninstall and disable it, if you don't know if you are using PA, check with
pactl info
- Install pipewire:
sudo pacman -S pipewire pipewire-alsa pipewire-pulse pipewire-media-session
- Enable and start pipewire:
systemctl --user enable --now pipewire.service pipewire.socket pipewire-media-session.service pipewire-pulse.service pipewire-pulse.socket
-
Copy default config to user's config:
cp -r /usr/share/pipewire/* ~/.config/pipewire/
-
Add this line
pulse.min.quantum = 48/48000 # 1m
in~/.config/pipewire/pipewire-pulse.conf
-
The lower the value, the lower latency you get, 48 means how big the packet is, if you have problems below 1ms then set it to 1ms
-
You may want to edit other files to have the correct sample rate, this is defined in
.config/pipewire/media-session.d/alsa-monitor.conf
asaudio.rate
, make sure you edit output instead of input
- Edit the line that says
session.suspend-timeout-seconds
inmedia-session.d/alsa-monitor.conf
, uncomment this line and change the value to 0
- Install
opentabletdriver
from the AUR - Enable and start OTD:
systemctl --user enable --now opentabletdriver.service
- Add this to
/etc/modprobe.d/blacklist.conf
to disable kernel modules so it doesn't get in the way of OTD
blacklist wacom
blacklist hid_uclogic
- Stopping wacom drivers:
rmmod wacom
- Stopping other tablet drivers:
rmmod hid_uclogic
- Reconnect your tablet to apply the udev rules
- If you have problems, check out https://opentabletdriver.net/Wiki/FAQ/Linux
- It is HIGLY recommended to adjust your universal offset according to your setup, checkout ThePoon's server on how to measure latency and to check what value fits your best
- If you don't have a LOCALE set, set one, this is to allow non-english characters in beatmaps and skin paths
- If you STILL have problems after all this, ask for help in the #osu-linux channel in ThePoon's server, they know best
I had an issue with osu! updater where it said "An error occured! Please check your internet connection"
Solution for this was to install lib32-gnutls