Files
Tdarr-tray/doc/plan.md
claude 81ff5c7fea
All checks were successful
release / release (push) Successful in 16s
Initial Tdarr-tray: KDE systray applet for the Tdarr workstation node
PyQt6 QSystemTrayIcon: green=running, red=stopped, yellow=transition.
Pause/resume the node via the API (frees/reclaims the GPU, no sudo) so you
can free the 4060 Ti before gaming. Playbook standard: README (per-OS
prereqs + build/run/test), doc/plan.md, .gitignore (build/ first), VS Code
build task -> ./build, install.sh + one-line curl (clone or release),
Gitea Actions rolling-latest release.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011YPrEZVBpPVoCRyJz2exkZ
2026-07-05 20:34:35 +02:00

35 lines
1.5 KiB
Markdown

# Tdarr-tray — plan
## Goal
En systray-applet på workstationen som visar om Tdarr-noden (den som kör NVENC på
4060 Ti) transkoderar, och låter dig pausa/återuppta den med ett klick — så du
snabbt kan frigöra GPU:n innan du spelar och återuppta efteråt.
## Stack
- Python 3 + **PyQt6** (`QSystemTrayIcon`). KDE/Plasma, Wayland.
- Pratar med Tdarrs API (`x-api-key`), samma auth som tdarr-cli.
## Deploy target
Pattern A (installerbar). `install.sh``~/.local/bin/tdarr-tray` + autostart
(`~/.config/autostart/`). Release-CI publicerar `tdarr-tray.py` + `install.sh` till
rullande `latest`; en-rads `curl … | sh`.
## Design
- Pollar `GET /api/v2/get-nodes` var 5:e sekund, matchar noden på **namn** (id
ändras vid varje nod-restart).
- Läge → ikonfärg: körs (grön) / körs inte = pausad|offline (röd) / övergång (gul).
- Aktiva transkodningar = `workers` med `idle:false`.
- Paus/återuppta: `POST /api/v2/update-node {nodeUpdates:{nodePaused:…}}` (ingen sudo;
paus dödar ffmpeg → encoder 0 %).
## Roadmap / expansions
- Notis (ntfy/knotify) när kön är klar eller noden felar.
- Visa kö-längd / sparat diskutrymme i tooltip.
- Snabbval: pausa i X minuter, eller auto-paus när ett spel körs (t.ex. via
gamemode/process-watch).
- Stöd att styra flera noder (inte bara workstationen).
## Open questions
- Ska "stäng av" även kunna stoppa container (kräver docker/sudo) eller räcker
paus (frigör GPU:n redan)? Nuläge: paus räcker.