Linux Windows Compatibility

How to Run Windows Software in Linux Using Bottles

This article will cover a guide on installing and using a relatively new graphical software called “Bottles”. Based on the popular Windows Compatibility layer called “Wine”, Bottles aimes to make it simple to install and configure Windows software in Linux using just a few clicks. It also allows you to go deep into numerous configuration options supported by Wine. If you have used the “PlayOnLinux” graphical client for Wine in the past, you will find it similar but with many extra goodies.

About Bottles

Bottles is a free and open source graphical application that simplifies creation and management of Wine “prefixes”. A Wine prefix is a directory that imitates the file system hierarchy of Windows operating system. It contains a “C” drive where you can install software meant for Windows. It includes other necessary files as well that are needed for a Windows based application to work in Linux. Each Wine prefix is a self-contained container that is isolated from other prefixes. So you can create as many Wine prefixes as you want and install Windows compatible apps in separate prefixes. This prefix system makes it easy to configure Windows software and can help in resolving compatibility issues as software installed in one prefix has nothing to do with software installed in another prefix.

Main features of Bottles include:

  • Provides an option to download Wine and other necessary components from the app itself.
  • Ability to backup and restore Bottles and all contents within them.
  • Supports different builds and flavors of Wine (called Runners in the app).
  • Supports “Proton” runner, a popular Wine flavor maintained by Valve and used in Steam client.
  • Built-in task manager that shows Wine related processes only.
  • Provides an option to automatically repair bottles in case of configuration errors.
  • Ability to switch runners for existing Bottles.
  • Provides an option to integrate Bottles into the right click menu of file managers.
  • Supports predefined Bottle templates for faster configuration.
  • Supports predefined and custom environment variables.
  • Built-in support for ProtonDB, a database that shows crowdsourced feedback about Windows games that can be run using Proton.
  • Supports overriding DLL libraries from the app itself.
  • Supports DXVK Vulkan renderer and other such utilities that can improve performance of apps and games.

Installing Bottles in Linux

You can use Bottles in Linux by downloading a universal AppImage file that works on all major Linux distributions from here. More distribution specific packages, including Snap and Flatpak builds, can be downloaded by following instructions available here.

Creating a New Bottle

When you first run the Bottles app, it may ask you to download some files. Go through the download wizard, it will mainly download Wine runners. It will also detect any Wine build already installed on your system through the official repositories sources. Once you have completed the initial setup wizard, you will be able to create a new Bottle. To do so, launch the app and click on the “+” icon located at the top left corner or click on the “Create a new bottle” button (as shown in the screenshot below).

A new sub-window will open. Enter a name for the Bottle and Click on the “Create” button. You can choose to use a predefined template or use a custom one.

Wait a few moments for the process to finish. You should be presented with a screen similar to this.

Running a Setup File Using the Bottle

Now that a bottle has been created, you can choose an “.exe” or “.msi” file to start installing Windows software in the Bottle. To do so, click on the little cube like icon located inside the main entry for the Bottle.

Pick up an “.exe” or “.msi” file from the file manager and wait for the installation process to finish. You may have to go through setup wizards that typically run on Windows. Below is an example:

Follow the onscreen installation instructions, just like you would do on Windows. These installers don’t have native Linux interface.

Running and Configuring Apps and Games Installed Inside a Bottle

Once you have completed the setup process, click anywhere on the Bottle entry to launch its detailed preferences.

Any launchers and shortcuts created by the installer will appear in detailed preferences under the “Programs” section. You can launch the installed app using these shortcuts by clicking on the arrow icon next to them (as shown in the screenshot below).

You can also find installed app shortcuts under the “Program” tabs. In case a program shortcut doesn’t appear, you can manually choose a binary installed in “C” drive using the “Run executable” button.

Configuring a Bottle and Changing Global Preferences

The preferences section shown above can be used to change the settings of the Bottle and browse installed files in a file manager.

In the “Preferences” tab, you can also optimize performance of the installed software by using DXVK, Game-mode and other such tools. Here you will also find a setting that allows you to switch runners.

Any additional dependencies needed for the application can be downloaded and installed from the “Dependencies” tab.

To backup a bottle, click on the “Details & Utilities” tab and click on the downward arrow icon.

To access the task manager, change global preferences and restore Bottle backups, click on the cog icon located at the top right corner of the main window.


Bottles provide an easy way to install Windows compatible software in Linux and manage them all at one place. It can also be used to make installation files portable using its backup and restore functionality.

About the author

Nitesh Kumar

I am a freelancer software developer and content writer who loves Linux, open source software and the free software community.