Release day 2021.11.14
today isRelease Day!
It’s Release Day again!
This release brings with it many new features, not only in Bottles itself but to the entire environment. We have worked hard to get even closer to the community and offer an even better user experience.
Ok now let’s get to the point. What’s new in this version?
Environments even more powerful
From Bottles v2 the Environments were introduced for the creation of the bottles. These are environments that preconfigure a bottle with specific configurations to allow them to be compatible out-of-the-box with a large chunk of programs.
Today these environments are even more powerful and are not limited to preconfiguring DXVK, VKD3D and other bottle settings, but now also install dependencies on their own to drastically increase compatibility with Windows software.
The dependencies installed by the environments are usually the most common used in that context, for example for the Gaming environment all the dependencies commonly used to run a video game are installed. This in combination with DXVK, DXVK-NVAPI, VKD3D and other settings, allows the bottle to support a lot of video games right out of the box.
To use them, just proceed as usual, selecting the desired environment when creating the bottle. Bottles will take care of the rest.
Obviously using one of these environments (Gaming, Software), the creation process will take longer than before, but only the first time, as all dependencies are saved in an internal archive and Bottles will not download them again for the next bottles.
If, on the other hand, you want to proceed manually, avoiding this automation, you can continue to use the Custom environment, which provides a clean and ready-to-tweak bottle.
Quick access to executables
More advanced users will appreciate this new feature. This is a quick access to the last run executables, useful when you are testing multiple configurations. In fact, it often happens that you need to start the same executable over and over again during the testing phase.
In this version we have introduced a new menu next to the “Run executable” button, this shows the last 5 executables and clicking on them will automatically start in the current bottle.
This feature is not intended as a permanent history for executables, in fact it only lasts for the entire session and is reset when Bottles is restarted.
If you want to save a program for future use, we recommend doing it through the Programs section, adding a new entry if this is not automatically detected by Bottles.
Switch Windows version
Bottles now supports switching between Windows versions. Normally this is
done through the
winecfg tool. In this release we have integrated the
switcher directly into the bottle preferences.
This feature only works with bottles created from this version onwards.
Windows version per dependency
Our dependency manager is designed to automate complex Windows package installation processes. For example for vredist or DirectX.
With this version it becomes even more powerful and automated. In fact, it can now install a package through a specific Windows version, without actually changing the bottle version. This allows you to install packages that would otherwise not work because the Windows version of the bottle is higher or lower than needed.
Name: dotnet35 Description: Microsoft .NET Framework 3.5 Provider: Microsoft License: Microsoft EULA License_url: https://www.microsoft.com/web/webpi/eula/net_library_eula_enu.htm Dependencies:  Steps: - action: uninstall file_name: Wine Mono - action: use_windows version: winxp executable: dotnet35.exe ..
The above is an example of dotnet35, the package that installs the .NET Framework 3.5. Normally it is necessary to change the version in Windows XP to be able to install it because in Windows 7 and above it detects that it is already provided (when it is not true, of course), then the manager will set the version necessary for that single executable and will then be able to install it without actually change the bottle version.
Gamemode via Flatpak
Thanks to a community member who worked on the thing (read the changelog at the end of the article), it is now possible to use the gamemode also via Flatpak. This in fact is supplied directly with Bottles and therefore identified. Just enable the dedicated setting in the Preferences section of the bottle to be able to use it.
Pass arguments to Bottles CLI
Thanks to another community member, it is now possible to pass arguments to an executable using the Bottles CLI.
flatpak run com.usebottles.bottles -e file.exe -b MyBottle -a "arg1 arg2"
This is a very useful feature especially if you use the CLI to create Desktop Entries or shortcuts that start a program via Bottles.
In this version we investigated Bottles’ random crashes that were due to a mix of threads. Some functions on third-party threads were trying to access the main thread, causing the entire application to crash without a trace or crash report.
We have fixed these issues and should no longer occur.
In a Twitter poll where we ask if Flatpak should become Bottles’ default distribution format, the majority (almost all) gave their consent. So here we go. Announcement time!
Bottles married Flatpak several months ago now, after a period of adjustment (normal when adopting a new technology or tool), we are officially announcing that Flatpak becomes Bottles’ first distribution format. At the moment it is the most tested package of all and any future updates will be made with particular attention to this format.
Wait. This does not mean that we will abandon the other packages but that we will prioritize this one. To date we officially support many formats, here the complete and updated list.
Different discussion instead for our Snap package instead which has been officially deprecated after months of trying to get good results. Unfortunately, the problems are too many and we don’t have the effort to investigate yet.
As mentioned, this Release Day is not just about the program, there is so much more.
We have updated the project website, improving Bottles’ presentation, explaining its main features. On the first page of the site you can see sections that introduce them and that refer to the dedicated page of the documentation.
With the number of issues constantly increasing, it has become essential for us to divide reports from community discussions. In addition to this, we believe it is useful to offer Community members a space in which to talk about the project and where they can easily reach the development team.
For this reason we have opened the official Bottles’s Forums, where we have already posted some interesting content. Check them out!
To our community
We would also like to spend a few words to talk to the community about the project.
Bottles is growing really fast and we notice it more and more every day. The software is more and more used and is expanding fast thanks to all your feedbacks and contributions. For this we would like to dedicate this Release Day to you, as a thank you for the attention you are giving us.
I speak for myself (Mirko), this is my first Open source project that reaches so many goals and I have to thank you all. This project could never have improved this much without the contribution of this great community, so I’m proud of all of you. Thank you, it means a lot to all of us.
All other changes
There are a lot of other changes and improvements in this release. Below are other noteworthy ones, for all the others, refer to the GiHub organization.
- Now environments install several common dependencies to increase the out-of-the-box compatibility level of the bottle.
- Now the new bottles are created by setting Windows 10 as the version.
- Added a new menu showing all executables launched during the session, to reach them easily
- Now it is possible to change Windows version for a bottle (doesn’t work for old bottles)
- Dependencies can now use specific Windows version during packages installation
- The sandbox switcher is hidden from Flatpak and automatically enabled
- New wineboot management
- Now the runner only shows useful logs during bottle creation
- Gamemode support also for Flatpak thanks to @BigmenPixel0
- Now it is possible to pass executable arguments using the Bottles CLI using the -a option thanks to @Rerumus
- Programs icons are now hidden in Flatpak
- General code/UI cleanup and improvements
- Fixed a series of random crashes due to mixing threads
- Fixed a bug in environment variables check that result in crash
- Fixed a bug that prevented the user from opening the file manager on Proton runners
- Fixed a bug that was causing a crash when Bottles fails on removing a bottle
- Fixed incomplete translations in Flatpak
- German translations thanks to Lasse Palm
- Finnish translations thanks to Jiri Grönroos
- Czech translations thanks to @SoongVilda
- Spanish translations thanks to @oscfdezdz
- Turkish translations thanks to @ersen0
- Chinese (Simplified) translations thanks to @sr093906
- Japanese translations thanks to @CheesersY5
- Hungarian translations thanks to @ovari
- Italian translations thanks to @seldon1000
- Esperanto translations thanks to @phlostically
- Indonesian translations thanks to @liimee, @rezaalmanda
- Danish translations thanks to @ettmetal
- Polish translations thanks to Krzysztof Marcinek
- General translations fixes thanks to @comradekingu, @Martinligabue, @AmeyShrivastava
Thanks to all users who contributed to this release!
~ Bottles’ Developers