Minimalist wine game launcher written purely in bash.
- Fully featured zsh and bash completion script
- Create and delete wine prefixes
- Download and install wine builds
- Download and install dxvk builds
- Install and uninstall dxvk on wine prefix
- Launch games
- Use feral gamemode
- Configure everything with a config file
Command | Description |
---|---|
--list-games | List games in config.ini |
--help | Display help message |
--create-prefix [game] | Create a prefix if there isn't already one |
--delete-prefix [game] | Delete a prefix |
--launch [game] | Launch game |
--install-dxvk [game] | Install dxvk on prefix |
--uninstall-dxvk [game] | Uninstall dxvk on prefix |
--winecfg [game] | Open winecfg on prefix |
--winetricks [game] | Open winetricks on prefix |
--download-wine [version] | Download wine build and install it |
--download-dxvk [version] | Download dxvk build and install it |
--clear-cache | Delete everything in the cache directory |
The config file is located at $XDG_CONFIG_HOME/minlau/config.ini
or $HOME/.config/minlau/config.ini
if $XDG_CONFIG_HOME
is not set. It will accept any varible you set, so things like DXVK_HUD
can also be used.
Variable | Description |
---|---|
[global] | Global settings, will be overwriten by the game var |
[GAME] | Game specific settings, overwrites global settings |
LAUNCH | Path to game executable |
WINE | Path to wine binary |
WINEPREFIX | Path to wine prefix |
WINEARCH | Wine architecture [win32/win64], defaults to win64 |
WINEESYNC | Whether or not to use esync [0/1] |
WINEFSYNC | Whether or not to use fsync [0/1] |
GAMEMODE | Whether or not to use feral gamemode [0/1] |
WINE_INSTALL | Path to install wine builds |
DXVK_INSTALL | Path to install dxvk builds |
DXVK_PATH | Path to dxvk installation |
DXVK_DLLS | Which dxvk dlls to install |
AUTO_DXVK | Whether or not to auto (un)install dxvk on prefix [0/1] |
DXVK | When AUTO_DXVK=1 it will install or uninstall dxvk [0/1] |
ARGS | Argument to go after command |
SANDBOX | Disable wine desktop integration [0/1] |
WINETRICKS_SANDBOX | Disable wine desktop integration using winetricks [0/1] |
MINLAU_CACHE | Path to store temporary files |
WORKING_DIR | Directory to cd when opening the game |
DISABLE_SCREEN_SAVER | Disable X screen saver |
Example config.ini
:
[global]
# Wine
WINE="/usr/bin/wine"
WINEPREFIX="$XDG_DATA_HOME/wine"
WINE_INSTALL="$XDG_DATA_HOME/minlau/wine"
WINEARCH=win64
WINEESYNC=1
WINEFSYNC=1
# DXVK
DXVK_INSTALL="$XDG_DATA_HOME/minlau/dxvk/"
DXVK_PATH="$XDG_DATA_HOME/lutris/runtime/dxvk/v1.8.1L"
AUTO_DXVK=1
DXVK=1
DXVK_HUD=0
# Misc
GAMEMODE=1
MANGOHUD=0
SANDBOX=1 ;you can use this or the winetricks implementation, this one is faster
WINETRICKS_SANDBOX=0
DISABLE_SCREEN_SAVER=1
; can comment with # or ;
[foo]
LAUNCH="$XDG_DATA_HOME/Games/foo/foo.exe"
WINE="$XDG_DATA_HOME/lutris/runners/wine/lutris-6.4-x86_64/bin/wine64"
WINEPREFIX="$XDG_DATA_HOME/Games/wineprefixes/foo"
DXVK_DLLS='d3d9.dll d3d10core.dll d3d11.dll' #optional
DXVK_STATE_CACHE=1
DXVK_STATE_CACHE_PATH=$WINEPREFIX # can use variables declared BEFORE
A package is available in the AUR minlau-git. If you use an AUR helper:
paru -S minlau-git
Clone the repo and modify the contents of setup.sh to fit your needs, then just run the install script:
git clone https://github.com/theRealCarneiro/minlau.git
cd minlau
chmod +x setup.sh
sudo ./setup.sh install
sudo ./setup.sh uninstall