7de6f6d938
- launcher: set PROTONPATH to full install path for pinned Proton versions; the raw tag name doesn't resolve when umu-run looks it up. - proton: stream GE-Proton tarballs straight to disk instead of buffering ~600 MB in RAM via .bytes(); add error_for_status() on all HTTP calls so rate limits and 404s surface clearly; avoid UTF-8 trap on tar args. - config: fail loudly when $HOME is unset instead of silently writing a Wine prefix under /tmp. - diagnose: replace stat+id shell-out with MetadataExt::uid(). - tray: grab handle() before spawn() consumes the service (the repo didn't compile against ksni 0.2 as shipped). - launcher/diagnose: escape the dot in "battle.net" pgrep patterns so the match doesn't false-positive on our own "battlenet-manager" binary; pipe pgrep/pkill stdio to /dev/null so PID lists don't leak into our output. - proton: handle empty release list in pick_interactively cleanly. - Add README, .gitignore, and commit Cargo.lock for reproducible builds. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2.5 KiB
2.5 KiB
battlenet-manager
A small system-tray daemon and CLI for running the Battle.net launcher on Linux via umu-launcher and GE-Proton.
Features
- Tray icon with Launch / Kill / Update-Proton menu (KDE, GNOME+AppIndicator, Xfce, any SNI-capable desktop).
- Background poller that reflects Battle.net's running state in the tray.
update-protonsubcommand that downloads GE-Proton releases directly from GitHub and installs them under the Steam compat tools directory.diagnosesubcommand that sanity-checks the environment (umu-run, prefix, Proton install, Vulkan, display server, stale agent.lock).
Install
cargo build --release
install -Dm755 target/release/battlenet-manager ~/.local/bin/battlenet-manager
Requires umu-launcher and tar on PATH. On Arch:
sudo pacman -S umu-launcher vulkan-tools
The Battle.net Launcher.exe itself is not bundled — run your existing
battlenet-umu-setup.sh (or install it manually into the prefix) before
first launch.
Usage
| Command | What it does |
|---|---|
battlenet-manager |
Start the tray daemon (default) |
battlenet-manager launch |
Launch Battle.net and return (for .desktop shortcuts) |
battlenet-manager kill |
SIGTERM → wait 3 s → SIGKILL on all Battle.net procs |
battlenet-manager diagnose |
Run environment health checks |
battlenet-manager update-proton |
Interactive GE-Proton picker |
update-proton --latest |
Install newest GE-Proton release |
update-proton --version X |
Install a specific tag (e.g. GE-Proton10-34) |
update-proton --list |
Show recent releases without installing |
Config
Lives at ~/.config/battlenet-manager/config.toml, written with defaults on
first run:
prefix_dir = "~/Games/battlenet-umu"
proton_version = "GE-Proton" # or a pinned tag like "GE-Proton10-34"
gameid = "umu-battlenet"
proton_compat_dir = "~/.local/share/Steam/compatibilitytools.d"
proton_version = "GE-Proton" tells umu-launcher to auto-fetch the latest
on each run. Setting it to a specific tag (done automatically by
update-proton) pins that version.