How to Uninstall osu-winello Completely: Step-by-Step Guide

Run ./osu-winello.sh uninstall or osu-wine --remove to execute the built-in Uninstall() function, which removes all desktop entries, launcher scripts, patched Wine binaries, and optionally your game files and Wine prefix.

The osu-winello repository by nellokudo provides a custom Wine environment for running osu! on Linux. When you need to remove the installation, the project includes a comprehensive uninstallation routine that ensures no residual components remain on your system.

Using the Built-in Uninstall Methods

The Uninstall() function defined in osu-winello.sh (lines 682-736) handles the complete removal process. You can trigger this routine through two commands.

Method 1: Run the Installer with the Uninstall Flag

Navigate to your osu-winello directory and execute the installer with the uninstall argument:

cd /path/to/osu-winello
./osu-winello.sh uninstall

This command invokes the Uninstall() function directly from the main installer script.

Method 2: Use the Launcher Command

If the launcher is already in your $PATH, run the removal option:

osu-wine --remove

The osu-wine launcher forwards this flag to the same Uninstall() routine in osu-winello.sh.

What Gets Removed During Uninstallation

The automated process deletes specific components installed by osu-winello:

  • Desktop integration files: Removes $XDG_DATA_HOME/icons/osu-wine.png and $XDG_DATA_HOME/applications/osu-wine.desktop
  • Launcher utilities: Deletes $BINDIR/osu-wine, folderfixosu, and folderfixosu.vbs from your local bin directory
  • MIME-type associations: Removes $XDG_DATA_HOME/mime/packages/osuwinello-file-extensions.xml and related handler desktop files
  • Patched Wine binaries: Completely removes the wine-osu directory at $XDG_DATA_HOME/osuconfig/wine-osu
  • Runtime dependencies: Deletes YAWL and Steam Runtime files from $XDG_DATA_HOME/yawl
  • Wine prefix (optional): Removes $XDG_DATA_HOME/wineprefixes/osu-wineprefix if you confirm the prompt
  • Game files (optional): Deletes the osu! installation directory path stored in $XDG_DATA_HOME/osuconfig/osupath and the entire $XDG_DATA_HOME/osuconfig directory upon confirmation

Manual Uninstallation Steps

If the automated script fails, execute these commands to manually remove all components:


# Remove desktop entries and icons

rm -f "$XDG_DATA_HOME/icons/osu-wine.png"
rm -f "$XDG_DATA_HOME/applications/osu-wine.desktop"

# Remove launcher scripts and helpers

rm -f "$HOME/.local/bin/osu-wine"
rm -f "$HOME/.local/bin/folderfixosu"
rm -f "$HOME/.local/bin/folderfixosu.vbs"

# Remove MIME type registrations

rm -f "$XDG_DATA_HOME/mime/packages/osuwinello-file-extensions.xml"
rm -f "$XDG_DATA_HOME/applications/osuwinello-file-extensions-handler.desktop"
rm -f "$XDG_DATA_HOME/applications/osuwinello-url-handler.desktop"

# Remove patched Wine and runtime files

rm -rf "$XDG_DATA_HOME/osuconfig/wine-osu"
rm -rf "$XDG_DATA_HOME/yawl"

# Remove Wine prefix (optional - only if you want to delete all Wine data)

rm -rf "$XDG_DATA_HOME/wineprefixes/osu-wineprefix"

# Remove game files and configuration

if [ -e "$XDG_DATA_HOME/osuconfig/osupath" ]; then
    OSU_PATH=$(<"$XDG_DATA_HOME/osuconfig/osupath")
    rm -rf "$OSU_PATH"
fi
rm -rf "$XDG_DATA_HOME/osuconfig"

Replace $XDG_DATA_HOME with ~/.local/share if the environment variable is unset on your system.

Summary

  • Run ./osu-winello.sh uninstall or osu-wine --remove to execute the automated Uninstall() function from osu-winello.sh.
  • The process removes desktop entries, launcher scripts, patched Wine binaries (wine-osu), YAWL runtime, and MIME associations.
  • You will receive interactive prompts to optionally delete the Wine prefix at $XDG_DATA_HOME/wineprefixes/osu-wineprefix and the actual osu! game files referenced in $XDG_DATA_HOME/osuconfig/osupath.
  • If the script fails, manually remove files using the rm commands targeting $XDG_DATA_HOME subdirectories and $HOME/.local/bin.

Frequently Asked Questions

Does uninstalling osu-winello delete my beatmaps and skins?

The automated uninstaller prompts you before deleting game files. If you confirm, it removes the directory path stored in $XDG_DATA_HOME/osuconfig/osupath, which contains your complete osu! installation including beatmaps, skins, and settings. To preserve your data, answer no when prompted or manually back up your Songs and Skins folders before running the uninstaller.

Can I uninstall osu-winello without removing the Wine prefix?

Yes. The Uninstall() function in osu-winello.sh treats the Wine prefix at $XDG_DATA_HOME/wineprefixes/osu-wineprefix as optional. During execution, you will receive a specific prompt asking whether to delete the prefix. Select no to retain the prefix while still removing the osu-winello launcher, patched Wine binaries, and desktop integration files.

Where is the uninstall logic defined in the source code?

The complete uninstallation routine is implemented in the Uninstall() function within osu-winello.sh at lines 682-736. This function handles the interactive prompts and executes the removal commands for desktop entries, MIME types, launcher scripts, and game directories. Both the ./osu-winello.sh uninstall command and the osu-wine --remove option ultimately invoke this specific function.

What if the uninstall script fails or returns an error?

If the automated uninstaller fails, you can perform a manual removal by executing the shell commands listed in the manual uninstallation section above. Key directories to remove include $XDG_DATA_HOME/osuconfig (configuration and Wine binaries), $HOME/.local/bin/osu-wine (launcher), and the game directory path stored in $XDG_DATA_HOME/osuconfig/osupath. Ensure you replace $XDG_DATA_HOME with ~/.local/share if the environment variable is not set.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →