File Index

File Purpose
main.lua (3621 lines) Entire application — state, rendering, input, audio, video, everything
json.lua (260 lines) Standalone JSON encoder/decoder (pure Lua, no deps)
haptic.py (38 lines) One-shot rumble pulse via dynamic evdev force-feedback probing
riptide-v2.gptk gptokeyb controller mapping for the LÖVE app
mpv.gptk gptokeyb controller mapping for MPV video playback
broker/jellyfin_broker.py (318 lines) Pi4 Jellyfin VOD broker for catalog, stream, thumbnail poster proxying, and trimmed media metadata
media/images/RipTide.png AquaSystem tile art for the canonical RipTide launcher
data/playlists/*.json Music + video playlist definitions
data/watch-later/* MPV watch-later resume state files