Skip to content

Instantly share code, notes, and snippets.

@EXtremeExploit
Last active March 31, 2024 00:05
Show Gist options
  • Star 10 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save EXtremeExploit/af3cae2178ce1af3ab5c783ec0087642 to your computer and use it in GitHub Desktop.
Save EXtremeExploit/af3cae2178ce1af3ab5c783ec0087642 to your computer and use it in GitHub Desktop.
Installation guide to installing osu! on Arch Linux

osu! Arch Linux guide install

Installing wine

  • Install wine from the official repositories, wine 7.12 is stable enough to run osu!
$ sudo pacman -S wine

Installing wine dependecies

$ 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

Installing osu!

  • 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

Startup 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)

Usage

  • ./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

File assosiations

Desktop entry

Getting the osu logo

  • wget --output-document ~/.osulogo.png https://github.com/ppy/osu-wiki/raw/master/wiki/Brand_identity_guidelines/img/usage-full-colour.png

Creating the entry

  • 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 called run_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 inside open. like this: image
  • If you are ok with adding .local/bin to your PATH env var
    • Add ~/.local/bin to your PATH env var.
  • If you aren't (or dont know how)
    • In the next step where you edit the (Default) key, replace run_as_linux with /home/(your username here)/.local/bin/run_as_linux
    • ^ Replace (your username here) with your actual linux user
  • Edit the (Default) key to /bin/sh run_as_linux "%1".
  • All will have to end up looking like this:
  • image
  • Or this if you didn't edit your PATH env var:
  • image
  • 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)

PipeWire config (Audio server)

  • If you are using PulseAudio, uninstall and disable it, if you don't know if you are using PA, check with pactl info

Installing pipewire

  • 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

Configuring pipewire

  • 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

    • It should end up something like this
    • image
  • 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 as audio.rate, make sure you edit output instead of input

No sound when opening the game

  • Edit the line that says session.suspend-timeout-seconds in media-session.d/alsa-monitor.conf, uncomment this line and change the value to 0

Tablet drivers

Installing OpenTabletDriver

  • 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

General recommendations

  • 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
@wiktor-falek
Copy link

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

@EXtremeExploit
Copy link
Author

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

lib32-gnutls is already in the installing wine dependencies section

@Muffinaa
Copy link

Any way to make it not go crazy when using tilling window managers like dwm?

@EXtremeExploit
Copy link
Author

EXtremeExploit commented Mar 18, 2023

Any way to make it not go crazy when using tilling window managers like dwm?

wdym, can you record a video on what its happening?, i use awesomewm and it runs just fine tho

@chrystom
Copy link

chrystom commented Jun 8, 2023

quick question: the big pacman command requires you to remove wine as it is in conflict with wine-staging. that's normal right?

@EXtremeExploit
Copy link
Author

hm nope, i forgot to remove wine-staging from the list, thanks

@REALalphas
Copy link

When logging in it doesn't open link for verification

@EXtremeExploit
Copy link
Author

if you open the game from a terminal and try opening the link there, what does the terminal say?

@Catizard
Copy link

Catizard commented Dec 17, 2023

when running wintricks vlgothic, logs shows it's downloading from URL: "https://web.archive.org/web/2000/https://ja.osdn.net/projects/vlgothic/downloads/62375/VLGothic-20141206.tar.xz" and sha sum mismatched.I curl the url directly and got a HTML file, how to fix it?I'm not familiar with wine

Edit: I download the correct file and put it in cache directory solved this problem

@EXtremeExploit
Copy link
Author

The current VLGothic download URL is broken, this got fixed by a commit 3 days ago (Winetricks/winetricks@d83f42d) and i have no idea when a next release is going to happen

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment