Files
umutray/README.md
T
funman300 7de6f6d938 Fix launcher/download bugs, add README and Cargo.lock
- 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>
2026-04-16 17:18:54 -07:00

62 lines
2.5 KiB
Markdown

# battlenet-manager
A small system-tray daemon and CLI for running the Battle.net launcher on
Linux via [umu-launcher](https://github.com/Open-Wine-Components/umu-launcher)
and [GE-Proton](https://github.com/GloriousEggroll/proton-ge-custom).
## 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
```sh
cargo build --release
install -Dm755 target/release/battlenet-manager ~/.local/bin/battlenet-manager
```
Requires `umu-launcher` and `tar` on PATH. On Arch:
```sh
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:
```toml
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.