New separate project (the Electron Mac app stays untouched). Reuses the visual engine (WebGL shaders, effect catalog, Web Audio) verbatim and replaces Electron IPC with a Node HTTP+WebSocket server: - server.js: serves the kiosk output page + mobile control PWA, relays the same ctl/rpt JSON protocol over WebSocket, plus REST for media library/upload, JSON state (pads), waveform peaks and MP4 recording (ffmpeg). - public/js/net.js: window.djv shim over WebSocket+HTTP so output.js runs intact. - public/index.html + control.js: touch-first mobile remote (effects, media/queue, ticker, pads, audio/EQ, fullscreen + recording). - PWA (manifest + service worker + generated icons). - scripts/: Chromium kiosk launcher + install-pi.sh (systemd units for Pi 5). Verified: REST endpoints, WebSocket relay both directions, control PWA loads the 2958-effect catalog and renders. (Headless WebGL output not testable without GPU.) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
13 lines
533 B
Bash
13 lines
533 B
Bash
#!/usr/bin/env bash
|
|
# Launch Chromium fullscreen (kiosk) on the Pi's HDMI, pointed at the output page.
|
|
URL="${1:-http://localhost:8080/output.html}"
|
|
BIN="$(command -v chromium-browser || command -v chromium || echo chromium)"
|
|
exec "$BIN" \
|
|
--kiosk --noerrordialogs --disable-infobars --no-first-run \
|
|
--autoplay-policy=no-user-gesture-required \
|
|
--disable-translate --disable-features=Translate \
|
|
--check-for-update-interval=31536000 \
|
|
--overscroll-history-navigation=0 \
|
|
--ozone-platform=wayland --use-gl=egl \
|
|
"$URL"
|