getimiskon's space

Home Blog Projects Links About

How to install and set up osu! on Linux

Posted in 2020-07-27 (Edited in 2020-08-01)

Introduction

Most of the things I write here, were written as personal notes since 2018, in order to create a script to install osu! on Linux. The last time I installed osu! with that way was in November 2019, when I installed Arch Linux on my laptop, and I never had an issue with the procedure I'll share with you in this post. As of today there aren't any major changes and it will probably work for you.

For those that you don't know what osu! is, it's a free rhythm game that you have to click circles in the rhythm of music. You can download it here for free for Windows and Mac.

This guide will have commands for distros based on Ubuntu and Arch, mostly because there's more information about those, and these are the ones I have tested so far.


Preparation

To install osu! on your Linux distro, you should install Wine beforehand, if you haven't done it yet. On Ubuntu-based distros, you should follow the instructions Here. On Arch-based distros, open a terminal and run sudo pacman -S wine.

Next, clone this repository by running on a terminal git clone https://gitlab.com/osu-wine/osu-wine


Installation

Go to the osu-wine directory, and run sudo ./install.sh. This is the installation script. Then copy the configuration file for osu!, by running cp /etc/osu-wine.conf ~/.osu-wine.conf.

Run osu-wine. You'll see the install window. Keep in mind that you might get stuck in a loop in the installer. For this case install these packages:

For Ubuntu-based distros:

sudo apt install -y libc6 libgcc1 libglib2.0-0 libgphoto2-6 libgphoto2-port12 libgstreamer-plugins-base1.0-0 libgstreamer1.0-0 liblcms2-2 libldap-2.4-2 libmpg123-0 libopenal1 libpulse0 libudev1 libx11-6 libxext6 libxml2 zlib1g libasound2-plugins libncurses5 libcapi20-3 libcups2 libdbus-1-3 libfontconfig1 libfreetype6 libglu1-mesa libgnutls30 libgsm1 libgssapi-krb5-2 libgtk-3-0 libjpeg8 libkrb5-3 libncurses5 libodbc1 libosmesa6 libpcap0.8 libpng16-16 libsane1 libsdl2-2.0-0 libtiff5 libv4l-0 libva-drm2 libva-x11-2 libva2 libvulkan1 libxcomposite1 libxcursor1 libxfixes3 libxi6 libxinerama1 libxrandr2 libxrender1 libxslt1.1 libxxf86vm1

For Arch-based distros:

sudo pacman -S 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 alsa-plugins lib32-alsa-plugins alsa-lib lib32-alsa-lib libjpeg-turbo lib32-libjpeg-turbo libxcomposite lib32-libxcomposite libxinerama 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 cups samba dosbox

Then run osu-wine again. There won't be any issues with the installation.

if everything went right, you will see a big pink circle with the word osu! on it pulsing on the beat of what's playing in the background, while some songs are loaded by the game.

screenshot of the osu! game

Configuration

The game is installed, but that doesn't mean that your system is configured properly yet. There are some things that have to be fixed before you started playing. It's not important to do those changes, but they can be useful, especially if you are, or want to become more experienced in the game.

Let's get started with the config file. There are a few options you can change, by uncommenting (removing the "#" symbol) the command. I suggest uncommenting the path, and audio duration settings.

Take my config file as an example (There are a few more options above these in the screenshot, but they are commented).

screenshot of the osu! config file

Let's continue the setup with an important part of the game, the sound. The game uses PulseAudio for the sound, and as some of you might know, it has issues with latency, and that's not good for a game like this. I suggest following the "Adjusting Latency" part of the guide about Low Latency osu! on Linux by ThePooN.

Another important part of the game is the input. There are a few ways to play the game. You can use your mouse, your keyboard and even a graphics tablet. In this guide, I won't give any help about graphics tablets, because I don't own one and I have no experience about them. You may have to follow this guide. To disable the mouse accelleration, follow this guide. Also I suggest trying to change the mouse settings as you like from your desktop environment's mouse settings.

And the last part for this post is about in-game setup. That's something I'm sure you'll be able to figure out for yourselves, because there's not just one way to set it up. Also, I suggest using the offset wizard (click here to read the guide about it) in order to set up the game properly.


Conclusion

I know that this guide is not the best for some people, because it seems too much of a hassle to set up a game on Linux. For those people, the best option is a Windows and Linux dual-boot system, or a completely different PC just for games. But this wasn't written for them. It was written for me, and for people who are enthusiasts and want to have the best performance for their games. I hope you find this guide as useful as I do.

Have fun.


The source for most things is this guide is this topic from osu! forums.


Edit: I did a mistake and mentioned that there's a Mac version for osu! on the developer's site for the game. Unfortunately, there's only a page on Tumblr that has information about how to install osu! on Mac through Wine and it seems outdated. I may figure out how to install the stable version of osu! on macOS 10.15 Catalina (that's the version I have installed on my computer, and no, it's not a Mac) and I'll write another post for it.

There is also osu!lazer, which is a version of osu! in development, and its source code (and binaries) are available on github. You can use it in most operating systems. There are binaries for Windows, macOS, iOS and Android right now. It's not stable enough to use yet, as there are still bugs and some missing features.

screenshot of the osu!lazer menu

The best thing is that because it's running natively on your system instead of using a compatibility layer like Wine, on Linux you can use Alsa instead of PulseAudio to play with as less latency as possible (There is also a bug if you try to use PulseAudio). If you want to try osu!lazer, you can click here and download a binary or compile it from its source code.