8005b11faf
New crates/punktfunk-tray — a small per-user companion showing the host service state at a glance (running / stopped / starting / degraded / failed + the live session in the tooltip) with one-click actions: open web console, approve a pending pairing request, start/stop/restart, open logs. No more digging through logs to learn whether the service came back after a reboot or an update. Status is service-manager-FIRST (SCM / systemd user unit — a port squatter can never fake Running), then the new loopback-only unauthenticated GET /api/v1/local/summary (counts/booleans only; the mgmt token and cert.pem are SYSTEM/Admins-DACL'd on Windows, so a non-elevated tray cannot bearer-auth). Windows: windows_subsystem binary (a console exe in the Run key would flash a terminal at sign-in), Shell_NotifyIcon + hidden window, per-session single instance, TaskbarCreated re-add, --quit for the uninstaller; service actions elevate per click via ShellExecuteW "runas" onto the new `punktfunk-host service restart` (stop → wait Stopped → start). Linux: ksni/StatusNotifierItem over zbus, systemctl --user actions (no polkit), /etc/xdg/autostart entry whose --autostart self-gates to actual host users. Icons: scripts/gen-tray-icons.py (pure stdlib) renders the brand lens + status dot into committed .ico/hicolor assets; deb/rpm/arch ship binary+autostart+icons. Live-validated: Linux on the headless KDE session (SNI registration, state transitions, menu-driven start, dbusmenu layout); Windows on the RTX box (session-1 launch with no NIM_ADD failure, single instance, --quit, restart round-trip, summary loopback-200/LAN-401). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
16 lines
722 B
Desktop File
16 lines
722 B
Desktop File
[Desktop Entry]
|
|
Type=Application
|
|
Name=punktfunk host status
|
|
Comment=Tray icon showing the punktfunk host service status
|
|
# --autostart exits silently unless this user actually runs a host (~/.config/punktfunk exists or
|
|
# the punktfunk-host user unit is enabled) — the package installs this for every desktop user.
|
|
Exec=/usr/bin/punktfunk-tray --autostart
|
|
Icon=punktfunk-tray
|
|
# Autostart-only: not a launcher entry (launch it from a terminal as `punktfunk-tray` if wanted).
|
|
NoDisplay=true
|
|
# KDE: start after plasmashell so the StatusNotifierWatcher is up (harmless elsewhere; the tray
|
|
# also waits for the watcher when started early).
|
|
X-KDE-autostart-after=panel
|
|
X-GNOME-Autostart-enabled=true
|
|
Categories=Network;Utility;
|