feat(gui): system-tray applet (M11) + GUI smoke tests — 0.19.0
QSystemTrayIcon applet (gui/tray.py, D13): menu with live CPU/GPU temp + memory used/total, a status line, a Run Diagnostic submenu per detected game, plus Open dashboard / Start-Stop recording / Snapshot-copy / Quit. Reuses the dashboard's sample stream; drives existing MainWindow flows. - MainWindow creates the tray when one is available; closing the window hides to tray (Quit exits); setQuitOnLastWindowClosed(False) so dialogs don't quit it. - app: `--tray` starts hidden for autostart. - tests/test_gui_smoke.py: construct MainWindow headless + exercise the tray, so a startup crash (like the 0.18.0 import bug) fails the build. Skips if no PySide6. - docs: M10/M11 marked done in MODULES/ROADMAP. Completes the Desktop UI bundle (M10 + M11). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
+9
-5
@@ -16,7 +16,7 @@ Status: ⬜ not started · 🟦 designing · 🟨 in progress · ✅ done
|
||||
| M5 | System inventory | Diagnostics | none (opt: lm-sensors, dmidecode) | all | P1 | ✅ |
|
||||
| M6 | Gaming env checks | Diagnostics | none | all | P2 | 🟨 |
|
||||
| M10 | Desktop GUI | Desktop UI | **python3-pyside6** | all | P2 | ✅ |
|
||||
| M11 | Tray / menu-bar applet | Desktop UI | **python3-pyside6** (+ AppIndicator on GNOME) | all | P2 | ⬜ |
|
||||
| M11 | Tray / menu-bar applet | Desktop UI | **python3-pyside6** (+ AppIndicator on GNOME) | all | P2 | ✅ |
|
||||
| M9 | Installer | (meta) | none | all | P1 | 🟨 |
|
||||
| M12 | Session sharing / remote assist | Sharing | none (Tier 3: tmate/sshx) | all | P3 | 🟨 |
|
||||
| M13 | Auto-update | (core) | none (stdlib; user-local file swap) | all | P3 | ✅ |
|
||||
@@ -73,10 +73,14 @@ Status: ⬜ not started · 🟦 designing · 🟨 in progress · ✅ done
|
||||
nav, a live dashboard (circular gauges + collapsible per-subsystem cards, temperature-
|
||||
colored values), and a **Recording/Logs page** with full M3 controls (start/stop/status +
|
||||
post-crash report). Health/Inventory remain placeholders until M4/M5. GUI-first per D17.
|
||||
- **M11 Tray applet** — `QSystemTrayIcon` menu-bar applet. Dropdown shows live M1 readouts
|
||||
(CPU temp, GPU temp, memory used/total, status dot) and is led by a **Run Diagnostic**
|
||||
action (the guided diagnostic session), plus Open dashboard / Start-Stop recording /
|
||||
Snapshot / Quit (D13). Optional; shares the Qt dependency with M10.
|
||||
- **M11 Tray applet** — `QSystemTrayIcon` menu-bar applet. *Implemented (`gui/tray.py`, D13):*
|
||||
the menu shows live M1 readouts (CPU temp, GPU temp, memory used/total) + a status line
|
||||
(Normal / Hot / GPU not responding), led by a **Run Diagnostic** submenu (per detected game →
|
||||
the guided session), plus Open dashboard / Start-Stop recording / Snapshot-copy / Quit. It
|
||||
shares the dashboard's sample stream (no extra sampling) and drives the existing MainWindow
|
||||
flows. With a tray present, closing the window **hides to the tray** (Quit exits); `rigdoctor-gui
|
||||
--tray` starts hidden for autostart. Optional; shares the Qt dependency with M10. *Needs a tray
|
||||
host* — on GNOME that means the AppIndicator extension; degrades to no-op if none is available.
|
||||
- **M9 Installer** — interactive wizard layered on the `.deb` (D8); apt-first dependency
|
||||
resolution; enables the logger service and trigger mode. *Implemented (first cut):* distro/
|
||||
package-manager/GPU detection (`core/sysenv`), an optional-component catalog (`core/catalog`),
|
||||
|
||||
+5
-3
@@ -37,9 +37,11 @@ Ubuntu + NVIDIA first; `.deb` distribution (see `DECISIONS.md`).
|
||||
- [ ] SMART integration (smartmontools if present)
|
||||
|
||||
## Phase 4 — Desktop UI & installer
|
||||
- [ ] M10 desktop GUI (PySide6: dashboard, log browser, report viewer, logger controls)
|
||||
- [ ] M11 tray / menu-bar applet (QSystemTrayIcon: live M1 readouts + Run Diagnostic +
|
||||
supporting actions — D13)
|
||||
- [x] M10 desktop GUI (PySide6: dashboard w/ history graphs, logs, health, games, environment,
|
||||
inventory, setup, notifications, share)
|
||||
- [x] M11 tray / menu-bar applet (`gui/tray.py`: live CPU/GPU temp + memory readouts, status
|
||||
line, Run Diagnostic submenu per game, Open dashboard / Start-Stop recording / Snapshot /
|
||||
Quit — D13; close-to-tray, `--tray` autostart). Needs a tray host (AppIndicator on GNOME).
|
||||
- [~] Guided diagnostic session (pick game → focused M3 capture → M4 scan → findings),
|
||||
shared by tray/GUI/CLI — *core + CLI + GUI done* (`core/diagnostic.py`, `rigdoctor
|
||||
diagnose start/status/finish`, and a **Run Diagnostic** button per game on the GUI Games
|
||||
|
||||
Reference in New Issue
Block a user