feat: dress VLC down to an appliance screen

Stock VLC looks like a desktop media player, which is wrong for a room
where the TV is the whole interface. VLC stays the backend because its
dvdnav module is what provides the disc menus, and menus are the part
that matters on a commercial disc.

It is dressed down with documented VLC 3.x options, all verified against
the 3.0.23 build in Debian Trixie: minimal view, dark palette, no cone,
no tray, no now-playing popups, no resume prompt, no recent-disc
history, no title banner. sway draws no border on the window either, so
there is nothing above the video.

The auto-hiding fullscreen controller is deliberately kept: it is not
persistent chrome, and it is the only way a volunteer with a mouse can
pause or change chapter.

No skin is involved. Skins replace the interface wholesale and take the
keyboard and mouse handling that DVD menu navigation depends on with
them, as would --intf dummy.

Also drops --no-qt-updates-notif, which was not an option in Debian's
VLC at all. It made VLC exit before it started, so the DVD button could
never have launched a disc.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
ekklesia
2026-09-04 21:33:22 -05:00
co-authored by Claude Opus 5
parent 428eb27a74
commit c81fc1b0b9
4 changed files with 95 additions and 10 deletions
+32 -2
View File
@@ -43,12 +43,42 @@ def notify(title, message, urgency="normal"):
def player_command(device):
"""VLC, dressed down to look like an appliance rather than a desktop app.
All of these are documented VLC 3.x options, verified against the
3.0.23 build in Debian Trixie. No skin is involved: skins replace the
interface wholesale and break DVD menu input, which is the one thing
that has to keep working.
Note that --no-qt-updates-notif, which earlier builds passed, is not
an option in Debian's VLC and made it refuse to start at all.
"""
return [
PLAYER,
# Fullscreen first: the disc opens straight onto the TV.
"--fullscreen",
"--no-video-title-show",
# No menu bar or extended panels, and a dark window instead of
# the default light grey one.
"--qt-minimal-view",
"--qt-dark-palette",
# No orange cone, and no album-art panel, behind the video.
"--no-qt-bgcone",
# Nothing that behaves like a desktop application.
"--no-qt-system-tray",
"--no-qt-name-in-title",
"--no-qt-video-autoresize",
"--qt-notification=0",
# Never offer to resume, and never accumulate a list of the
# discs a classroom has played.
"--qt-continue=0",
"--no-qt-recentplay",
# No first-run privacy dialog, no title banner over the video.
"--no-qt-privacy-ask",
"--no-qt-updates-notif",
"--no-video-title-show",
# dvd:// selects VLC's dvdnav module, which is what provides the
# disc menus. The Qt interface is kept for exactly that reason:
# --intf dummy would be cleaner still but takes the keyboard and
# mouse handling that menu navigation depends on with it.
f"dvd://{device}",
]