Memory shards

Do something lively!

When I switched to GNU/Linux one year ago, I followed a bunch of guides to install my favorite games. Most of them were easy to install thanks to Proton and Steam. But some needed to be ran with vanilla Wine. While some guides recommended to use it with Winetricks, others used PlayOnLinux or Lutris as front-ends. In this article, we’re going to use Bottles instead.

Presentation

Bottles is free and open source software that uses environments to help you easily manage and run Windows apps on Linux. It’s a front-end for Wine to manage Windows environments, called “prefixes” or “bottles”, and their dependencies. It also supports configuration backup to easily replicate a Windows environment.

Installation

If you’re on an Arch-based distribution, you can install Bottles from the AUR (this version isn’t officially supported by the Bottles developers).

yay -S bottles

or

yay -S bottles-git

For other distributions, install the Flatpak version.

flatpak install flathub com.usebottles.bottles

I also recommend to install Wine and its dependencies as they can help to run some games. On Arch Linux, run pacman -S wine-staging. On other distributions, follow the official instructions.

Usage

First run

Once installed, you should set up components and create your first bottle. For components, I recommend “Caffe 7.7” as the default runner and “DXVK 2.1” as the default DXVK version. Also, if you installed Wine from your package manager, it will be available as a “system” runner during the bottle creation.

Importing a custom configuration

Go into the Bottles menu and choose “Import”. From there, you can click on the “Configuration” option and choose your YAML configuration file. Once the import has started, cancel the Wine Mono installation, go through installers when prompted and wait for the import to finish. Then, go back to the main menu and go into your bottle. From there, you can change its settings.

Also, don’t import a configuration file from the bottle creation menu. It’s broken for now as it doesn’t keep some metadata (like bottle name, environment variables or selected runner). Only its dependencies seem to be imported.

Installing games

Once you created your bottle manually or imported a configuration, you can add files to its directory.

For archived games, unzip them into “Program Files”, under the “drive_c” directory. Now, go back into your bottle settings, add a custom program shortcut and add a desktop entry. You can also rename the shortcut before doing that.

For games coming with an installer, just copy the executable inside your bottle path and run it. For ISO files, you can extract their contents or just run the executable.

If you need to install dependencies, note that Bottles doesn’t use Winetricks. Some of them are missing compared to Winetricks but you can still install them manually or use a special codec script

Also, some games might need a special configuration. You can check out AppDB or ProtonDB and read feedbacks from users. To avoid conflicts between game configurations, you should create one bottle per game.

Gamescope support

Install Gamescope, go into your bottle settings, enable “Gamescope” option in the “Display” section and configure it. Nvidia users will have to enable Direct Rendering Manager kernel mode setting to use it.

MangoHud support

Install MangoHud, go into your bottle settings and enable “Monitor Performance” option in the “Performance section”.

Sources

If you spot any mistakes or if you have a suggestion about this guide, please contact me. I also maintain a Bottles compatibility list so feel free to check it out.

See you again, have a nice day!