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

1.5 KiB

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.