158 lines
5.7 KiB
Plaintext
158 lines
5.7 KiB
Plaintext
# Steam-TV-Box package list (live-build .list.chroot format: one package per line).
|
|
#
|
|
# This machine is a LOCAL gaming box first and a media station second: real GPU, real
|
|
# CPU, games run here rather than being streamed in. That is the difference from
|
|
# hosts/thin-client, which runs Steam *Link* (a client for a PC somewhere else) and
|
|
# needs no graphics performance at all.
|
|
#
|
|
# Because of that, this image is built against Debian trixie rather than the household
|
|
# default — see the debian_release note in tools/build-steam-tv-box-iso.sh. Mesa 22.3
|
|
# (bookworm) predates most of the driver work that current titles rely on, and a
|
|
# gaming box on an old Mesa is the one thing here that cannot be fixed later by
|
|
# rebuilding a config file.
|
|
#
|
|
# NOT in this list and installed by hooks instead:
|
|
# steam-installer, steam-devices -> 0300-steam.hook.chroot (needs `dpkg
|
|
# --add-architecture i386` + `apt-get update` first, and live-build installs
|
|
# package lists BEFORE it runs hooks, so it cannot be done from here)
|
|
# the i386 halves of the graphics stack -> same hook, same reason
|
|
# Spotify, Prism Launcher -> 0400-flatpak-apps.hook.chroot (Flathub)
|
|
|
|
# --- Wayland compositor / session ---
|
|
sway
|
|
swayidle
|
|
swaybg
|
|
# Steam, Prism Launcher's Minecraft windows and most native games are X11 clients, so
|
|
# Xwayland is load-bearing here rather than a nicety.
|
|
xwayland
|
|
greetd
|
|
foot
|
|
|
|
# --- Remote view/control (same wayvnc-with-a-mandatory-password posture as the thin
|
|
# client; it is for administering the box, not for playing over) ---
|
|
wayvnc
|
|
|
|
# --- Graphics: the amd64 half. The i386 half is installed by 0300-steam.hook.chroot
|
|
# after multiarch is enabled, and 32-bit games/Proton runtimes genuinely still
|
|
# need it in 2026. ---
|
|
mesa-vulkan-drivers
|
|
mesa-va-drivers
|
|
mesa-vdpau-drivers
|
|
libgl1-mesa-dri
|
|
libglx-mesa0
|
|
libvulkan1
|
|
# vulkaninfo/vkcube — the fastest way to answer "is this box actually accelerated?"
|
|
# from the maintenance shell before blaming a game.
|
|
vulkan-tools
|
|
# glxinfo, for the same question on the GL side.
|
|
mesa-utils
|
|
libva-drm2
|
|
vainfo
|
|
|
|
# --- Gaming runtime bits ---
|
|
# Lets a game ask the system for the performance governor while it runs and hand it
|
|
# back afterwards, instead of pinning this box to "performance" around the clock.
|
|
gamemode
|
|
# On-screen FPS/frametime overlay, opt-in per launch (MANGOHUD=1). Diagnostics, not
|
|
# decoration: it is how you tell a CPU-bound stutter from a GPU-bound one.
|
|
mangohud
|
|
# Controller support. Steam's own controller stack covers Steam games; these cover
|
|
# everything outside it (Prism/Minecraft, emulators, the browser).
|
|
joystick
|
|
evtest
|
|
bluez
|
|
bluetooth
|
|
# Steam's runtime and many native titles link against these directly.
|
|
libsdl2-2.0-0
|
|
libopenal1
|
|
# Proton/Wine prerequisites that apt will otherwise pull only as recommends.
|
|
cabextract
|
|
p7zip-full
|
|
# Xbox/PlayStation pad firmware, plus the general non-free firmware blobs a real GPU
|
|
# needs. Requires the contrib + non-free + non-free-firmware archive areas, which
|
|
# tools/build-steam-tv-box-iso.sh passes to `lb config`.
|
|
firmware-linux
|
|
firmware-amd-graphics
|
|
firmware-realtek
|
|
firmware-iwlwifi
|
|
firmware-misc-nonfree
|
|
|
|
# --- Browser / media (the "same media functions as the other monitor clients" half) ---
|
|
firefox-esr
|
|
mpv
|
|
mpv-mpris
|
|
libmpv2
|
|
playerctl
|
|
# wev prints the keysym for each key press — how to find out what a given TV remote's
|
|
# buttons actually send. Same reasoning as the thin client's.
|
|
wev
|
|
|
|
# --- Audio ---
|
|
pipewire
|
|
pipewire-pulse
|
|
pipewire-alsa
|
|
wireplumber
|
|
alsa-utils
|
|
# 32-bit games play through pipewire-pulse's ALSA/Pulse shim; libpulse0:i386 comes with
|
|
# the i386 batch in 0300-steam.hook.chroot.
|
|
|
|
# --- Flatpak apps: Spotify and Prism Launcher (0400-flatpak-apps.hook.chroot) ---
|
|
flatpak
|
|
# Portals — Flatpak apps use these for file pickers and screen sharing under Wayland.
|
|
# Without them Prism's "choose a Java binary" dialog and Spotify's file dialogs come up
|
|
# empty rather than failing loudly, which is a confusing way to lose an evening.
|
|
xdg-desktop-portal
|
|
xdg-desktop-portal-wlr
|
|
xdg-desktop-portal-gtk
|
|
|
|
# --- Java for Prism Launcher's own use ---
|
|
# Prism can download its own JREs, but only if it has network at the time. Shipping
|
|
# both the LTS and the current runtime means Minecraft launches offline too: 8 for
|
|
# anything pre-1.17, 21 for current versions.
|
|
openjdk-21-jre
|
|
openjdk-8-jre
|
|
|
|
# --- Agent runtime ---
|
|
python3
|
|
python3-venv
|
|
# trixie ships paho-mqtt 2.x; steamtv_agent is written against both the 1.x and 2.x
|
|
# callback APIs (see make_client() in main.py), so apt's package is used as-is.
|
|
python3-paho-mqtt
|
|
procps
|
|
|
|
# --- Networking ---
|
|
network-manager
|
|
|
|
# --- Out-of-band admin ---
|
|
openssh-server
|
|
sudo
|
|
|
|
# --- Session plumbing ---
|
|
# session-watcher parses `swaymsg -t subscribe` events with jq; the sway config's
|
|
# workspace logic depends on it.
|
|
jq
|
|
# HDMI-CEC (cec-ctl) for turning the TV itself on and off — steamtv_agent/display_power.py.
|
|
v4l-utils
|
|
# media-player talks to a running mpv over its JSON IPC socket (mpv.conf's
|
|
# input-ipc-server) so a second `media-player <file>` loads into the existing window
|
|
# instead of opening a competing MPRIS player.
|
|
socat
|
|
|
|
# --- Misc ---
|
|
ca-certificates
|
|
curl
|
|
openssl
|
|
less
|
|
vim-tiny
|
|
git
|
|
|
|
# NOTE: gamescope is NOT listed here on purpose. It is the right way to run Big
|
|
# Picture on a TV (integer-scaled, its own framerate limiter, no compositor tearing),
|
|
# but its availability in the target release was not verified from this environment —
|
|
# 0300-steam.hook.chroot installs it if apt has it and steam-big-picture falls back to
|
|
# plain Xwayland if it does not, so a missing gamescope costs polish rather than a
|
|
# broken image.
|
|
# NOTE: NVIDIA users — see 0300-steam.hook.chroot. The driver is not in this list
|
|
# because it must not be installed on an AMD/Intel box, and which one this is comes
|
|
# from `gpu_vendor` in CoreSystemConfig.json.
|