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 several improvements, work is progressing fast to support Steam Proton prefixes and some nice new features!
News
Ok now let’s get to the point. What’s new in this version?
Environment recipes
Bottles is a WINE prefix manager based on environments, sets of instructions that are interpreted to make a bottle (a la Docker, we can say).
Since v2 we offer 2 pre-configured environments: Gaming and Application. In addition to those we have always allowed to create custom bottles that are therefore not linked to an environment.
From today it is possible to use your own environments, this means that you can reproduce a specific set of instructions at any time and, why not, also share it with friends and colleagues.
To use yours, simply select the Custom environment and then choose your recipe.
This way Bottles will follow your instructions.
Recipes are nothing more than YAML files with a well-defined structure, like the example below:
Runner: wine
Parameters:
custom_dpi: 120
discrete_gpu: true
dxvk: true
dxvk_hud: false
dxvk_nvapi: true
fixme_logs: false
fsr: true
fsr_level: 5
fullscreen_capture: false
gamemode: false
gamescope: true
gamescope_borderless: true
gamescope_fps: 60
latencyflex: false
mangohud: true
pulseaudio_latency: true
sync: futex2
take_focus: false
use_runtime: true
virtual_desktop: true
virtual_desktop_res: 1280x720
vkd3d: true
Installed_Dependencies:
- d3dx9
- msls31
- arial32
- times32
- d3dcompiler_43
- d3dcompiler_47
Beautiful, is not it? Send us feedback, bug hunters!
Improved Steam Proton support
In the last release we announced experimental support for Steam Proton prefixes. While this feature remains under development, there are lots of news about it in this release.
In fact, Bottles is now able to read the Launch options of a Steam game (installed via Proton) and interpret them in Bottles configurations. So if you enable MangoHud on Steam, you will see the dedicated toggle switched on.
Of course you can at any time change a setting in Bottles and this will be reflected in Steam (be careful because not all settings are available yet, we have enabled MangoHud, Gamescope, GameMode, FSR and others). At the moment to synchronize settings from one client to another, you need to restart the target one, we are working on it.
As you can see in the screenshot above, there is also another big news. In fact, Bottles is now able to recognize the game associated with the prefix and allows you to start it via Steam. We hope you find it useful.
Installers improvements
In this release there are several new features also for the installers. There are two most important and noteworthy ones.
Now the programs installed through this feature will use a Windows path by default instead of unix. This choice was made to maintain as much internal use of the paths as possible and ensure a better functioning of WINE.
Installers, who install installers, who install installers, who … got it?
Now installers can depend on other installers, useful when one program can run
on its own but others may need it. Maintainers will just need to add the new
Installers
section to the manifest:
...
Installers:
- first_installer
- second_installer
and Bottles will automatically install all of them in the correct order.
New CLI
We finally have a real CLI and it is very powerful!
We have heard your prayers and written a new CLI that covers tons of use cases, let’s see some of them.
How to launch it
The CLI has now a dedicated command: bottles-cli
. If you have installed
Bottles as a Flatpak, you can launch it by simply typing:
flatpak run --command="bottles-cli" com.usebottles.bottles --help
other packages can reach it at usual way:
bottles-cli --help
And the following is its help page:
usage: bottles-cli [-h] [-v] [-j]
{info,list,programs,tools,reg,edit,new,run} ...
Bottles is a tool to manage your bottles
positional arguments:
{info,list,programs,tools,reg,edit,new,run}
sub-command help
info Show information about Bottles
list List entities
programs List programs
tools Launch WINE tools
reg Manage registry
edit Edit a bottle configuration
new Create a new bottle
run Run a program
optional arguments:
-h, --help show this help message and exit
-v, --version show program's version number and exit
-j, --json Outputs in JSON format
List stuff
You can list all your bottles:
bottles-cli list bottles
> Found 2 bottles:
- Games
- TestLayers
as well as components:
bottles-cli list components -f category:dxvk
> Found 7 dxvk
- dxvk-1.10
- dxvk-1.9.4
- dxvk-1.9.3
and programs:
bottles-cli programs -b Games
> Found 4 programs:
- Battle.net
- Epic Games Store
- Origin
- Ubisoft Connect
just typing the right command.
What about making new bottles?
We have the new
command for that:
bottles-cli new --bottle-name Awesome --environment custom --arch win64 --runner Caffe-7.2 --dxvk dxvk-1.10 --vkd3d vkd3d-proton-2.6 --custom-environment /path/to/custom/environment/file.yml
I need to edit a bottle
You can edit a bottle by using the edit
command:
bottles-cli edit -b Games --win win7
and you can change every parameter of your bottle, even the version of the components.
I am a hacker, I want to launch programs trough CLI 👾
Wait there is something for you too and you will love it. Now you can not only run executables:
bottles-cli run -b Games -e /path/to/file.exe
but also directly a program of your bottle, without having to deal with paths:
bottles-cli run -b Games -p Battle.net
I’m a developer
Hello! For you today we have the --json
flag which if set will return any
output in json format, it should come in handy.
bottles-cli --json list components -f category:vkd3d
> {"vkd3d": ["vkd3d-proton-2.6", "vkd3d-proton-2.5", "vkd3d-v2.4"]}
And many more features are available, refer to the --help
command to list
all of them.
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.
- Now it is possible to use custom environment recipes, just choose its YAML file when creating a new bottle
- Support for Steam Runtime
- Installers can now depend by other installers
- Installers now uses Windows paths by default for new entries in the Programs list
- Runners paths are now appended to the environment to ensure those to get picked up
- The DXVK Hud option now uses the default configuration, use the Environment Variables section to tweak it
- Now you can launch the game linked to a Steam Proton prefix directly from Bottles
- Now enabling some options (e.g. MangoHud) for a Steam Proton prefix, the Launch options on Steam are updated (requires Steam restart)
- Now Steam Proton prefixes are parsed from the vdf LocalSettings file
- Now by updating the Launch options in a Steam Proton prefix, Bottles will read the changes and update the dedicated bottle
- The ACO shader compiler has been removed from the preferences as it is active by default
- Legacy WINE tools are now grouped in the Utilities menu
- Now LatencyFleX will be used only with DXVK-Nvapi installed and the Vulkan layer is automatically appended to the environment, no need to set it manually
- WineBridge is now automatically updated
- Registry is now updated using the minimal WineCommand interface
- New CLI much more powerful (bottles-cli —help)
- Now Caffe is always the default runner when making a bottle with the Gaming or Application environment
- Support for system Dark mode and general UI improvements (Thanks to @A6GibKm)
- Better Download logging (Thanks to @thopiekar)
- Fixed a bug when updating Core components
- Fixed a bug in installing LatencyFleX, was causing a crash if there was no version selected
- Fixed a bug with unix path when using CLI, was treated as a Windows path
- Fixed a bug in the component version listing, the most recent version was not always picked up (Thanks to @CleoMenezesJr and @psydvl)
- Fixed a bug with offline mode, connection check would not fail when stalled
- Fixed a bug with changing the screen resolution, it wasn’t async and caused a freeze
- Fixed a bug with WineCommand, was using MangoHud on minimal mode too
- Fixed a bug with Runner update, was not checking if the runner exist
- Fixed a bug with WineEnv, was not returning the env list when asking for a clean one
- Malay translations thanks to @amiruldevkun
- French translations thanks to @julroy67
- Finnish translations thanks to Jiri Grönroos
- Hungarian translations thanks to @zoli111, @aronkvh, @Oliver-EMRLD
- Galician translations thanks to @frandieguez
- German translations thanks to @ThatRedKite, @CoreXGit
- Japanese translations thanks to @ryonakano
- Italian translations thanks to @albanobattistella
Thanks to all users who contributed to this release!
~ Bottles’ developers
Download 2022.3.28