# Thin-client package list (live-build .list.chroot format: one package per line).
# Phase 11, docs/project-plan.md.

# --- Wayland compositor / session ---
sway
swaylock
swayidle
swaybg
xwayland
greetd
foot

# --- Remote view/control (the chosen replacement for RDP — see project-plan §2) ---
wayvnc

# --- Browser / media ---
firefox-esr
mpv
# mpv-mpris is packaged in Debian bookworm (mpv-mpris 0.9-x). VERIFY with
# `apt-cache policy mpv-mpris` against your mirror before the first real build; if it
# is missing, it has to be built from source in a hook and needs mpv + libmpv-dev.
mpv-mpris
libmpv2
playerctl
# wev prints the keysym for each key press — the two-minute way to find out what a
# given wireless remote's buttons actually send. See README's remote-control section.
wev

# --- Audio ---
pipewire
pipewire-pulse
wireplumber
alsa-utils

# --- Steam Link comes from Flathub, not apt (see 0400-flatpak-steamlink.hook.chroot) ---
flatpak

# --- Agent runtime ---
python3
python3-venv
# Debian bookworm ships paho-mqtt 1.6.x. thinclient_agent is written to work against
# both the 1.x and 2.x callback APIs, so this package is used as-is rather than pip'd.
python3-paho-mqtt
procps

# --- Networking ---
# NetworkManager over iwd+systemd-networkd: these boxes are wired-preferred but some
# rooms will be WiFi-only, and NM handles both from one tool (nmcli/nmtui) that a human
# can drive over wayvnc or SSH without editing per-interface unit files.
network-manager

# --- Out-of-band admin (wayvnc is the primary remote channel; SSH is the fallback
#     for when the compositor itself is what's broken) ---
openssh-server
sudo

# --- Now-playing widget (0800-eww-widget.hook.chroot tries apt, falls back to a
#     documented placeholder if not packaged; foot is already listed above for the
#     maintenance-shell keybind, fullscreen-watcher.sh's tree query just needs jq) ---
eww
jq

# --- Outbound RDP/VNC client (thinclient_agent/remote_desktop.py) — one app for both
#     protocols instead of xfreerdp + a separate VNC viewer ---
remmina
remmina-plugin-rdp
remmina-plugin-vnc

# --- HA mobile-app browser remote (thinclient_agent/input_control.py) — Wayland input
#     injection; NOT xdotool, which is X11-only ---
ydotool

# --- Camera gesture control (1100-gesture-control.hook.chroot, OPT-IN per image) ---
# Deliberately NOT python3-opencv: mediapipe declares opencv-contrib-python as a
# dependency and pip installs its own copy into the venv regardless, so apt's OpenCV
# would just be a second unused one. What IS needed from apt is the set of shared
# libraries those manylinux wheels dlopen at runtime — the wheels bundle none of these.
libgl1
libglib2.0-0
# sounddevice is a hard dependency of mediapipe and loads PortAudio at import time even
# though only its audio tasks use it.
libportaudio2
# For finding the right /dev/video* to put in gesture-config.json: `v4l2-ctl --list-devices`.
v4l-utils

# --- Idle-timeout gallery slideshow (configs/idle-gallery/) — mount.cifs for the
#     read-only SMB share; the slideshow player itself is mpv, already listed above ---
cifs-utils

# --- Firmware for real hardware (needs contrib + non-free-firmware archive areas,
#     which build-thin-client-iso.sh passes to `lb config`) ---
firmware-linux
firmware-iwlwifi
firmware-realtek
firmware-misc-nonfree

# --- Build/runtime deps for the pip-installed voice satellite venv ---
python3-dev
build-essential
libopenblas0
git

# --- Misc ---
ca-certificates
curl
openssl
less
vim-tiny

# NOTE: wyoming-satellite and openwakeword are Python packages, NOT Debian packages.
# They are installed into a venv under /opt by 0600-voice-satellite.hook.chroot
# (PEP 668 makes a bare `pip3 install` into the system interpreter fail on bookworm).
# NOTE: spotifyd/librespot are not in bookworm main either — see
# 0500-spotify-connect.hook.chroot.
# NOTE: mediapipe is not a Debian package at all (no python3-mediapipe in bookworm or
# trixie); it is PyPI-only and goes into its own venv, see 1100-gesture-control.hook.chroot.
