Home Wine How To Run Windows Software On Linux With Bottles

How To Run Windows Software On Linux With Bottles

Manage and run Windows apps on Linux with ease

By sk
Published: Updated: 68.2K views

The most common reason to dual boot Linux with Windows OS is Games! Linux is great, but it sucks on Games support. Not just games, some propriety software from Adobe and Microsoft still lacks Linux support. Thankfully, there are a few software exists to run Windows applications and games on Linux. Some notable applications are CrossOver, PlayonLinux, Lutris, and Wine etc. In this guide, we will discuss about yet another similar application called Bottles, which allows us to run Windows software on Linux.

What is Bottles?

Bottles is a free, open source graphical application to manage Wine prefixes in a new way. Using Bottles, we can easily run Windows software and Games on Linux operating systems.

You can run all windows executables such as .bat, .exe, and .msi in Bottles. It will automatically detect all installed applications. No need to manually add to the programs list!

Isn't it similar to PlayonLinux/Lutris/Winetricks? You might wonder.

Yes, Bottles is similar to PlayonLinux and Lutris, but better. It is little more polished application than its counterparts and has a few extra features and a nice UI.

Of course, Lutris can also effectively manage the wine prefixes. As far as I observed, Lutris is a game manager (not just for Windows games), while Bottles is a GUI wrapper for wine to run and manage Wine prefixes, where Windows software can run (games or not).

Let us discuss a few features of Bottles.

1. Bottles environments

Bottle introduces a concept of Environments. The Bottles Environments are nothing but a bundle of ready-to-use configuration settings, libraries and dependencies that helps us to smoothly run Windows apps and games on a Linux PC.

You can create bottles based on the environment. Currently, Bottles offers three Environments:

  • Gaming (for games),
  • Software (for Windows apps),
  • and Custom (make your own custom environment).

2. Manage multiple windows prefixes

Managing multiple Wine prefixes can be a pain, and is time consuming task. Thanks to Bottles application, it simplifies the process for day to day use. You can create different prefixes for different applications if you want, called different "bottles".

3. Built-in dependency manager and Task manager

As you already know, each Windows application requires one or more dependencies to work properly.

Fortunately, Bottles ships with an integrated dependency manager. The dependency manager will automatically installs the dependencies required by a windows app or a game.

And Bottles application comes with a built-in Task manager to monitor all wine processes.

4. Customization

Bottles is highly customizable. You can tweak your Windows environment as you please. You can choose and use various runners and optimizations such as dxvk, vkd3d, gamemode, esync, fsync etc., for better gaming performance.

There are two types of runners in Bottles. They are:

  • Wine
  • Proton.

Automatic installation and management of Wine and Proton runners is supported. You can also change the runner for any Bottle on the fly!

It checks runner updates for each Bottles and automatically repair Bottles in case of breakage.

Heads Up:

The runners are compatibility layers which allows Windows software to be installed and run on Linux systems. Bottles are environments where the runner configures the system and where the Windows runs and is installed.

5. Restore Bottles to previous version

The yet another notable feature of Bottles application is Versioning. The features allows the users to easily restore Bottles to previous working state when something goes wrong!

6. Configuring Bottles is easy!

Sometimes I find it little difficult to manage the prefix itself in Lutris, because all the configuration is pretty decentralized. Bottles is really good for running general applications, especially because you don't usually NEED advanced configuration for them.

7. Bottles are sandboxed

Running Windows applications with Bottles is safe! Bottles are fully isolated from the rest of the operating system. The files can not access your Linux operating system's HOME directory.

For now, Bottles Flatpak package version is only fully-sandboxed! The other versions provides partial sandbox support.

8. Backup Bottles

We can backup and import bottles from older version and also from other managers such as Lutris, PlayonLinux etc.

Install Bottles in Linux

Bottles is available as Flatpak, AppImage, Snap, AUR, and on system package managers.

1. Install Bottles using Flatpak

The officially recommended way to install Bottles is using Flatpak. Because Flatpak is the only version that supports full-sandboxed version.

Many recent Linux distributions comes with Flatpak pre-installed Just in case, if Flatpak is not available on your Linux machine, you can install Flatpak as described in the following link.

After installing Flatpak, run the following command to install Bottles using Flatpak:

$ flatpak install flathub com.usebottles.bottles

2. Install Bottles from AUR

If you're running Arch Linux and its variants like EndeavourOS, Manjaro Linux, you cna install Bottles from AUR using Paru or Yay AUR helpers.

$ paru -S bottles

Or,

$ yay -S bottles

If you want to install unofficial latest build, run:

$ paru -S bottles-git

Or,

$ yay -S bottles-git

3. Install Bottles using package manager

Bottles is packaged for a few Linux distributions and is available in the default repositories.

To install Bottles in Fedora, run:

$ dnf install bottles

Install Bottles in Void Linux:

$ nix-env -iA nixos.bottles

To install Bottles on openSUSE Tumbleweed, run the following as root user:

# zypper addrepo https://download.opensuse.org/repositories/games:tools/openSUSE_Tumbleweed/games:tools.repo
# zypper refresh
# zypper install bottles

For openSUSE Leap 15.2, run the following as root:

# zypper addrepo https://download.opensuse.org/repositories/games:tools/openSUSE_Leap_15.2/games:tools.repo
# zypper refresh
# zypper install bottles

Run Windows Software On Linux With Bottles

Launch Bottles from Application launcher or Menu.

At the first run, you will be taken on a welcome tour to know how to configure and use Bottles. Click Next to continue.

Welcome to Bottles
Welcome to Bottles

Once the key concepts of Bottles are introduced, you will be prompted to download and install a Runner which allows you to create your own Bottles. This is one time operation. You can use the same runner for all bottles.

Click Install button to download and install runner.

Download and install runner
Download and install runner

After the runner is downloaded and installed, you will see a successful message. Click the Close button.

Bottles is ready to use
Bottles is ready to use

1. Create a new Bottle

Bottles makes running Windows software and games on Linux much easier! Click "Create a new Bottle" button.

Create a new Bottle
Create a new Bottle

In the next window, enter a name to your Bottle and choose the type of the Environment (i.e. Gaming, Application or Custom) and click Create.

Enter Bottle information
Enter Bottle information

The new Bottle is being created. It will a take a moment to update the Wine configuration.

A new Bottle is being created
A new Bottle is being created

Congratulations! A Bottle named "Ostechnix" is just created. Click Close button.

A Bottle is created
A Bottle is created

Similarly, you can create as many as Bottles as you want. The list of available Bottles are shown in the main window.

View Bottles
View Bottles

2. View Bottle information

Click on the Bottle to view the complete details.

As you can see in the below screenshot, there are 6 sections in a Bottle environment. They are:

  1. Details & Utilities
  2. Preferences
  3. Dependencies
  4. Programs
  5. Versioning
  6. Task manager
View Bottle information
View Bottle information

2.1. Details & Utilities

As the name implies, this section displays the details of the Bottle and the list of installed utilities under this Bottle environment.

Just click on the any utility to run it. for example, I am going to click "Command line" utility.

Run Windows utilities in Bottles
Run Windows utilities in Bottles

Now you can run any Windows commands inside the Bottle.

If a you want to run a new Windows executable that is not available here, just click on the "Run executable" button on the top and choose the executable location from the local drive.

Run executable file in Bottle
Run executable file in Bottle

On the top right hand of the window, you will see a couple of icons. You can do the following operations by clicking on a respective icon.

  • Display Flatpak and Bottle help
  • Destroy this Bottle
  • Make a backup of this Bottle
  • Kill all WINE processes
  • Reboot or Shutdown the Bottle environment.
Manage Bottles
Manage Bottles

2.2. Preferences

Under the Preferences section, you can tweak and optimize various settings related to Graphics, System and Audio. depending upon the type of Bottle environment some settings are enabled or disabled by default.

Preferences section
Preferences section

The following optimizations can be done in this section.

  • Use DXVK
  • Use VKD3D
  • Enable DLSS
  • Enable FSR
  • Discrete GPU
  • Enable Virtual desktop
  • Capture mouse in full screen
  • Change type of runner, runner version, DXVK version, VKD3D version, Windows OS version etc.
  • Change working directory (Default is Bottles path)
  • Enable Gamemode
  • Enable Gamescope
  • Reduce Pulseaudio latency
  • Set environment variables
  • And more.

2.3. Dependencies

In this section, you will find the list of installed and non-installed dependencies, fonts and libraries that helps the Windows software to run smoothly.

You can install or remove the required dependencies of your choice from this section.

Dependencies section
Dependencies section

2.4. Programs

In this section, you will find all installed programs. Bottles will automatically find and add the installed programs in the section. You don't need to manually do it.

2.5. Versioning

Bottles has a feature called Versioning. You can create a restore point(s) in working state. When something goes wrong, you can safely switch back to previous working state in one click. It is quite useful for those who test multiple configurations.

At the first run, there won't be any restore point. You need to create a new one by clicking on the + (plus) sign on the top bar. Enter a short, descriptive name for the restore point.

Create restore point
Create restore point

When there is an issue, just choose the restore point and click Restore (a small circle icon) button.

Restore Bottles
Restore Bottles

2.6. Task manager

This section allows you to monitor all wine processes. In this section, you will find the PID of the processes, process name, threads and parent process. You can also stop any running process from here.

Task manager
Task manager

3. Run Windows executable files in Bottle

Go to the Bottles main window and click the small circle icon next to the Bottle.

Run Windows executable in a Bottle
Run Windows executable in a Bottle

You can also click on the Bottle and choose "Run executable" button under the Details & Utilities window.

Run executable file in Bottle
Run executable file in Bottle

Choose the executable file (.exe, .msi, .bat) from your local drive.

Choose Windows executable file from local disk drive
Choose Windows executable file from local disk drive

Alternatively, you can simply right click on the executable file and click "Open with Bottles" option.

The executable file will run now in the Bottle. Continue the installation steps and finish it.

Install Winrar in Bottle
Install Winrar in Bottle

Once the application is installed, it will be automatically added under the "Details & Utilities" and "Programs" sections.

View installed programs in Bottle
View installed programs in Bottle

You can launch the installed programs from either section. Just click play icon next to the application name to run the respective application.

Run Winrar application using Bottles in Linux
Run Winrar application using Bottles in Linux

Uninstall programs

Click on a Bottle to open its details window and click Uninstaller option.

Open Bottles Uninstaller section
Open Bottles Uninstaller section

Choose the program that you want to remove and click "Modify/Remove" button to uninstall it.

Uninstall program
Uninstall program

Where can I find the files in a Bottle?

Starting from Bottles 2021.10.14 version, the user directory path is fully sandboxed. Meaning - the Bottles files are completely isolated from the rest of the system files. This is why the users are encouraged to install the Flatpak version.

You can find all the Bottles in the following directory in your Linux system.

$ ls ~/.var/app/com.usebottles.bottles/data/bottles/bottles

A separate folder will be created for each Bottle you create.

If you go down further into a specific Bottle folder, and you will find a directory named "drive_c". This is where the user's personal home directory exists.

$ ls ~/.var/app/com.usebottles.bottles/data/bottles/bottles/Ostechnix/
bottle.yml dosdevices drive_c states system.reg userdef.reg user.reg

Each user has a personal home directory (/home/your_username). This is the place where you can store your personal files, like videos, photos or documents.

$ ls ~/.var/app/com.usebottles.bottles/data/bottles/bottles/Ostechnix/drive_c/users/ostechnix/
 AppData   Contacts   Desktop   Documents   Downloads   Favorites   Links   Music   Pictures  'Saved Games'   Searches   Temp   Videos
Bottles path directory
Bottles path directory

Change Bottles path

By default, all your Bottles files are saved in ~/.var/app/com.usebottles.bottles/data/bottles/bottles directory.

If you want to change this path, click the three horizontal dots on the top right corner of the Bottles main window and then choose "Preferences" option.

Open Bottles preferences section
Open Bottles preferences section

Click the "Custom bottles path" icon under the Advanced section and then choose your desired path for the Bottles files.

Change Bottles default path directory
Change Bottles default path directory

Import/Export Bottles

From the Bottles main window, click the three horizontal dots on the top right corner. Click "Import/Export" option from drop down menu.

Import and export bottles
Import and export bottles

Next choose whether you want to import just the bottle configuration (without personal files) or full archive of your bottle including all personal files.

Import Bottles backup

Select the file location from your local path to import the Bottles.

Conclusion

In this tutorial, we discussed what is Bottles, how to install Bottles in Linux and how to run windows software with Bottles in Linux operating systems. We also looked at the steps to import Bottles and change the default path of Bottles application.

I have been using Bottles for a couple days. I recommend Bottles for those who wants a simple graphical application to manage and run Windows apps on Linux with ease.

As fast as I tested, Bottles works just fine for simple Windows Apps. Unfortunately, it doesn't work well for some bigger programs like MS Office. I hope the developers will add support for more apps in the upcoming versions.

Resources:

You May Also Like

10 comments

Dan Jones February 11, 2022 - 6:39 pm

“Linux is great, but it sucks on Games support.”

Not really. Linux supports games really well. It’s for everything needed for games to run really well, and there are some great games that work wonderfully on Linux.

It would be more accurate to say that game developers suck on Linux support. That’s the real problem.

Reply
analogtek February 12, 2022 - 9:08 am

This bottles thing is a solution to problem that does not exist.

Reply
Steve R. February 13, 2022 - 2:23 am

Not working under Mint 20.3.

Reply
Chris H February 13, 2022 - 4:30 pm

It works OK here on the latest Mint! I’m using it to run a Windoze-only PCB autorouter, and it works fine.

Reply
fuseteam February 13, 2022 - 5:53 am

Bottles is nice to simplify installing and windows software on linux, but frankly it’s not easy enough :p
Also it’s not available as snap afaik, which is fine, the flatpak format feel better suited for something like this

Reply
Jalal Hajigholamali February 13, 2022 - 4:41 pm

Hi,
when i ran bottle , the following error appears

cannot perform operation: mount –rbind /dev /tmp/snap.rootfs_fNx0oc//dev: No such file or directory

Reply
sk February 14, 2022 - 2:03 pm

I am not sure the root cause of this issue. Never encountered with this error in my test machine. What is the distribution and how did you install it?

Reply
Alexander Rowsell February 16, 2022 - 3:15 am

But .. why? Gaming doesn’t suck on Linux. Between native games and Proton, I haven’t come across a game I wanted to play and couldn’t. Also, wine does an awesome job already at running most Windows apps. If you need a particular proprietary app so badly, then using a VM or dual-booting is probably a better solution anyway.

Reply
sk February 16, 2022 - 12:25 pm

The author of Bottles has explained why he created it in this link -> https://docs.usebottles.com/faq/why-bottles. Please have a look.

Reply
Bella March 12, 2022 - 6:31 pm

I agree with Alexander here. In the (by now) 5 different pieces and the one YT video I’ve seen on this, I’m still asking myself: what does it do wine itself doesn’t? The most complete conclusion I can come to is that it is a more sleeker playonlinux, winetricks with some new/ added features. And don’t get me wrong, as with all devs, I’m grateful that Davi put the time into creating this. But what it, IMHO kind of ignores is: it is a GUI for wine. You still need wine. It is still wine that does all the work. Bottles doesn’t run those “you can’t miss” windows programs, as some seem to keep shouting out of breath. Wine does. So this is a GUI shell. Admitted, with some cool additional features. With the emphasis on that word: additional. (Sorry Davi)

Reply

Leave a Comment

* By using this form you agree with the storage and handling of your data by this website.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

This website uses cookies to improve your experience. By using this site, we will assume that you're OK with it. Accept Read More