GUI dashboard (gui.rs):
- Add detect, diagnose, settings panel, per-launcher games management
- Async Kill with optimistic UI state and rollback on error
- Settings: pick_list for Proton version, browse button for compat dir,
validation, per-launcher version badge
- Detect Installed button with scan results in footer
- Diagnose card with ✓/✗ checklist per launcher
Issue #1 — Use System Proton (proton.rs):
- Extend list_installed() to scan ~/.steam/root/compatibilitytools.d,
~/.local/share/Steam/compatibilitytools.d, and
/usr/share/steam/compatibilitytools.d in addition to the configured
compat dir; deduplicates by name so the same version never appears twice
Issue #4 — Remove Systemd Service (service.rs):
- Replace systemd unit management with XDG autostart:
install() writes ~/.config/autostart/umutray.desktop instead of a
systemd unit and never calls systemctl; uninstall() removes that file;
status() checks whether the autostart entry exists
- Update GUI service_is_installed() to check the XDG autostart path
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Binary, crate, clap app name, ksni tray id, HTTP user-agent, systemd unit,
XDG config dir (co.aleshym/umutray), README, and all log prefixes.
Config path changes from ~/.config/battlenet-manager/ to ~/.config/umutray/.
Existing users should `mv` the old directory if they've customised it;
otherwise defaults get rewritten on next run.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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>