Release Day 2022.6.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!
This release brings many new features, performance improvements and bug fixes.
Ok now let’s get to the point. What’s new in this version?
Steam Proton Prefixes
After months, support for Steam Proton prefixes is finally available!
This new feature allows you to manage Proton prefixes created by Steam. This kind of prefix is not a common Wine prefix, it explicitly requires Proton and other arrangements. Once you enable support and restart Bottles, you will notice a new section in the bottles list, here all your Steam games running through Proton will appear. Clicking on one of these will take you to a limited bottle view that allows you to manage some features and settings of the prefix.
The game linked to the prefix is shown in the program list and instead of the play/stop button we are used to, there is a button to start it via Steam.
As mentioned above, this is limited prefix management since some features are entirely handled by Proton and/or Steam and altering them can cause irreparable problems. For example, it is not possible to change the runner, Bottles automatically identifies the version of Proton used by the prefix and every operation is performed using that.
The bottle generated by Bottles to handle this kind of prefix are temporary, meaning that it is recreated each time it is started. This one unlike the other bottles, consists of only the configuration file that is generated by parsing the launch options set on Steam. This choice was made to preserve consistency between Bottles and Steam, preventing the user from making changes that will be lost with the next boot.
Nowadays, it is not possible to apply changes to Steam’s launch options while it is running, which is why you need to restart Steam to apply them.
If you wish to try this feature and use Bottles’ Flatpak, remember to give Bottles the permissions to reach the Steam installation path and any external Steam libraries if configured.
We have many other plans for this feature in the near future e.g. allow changing the version of Proton (e.g. GE-Proton).
Although this feature has been tested for a long time, there may be bugs. Be sure to report them on our GitHub repository.
Epic Games Store Integration
With the previous version we began to implement a number of integrations with some software installed in the bottle. After Steam we moved on to Epic Games Store, once the feature is enabled just reload the programs screen of the bottle to list all the games that have been installed through Epic Games Store.
Unlike the integration with Steam, launching a game does not launch via Epic Games Store, as we have not been able to get positive results with the official method which, as of today, seems not to work anymore (we have feedback from other managers as well), we are working on a solution.
New Per Program Overrides
We have added new possibilities for overriding bottle settings per program.
These, as the title says, are program-related settings that override those set in the bottle, for example we can have DXVK active in the bottle and set an override to avoid using it with a program.
The following new overrides can now be set:
- Current Working Directory
- PulseAudio Latency
- Virtual Desktop
EasyAntiCheat and Battleye Support
Our runtime has been updated and now provides the libraries needed to run EAC and Battleye, the two popular anticheats. Obviously the game developers must have enabled Linux support to run and the runner must support these (Caffe 7.10-1 has been updated with the necessary patches).
Although these have been implemented along the lines of the Steam implementation, they may not work properly and we ask that you report anomalies in our GitHub. It is important to point out that we as Valve itself, are not responsible for any bans.
Repository Update Feedback
Bottles on startup downloads the updated version of its repositories (about 20kb), which are essential for Bottles to function properly. For transparency we decided to include a small note in the loading view.
These repositories are essential and we are looking for a way to cache that does not prevent the user from receiving important updates.
Add Programs with bottles-cli
We have added a new option to bottles-cli which allows you to add programs to a bottle.
Check the following syntax:
❯ flatpak run --command="bottles-cli" com.usebottles.bottles add --help usage: bottles-cli add [-h] -b BOTTLE -n NAME -p PATH [-l LAUNCH_OPTIONS] [--no-dxvk] [--no-vkd3d] [--no-dxvk-nvapi] optional arguments: -h, --help show this help message and exit -b BOTTLE, --bottle BOTTLE Bottle name -n NAME, --name NAME Program name -p PATH, --path PATH Program path -l LAUNCH_OPTIONS, --launch-options LAUNCH_OPTIONS Program launch options --no-dxvk Disable DXVK for the program --no-vkd3d Disable VKD3D for the program --no-dxvk-nvapi Disable DXVK Nvapi for the program
This new option can be useful to third party programs for better integrating with Bottles.
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.
- Support for Steam Proton prefixes
- Option to list programs from Epic Games Store
- New path for shader cache (auto-migrated)
- Mesa shader cache is now stored in the bottle
- VKD3D shader cache is now stored in the bottle
- Update Bottles Runtime to 0.5
- Initial support for EAC Runtime
- Initial support for Battleye Runtime
- Improved speed on runner change using native method to stop the wineserver when stalled
- Setting Windows version during bottle creation is now skipped when using Caffe
- Support for adding new programs using bottle-cli
- Programs are now stored with a unique ID, other ones will automatically be migrated on first launch
- A disclaimer is shown when setting Proton as runner
- Allow overriding cwd per program
- Allow overriding/using FSR per program
- Allow overriding PulseAudio latency per program
- Allow overriding/using a virtual desktop per program
- Cwd for programs with unix path is now automatically set to the executable root if not already defined
- New option to choose the language for the programs running inside the bottle
- Minor UI/UX improvements for better consistency
- FORCE_OFFLINE=1 can be used to force-launching Bottles in offline mode
- BOOT_TIME=1 can be used to benchmark Bottles’ boot
- Repositories update status is now displayed during boot
- Programs overrides can now be reverted to the bottle’s defaults using the dedicated option
- Gamescope settings are now hidden when the utility is not available, thanks to @TheEvilSkeleton
- Support for kgx terminal, thanks to @SuperSandro2000
- Improve terminal emulators priorities (easyterm, user-installed, desktop bundled, others), thanks to @jtojnar
- Fix missing icons when using custom themes
- Fix bottles location for non-flatpak packages
- Fix regression in DXVK-Nvapi for DLSS support
- Fix wrong window decoration layout, thanks to @nahuelwexd
- Fix for window freeze when menus are still open
- Fix runtime download, was trying to update the one bundled with Flatpak
- Fix desktop entry assistance dialog not showing up
- Fix not saving DLL Overrides
- Fix inconsistent runner choose when using the Custom environment
- Fix regression on bottle creation which was allowing mono and gecko dialogs
- Fix duplicate entries in installers view
- Fix not saving Environment Variables
- Fix path picker not showing for drives
- Fix regression in versioning, drive_c were not updated
- Fix Library not showing when a program is not found
- Fix regression in Steam launch options, were not properly parsed
- Fix for Gamescope when using MangoHud, thanks to @jntesteves
- Fix for dependencies removal, causing a crash when the entry was manually removed from the bottle configuration file
- Ukrainian translations thanks to @Socially-disabled
- Thai translations thanks to @SashaPGT
- Croatian translations thanks to @milotype
- Malay translations thanks to Niskala Airaha
- Slovenian translations thanks to @Sporknife
- German translations thanks to @Arctize, @ThatRedKite, @Sematre
- Dutch translations thanks to @flipflop97
- Turkish translations thanks to @mucahitkurtlar
- Italian translations thanks to @musiclover382
- Finnish translations thanks to Jiri Grönroos
- Russian translations thanks to @Knebergish, Corvurius
- Catalan translations thanks to @rogervc
- French translations thanks to @renwe, J. Lavoie
- Lithuanian translations thanks to @TilloestTillo
- Hungarian translations thanks to @zoli111
- Bulgarian translations thanks to @RacerBG
- Serbian translations thanks to Andrija
- Spanish translations thanks to @fitjob
- Persian translations thanks to @retrhryhrth
Thanks to all users who contributed to this release!
~ Bottles’ developers