Brie is a CLI toolset for running Windows games via Wine in isolated prefixes, which also
Much like Lutris and Heroic Game Launcher, this tool tries to set up an environment closely resembling Proton for running games. Unlike these tools, Brie aims to be CLI-first, with all runnable units and the configuration defined by a user in a single YAML file.
Originally this project started as a shell script, which at some point became too inconvenient to maintain and debug.
Even though on the surface project shares similarities with Lutris and Heroic Game Launcher, this project has different goals:
.desktop
files for configured units, as well as add them to Sunshine and Steam as non-Steam gamesThe project provides two CLI tools.
brie
is the unit launcher.
YAML
manifest, containing definitions of units. Each unit defines the executable that should be run, details about the wine prefix, additional steps (winetricks
), and library dependencies.nvcuda
, nvoptix
and nvml
.~/{Downloads,Documents}
and other folderswinetricks
gamemoderun
and mangohud
)briectl
is responsible for additional features not necessarily related to launching units.
.desktop
files for unitsBrie uses xdg to determine where configuration and relevant data are stored. Most commonly it would be:
~/.config/brie/brie.yaml
~/.local/share/brie
:
~/.local/share/brie/prefixes
~/.local/share/brie/libraries
~/.local/share/brie/images
x-wine-defaults: &wine-defaults
runtime:
kind: ge-proton # Can be "ge-proton", "tkg" (requires github PAT), or "system"
version: "*"
libraries:
dxvk-nvapi: "*"
dxvk-gpl-async: "*"
vkd3d-proton: "*"
nvidia-libs: "*"
env: &wine-env
MANGOHUD_CONFIG: no_display,vram,gpu_temp,gpu_core_clock,frametime
DXVK_ASYNC: "1"
DXVK_GPLASYNCCACHE: "1"
DXVK_ENABLE_NVAPI: "1"
WINE_HIDE_NVIDIA_GPU: "0"
WINEESYNC: "0"
VKDED_CONFIG: dxr
x-wine-game-defaults: &wine-game-defaults
<<: *wine-defaults
wrapper:
- gamemoderun
- mangohud
generate:
sunshine: true
desktop: true
steam_shortcut: false
x-wine-soft-defaults: &wine-soft-defaults
<<: *wine-defaults
generate:
sunshine: false
desktop: true
steam_shortcut: false
tokens:
steamgriddb: YOUR_STEAMGRIDDB_TOKEN
github: GITHUB_PAT # Used to download wine-tkg artifacts from Github Actions
paths:
steam_config: ~/.var/app/com.valvesoftware.Steam/.local/share/Steam/userdata/{YOUR_ID}/config
sunshine: ~/.config/sunshine/all.json
desktop: ~/.local/share/applications/brie/
units:
ltspice:
# Use YAML anchors to simplify the config https://yaml.org/spec/1.2.2/#3222-anchors-and-aliases
<<: *wine-soft-defaults
name: "LTSpice"
command: ["C:/users/wine/AppData/Local/Programs/ADI/LTspice/LTspice.exe"]
winetricks:
- vcrun2019
foobar:
<<: *wine-soft-defaults
name: "Foobar 2000"
command: ["C:/Program Files (x86)/foobar2000/foobar2000.exe"]
winetricks: ["vcrun2015"]
mounts:
d: ~/Music
witcher3:
<<: *wine-game-defaults
name: "The Witcher 3: Wild Hunt"
cd: /mnt/files/Games/The Witcher 3 Wild Hunt/bin/x64/
command: ["witcher3.exe"]
# Not necessary for this particular title, this serves just as a capability example:
winetricks:
- vcrun2019
- d3dcompiler_42
- d3dcompiler_47
before:
- ["winecfg", "-v", "win10"]
env:
<<: *wine-env
VKD3D_SHADER_DEBUG: none
# Non-wine (native) units are also supported for the purpose of adding them to sunshine config (or non-steam games)
steam:
type: native
name: "Steam: Big Picture Mode"
wrapper:
- gamemoderun
- mangohud
generate:
sunshine: true
steamgriddb_id: 2332
command:
["flatpak", "run", "com.valvesoftware.Steam", "-bigpicture"]
Except where noted (below and/or in individual files), all code in this repository is dual-licensed at your option under either: