Release Day 2022.2.28
today isRelease Day!
It’s Release Day again!
Two more weeks of work have been done and it’s time to celebrate another release day!
The keys to this release are optimisation and functionality. We have worked hard to optimise the user experience and we are sure you will enjoy the new features as well.
Ok now let’s get to the point. What’s new in this version?
Bottles handles WINE prefixes a little differently to other prefixes and we have already discussed this several times. Creating them is also a slightly more complex process and can take up to three minutes. We know that time is important to all of us, which is why we have worked on a template system that speeds up the process exponentially, reducing it to just a few seconds.
After creating the first bottle, a template will be created for the chosen environment. Thus, the next time it is created, this will be used as a reference, avoiding most of the operations required. Each environment has its own template and when its configuration is updated (e.g. with a Bottles update), the template is automatically deleted and recreated with the next bottle.
This will not prevent the user from updating components that are normally initialised with the creation of the bottle when using environments such as Gaming and Application; in fact, if during the creation Bottles detects that one or more components (for example DXVK and VKD3D) are not up to date with respect to the model, they will simply be reinitialised, adding a few seconds to the operation.
Being able to change the DPI of applications running in bottles is for some people an indispensable operation. Previously this had to be done using the Winecfg tool, which is WINE’s configurator. In this version, it has been implemented directly in the bottle preferences, making it easily accessible at any time.
Just select the required depth from the menu and this will be applied to the next applications you run. We made a video about this feature.
On the previous screen, you should have noticed an update to the bottle preferences. In fact, many settings have been grouped together for easier navigation.
Component versions and display settings are now moved to dedicated sections (which also include a new function that allows the focus of the window to be regained when the app does not release it).
Bottles preferences have also been re-organized, now in fact the runners are divided by category, so that it is easier to reach and install those of our interest.
Dependency management has also been reorganized to allow for multiple installation. This option was added after many requests, but we are obliged to warn that it is not a recommended practice if you do not know what you are doing.
The management of virtual disks has also been integrated directly into the bottle preferences, avoiding the need to use Winecfg.
Once we reach the new option in the bottle preferences, we create a new drive by first choosing the letter to assign and then we select the path to which it must link to.
If you are using Flatpak, be sure to give Bottles permissions to that path, otherwise, the disk will not be available when Bottles is restarted.
In addition to the arrival of new installers who expand the catalogue, we have also worked to make it
more powerful but also more integrated. In
fact, it is now possible for maintainers to use the
userdir/ placeholder to
reach an executable in the user’s path in the bottle.
An example below:
Name: enlisted Description: The official Enlisted launcher. Grade: Silver Arch: win64 Dependencies: - d3dx9 - allfonts - d3dcompiler_43 - d3dcompiler_47 Parameters: dxvk: true esync: true discrete_gpu: true Executable: name: Enlisted icon: enlisted.svg file: launcher.exe path: userdir/AppData/Local/Enlisted/launcher.exe Steps: - action: install_exe file_name: enlisted_launcher_220.127.116.11.exe url: https://aws-yup-distr-01.gaijinent.com/enlisted_launcher_18.104.22.168.exe file_checksum: b88e84b09cec8a1b1d5ee0667f85060b
We fixed an annoying bug that prevented Bottles from correctly generating desktop entries. This release, however, brings this feature also (finally) to the Flatpak user.
We have made a video tutorial on how to enable this feature.
Sandbox for everyone
Although only the Flatpak package currently allows a complete sandbox of the bottles. From this release, all other packages will also be able to enjoy a partial sandbox. This is the automatic removal of all links from the bottle’s userdir to the host system’s homedir. To prevent this, you can choose the Custom environment and disable the option (other environments will also read this option for the entire session).
It is also important to point out that the well-known ProtonDB portal has been “recently” updated to list Bottles among the applications allowed when you want to send a report via the Contribute section. This was a happy discovery for us and we would like to thank the team behind the project for this. We therefore invite all users to send them a report when they play games with Proton via Bottles, so as to collaborate on the project.
One mor thing
Before closing this release post, we would like to express our support and encouragement to all the families of the victims of the war in Ukraine.
We ask everyone to consider donating to support the victims of the crisis. For this we thank Jane Lytvynenko for creating this list of organizations.
We are close to you, don’t give up. #SaveTheUkrain
All other changes
There are many other changes and improvements in this release. Below are some noteworthy ones, for all others, please refer to the GitHub organization.
- Template caching creates a copy of the first bottle created with one environment, to use it as the basis of the next one, reduces creation time. Templates are regenerated when a rule changes in the default configuration of an environment, while components are still updated if new ones are installed.
- Now it is possible to install multiple dependencies at once (not recommended)
- The components screen has been reorganized into groups to make it easier to navigate
- Change DPI directly from the bottle preferences
- The Take focus option has added to preferences, allowing the user to resume focus on app change when these hold it
- Improved WinePrograms logs with the effective running action
- DXVK-async is now always at the bottom of the list, preventing it from being taken by Bottles as the most recent version on bottle creation
- Add a journal file which collect all the most important actions and events
- The userdir/ placeholder was added allowing maintainers to reach executables from the user bottle directory
- New bottles are now sandboxed by default, despite if running as flatpak or not (in other packages the link to the user home is simply removed)
- Manage your virtual drives directly from the bottle preferences
- Programs list in bottle details is now hidden if there are only hidden entries
- Flatpak users can now generate desktop entries too if the ~/.local/share/applications path is exposed
- General improvements to the WINE backend
- Fixed a problem with Windows version change, was trying to set duplicate keys on registry
- Fixed a race condition on DLL components remove and install tasks (Thanks to @asbytes)
- Fixed a bug in command execution, the WINEPREFIX env var was not rewritten if already present in the environment
- Fixed DLL components for 32-bit bottles (Thanks to @ffuugoo)
- Fixed a bug in Mouse Capture Fullscreen setting which was resetting on restart
- Fixed a bug in backup export, the backup was not aborting if the user has not picked a path
- Fixed a bug with generated desktop entries, was setting the wrong executable path
- Fixed a bug in layered executables support, which was unable to launch executables due to structure mismatch
- Fixed a bug with CabExtract implementation, which was extracting resources to the wrong directory if symlink
- Fixed a bug in layer sweep function, which was sweeping all files instead of the different ones
- Fixed a bug in layer mount function, which was mounting the wrong directory if reading from the configuration
- Fixed a bug in WINE command execution, which was defaulting to the bottle path instead of the layered one
- Fixed a bug in bottles initial check, which was causing a crash if the configuration file was not found
- Fixed programs ignored_patterns, which was allowing unins* files to be listed in programs view
- Fixed a bug with DLL components which was not ensuring the prefix was updated before registering DLL overrides
- Fixed winbind issue (Thanks to @arashsm79)
- Fixed a bug with hidden programs, which were not excluded from is_alive check
- Czech translations thanks to @panmourovaty, @uzu128, @tuzu128
- French translations thanks to @julroy67
- Italian translations thanks to @albanobattistella, @phaerrax
- Indonesian translations thanks to @frnmz
- Russian translations thanks to @Knebergish, @Smoque
- Finnish translations thanks to Jiri Grönroos
- Croatian translations thanks to @milotype
- Slovak translations thanks to @prescott66
- Romanian translations thanks to @tiberiufrat
- Portuguese translations thanks to @Xico26
- Hungarian translations thanks to @swanux
- Polish translations thanks to @imLinguin
- German translations thanks to @thericosanto
Thanks to all users who contributed to this release!
~ Bottles’ developers