funman300 f7738d215b Add config and service subcommands
config subcommand — show, path, edit ($EDITOR), and a non-interactive
set that takes --prefix / --compat-dir / --gameid. Lets users retarget
the Wine prefix without hand-editing TOML.

service subcommand — install / uninstall / status for a systemd --user
unit that autostarts the tray. install writes ~/.config/systemd/user/
battlenet-manager.service with ExecStart pointing at the current binary,
then daemon-reloads and enable --now's the unit. uninstall tears it back
down.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 17:25:48 -07:00
2026-04-16 17:25:48 -07:00
2026-04-16 17:25:48 -07:00

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-proton subcommand that downloads GE-Proton releases directly from GitHub and installs them under the Steam compat tools directory.
  • diagnose subcommand 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 show / config path Print current config or its path
config edit Open config in $EDITOR
config set --prefix PATH Change the Wine prefix (also --compat-dir, --gameid)
service install Write + enable a systemd --user unit for autostart
service uninstall / status Remove the unit / show its status

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.

S
Description
No description provided
Readme MIT 1,001 KiB
Languages
Rust 99.1%
Shell 0.9%