# TeleportFling TODO Backlog of deferred / planned work, tracked outside of milestone milestones. ## Planned - [x] **Monitor picker in the GUI** — monitors are enumerated via hyprctl (Hyprland) and shown as a dropdown in the settings window; the selected monitor persists as `stream_index`. Falls back to a single indexed option on other compositors. - [x] **Surface runtime errors in the GUI** — the engine records the most recent capture/encode/packet/audio error and the GUI shows it in the status label and tray tooltip (highlighted as a danger). - [x] **`--config` flag** — the CLI and GUI accept a custom config path (`teleportfling --config /path/config.json`); explicit CLI flags override file values. Used by the systemd daemon unit in contrib/. - [x] **Run as a daemon** — `contrib/install-daemon.sh` installs a per-user systemd unit (`contrib/teleportfling.service`) that starts the headless CLI with its own config at `~/.config/teleportfling/daemon.json`. ## Ideas (not yet scoped) - Live settings changes mid-stream (`flinger.SetConfig` for FPS/quality). - Bitrate/bandwidth tuning beyond the balanced 1080p30 default. - Screen capture scaling / downsampling. - Packaging (Nix package / AppImage / release binaries) — deliberately deferred.