Release Day 2022.9.28
today isRelease Day!
It’s Release Day again!
This time we decided to take a little more time, both to take a break and to complete some long-tasks that would not have allowed us to meet the release date. This release brings many new features and improvements.
Ok now let’s get to the point. What’s new in this version?
New Display Dialog
We are always looking for new ways to improve the user experience, and this time we have decided to give some love to the display options. Those options are now located in a dedicated dialog, which is much more intuitive.
Settings are now positioned more intelligently and show more or less detail based on their state. For example, it will not be possible to change the resolution of the virtual desktop until it is activated, screen scaling on the other hand now provides an easier way to increase or decrease DPi instead of having to choose from the available options.
Drag and Drop
Sometimes the best solution is also the simplest, and this is certainly the case with Drag and Drop. With this release infact it is possible to launch an executable by simply dropping it inside the bottle screen.
This will show visual feedback indicating that you can release the executable to start it. You will no longer need to sail the seas looking for that file, simply drop it on top of it.
Multiple Dependencies Installation Deprecation
In Bottles we experiment with many features even though we are not completely sure that these are useful. One example is just the installation of multiple dependencies in one shot.
This feature was implemented some time ago at the request of users, but unfortunately this is a very problematic and risky feature since some dependencies may irreversibly damage the bottle. Therefore, we have decided to deprecate this feature.
This function also made novice users believe that it is a “right” operation because it is available, and this caused many problems including misunderstanding. Advanced users can still use custom recipes to create bottles with multiple dependencies by letting Bottles install at bottle creation.
Instant Programs Add
It is always a bad experience when software is not responsive or you have to wait a few seconds for operations that should not take that time. In this release we have also worked on this aspect and it is easy to notice when we add a new program in our bottle.
Previously this procedure required rebuilding the entire program list, causing a small lag of ~2s. The new method applies the new program to the current list without having to recreate it, making it instantaneous and less noisy.
Gamescope Dialog Improvements
The dedicated Gamescope dialog has been improved to be more intuitive and self-introducing.
Other UI/UX Improvements
There are many UI improvements that have been applied in this release so let’s look at a few more ones.
Libadwaita Migration Continues
Months ago we started our migration to GTK4 and libadwaita. While most of the work was completed quite some time ago, there were still a few tasks left to be completed. With this release we have completed almost the entire migration, leaving behind only a few small details that we will finalize in future updates. The interface is now clean, compliant and intuitive thanks to the wonderful work behind libadwaita.
Not straying too far from the GTK topic: in this release we moved from “legacy” XML templates for composing interfaces, to the new, modern Blueprint format, making the interface much easier to read for new contributors and users interested in learning. This also reduced the codebase by about 800 lines!
Speaking of UX, now Bottles will automatically hide features that are not and never will be compatible with your setup, for example NVIDIA only settings will never be shown in AMD only setup, cleaning up the interface by removing unnecessary noise.
The Components section has been renamed to Runner Components as the previous Components section was confusing and did not give the idea of being the correct section when you wanted to interact with the runners or components connected to them like DXVK/VKD3D etc.. .
Finally, improvements have also been made for mobile. Now the interface is completely responsive and can be used on small screens or spaces, without giving up indispensable features.
Support for Japanese, Taiwanese, Korean Languages
In Bottles from different releases it is possible to force a different language for applications running through it. With this release we are expanding support with 3 new languages: Japanese, Taiwanese and Korean.
If you think a language is missing, please open a bug on our GitHub so we can implement it.
We have also introduced an alternative of the progress bar via terminal, which is displayed as a fallback when the system is unable to display the standard one, for example due to a language problem or characters not supported by the system.
The dependencies in Bottles are in fact software that is installed in the bottle, for this reason it too depends on a series of rules and requirements including the architecture and the dependence on a specific version of the system, for example some dependencies require you to set the Windows version of the bottle to Win98 but this version is not compatible with a 64bit bottle (win64) and for this reason it cannot be installed, now Bottles automatically hides this dependency, preventing the user from stumbling into a compatibility problem, potentially harmful to its bottle.
Support For Bundled GStreamer Plugins
Some runners provide a specific or custom version of the GStreamer plugins, hich are essential for playing multimedia content. To ensure their maximum compatibility, Bottles now identifies these and prefers their plugin versions, loading them before the version provided by Bottles.
Release Numbering Changes
From this release the numbering of Bottles versions changes slightly, removing the codename from the version and changing the punctuation, thus moving from the previous model 2022.8.28-brescia-1 (year.month.day-codename-patch) to the new 2022.8.28.1 (year.month.day.patch).
The Soda runner has been updated to latest Valve commit, providing support for new games and improvements to existing ones. The Caffe and Vaniglia runners has been updated to Wine 7.18.
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.
- Nvidia-specific settings are now hidden on other setups
- Run executables by dropping them on the bottle
- Move from XML to Bluprints for UI
- Mobile improvements
- The Gamescope dialog is now more polished and intuitive
- Display settings has now a dedicated dialog
- All selectors are ported to the libadwaita
- Support for ja_JP,zh_TW,ko_KR languages
- Dependencies with an incompatible architecture are now hidden
- Support for the bundled gstreamer version if provided by the runner
- Adding a new program will be immediately available, without having to update the whole list
- Removed the ability to install multiple dependencies in one go
- Improve wording for Components section (Thanks to @orowith2os)
- Fix DXVK off when starting a game via Run Executable
- Fix a bug when extracting templates with a partial or missing userdir
- Fix Steam installation not found when placed at .steam/debian-installation
- Fix DLL OVerrides not being applied when an override with the same name is already present, now the new one will take priority
- Fix Proton Runners being listed as prefixes
- Fix GStreamer plugins not being loaded on Flatpak
- Fix the bottles list not being updated when a bottle is renamed
- Fix progressbar not being visible on some locales
- Fix caching directories being re-initialized when them are already present
- Fix Steam ACF files not being parsed correctly when corrupted, resulting in a crash
- Fix Platinum and Silver grades was using the same color
- Italian translations thanks to @LorenzoIanotto
- Hindi translations thanks to Rowan Antkinson
- Dutch translations thanks to @flipflop97
- Turkish translations thanks to @06ergin06
- Finnish translations thanks to Jiri Grönroos
- Portuguese (Brazil) translations thanks to saulo marcos
- Japanese translations thanks to @ryonakano
- Croatian translations thanks to @milotype
- Greek translations thanks to @kolyfotis
- Indonesian translations thanks to @laymoth