Jellyfin runs in a cross-origin iframe so we can't observe the video
element's play state directly — using overlay-open as the proxy. Any
user activity still resets the timer, and Controls / Cameras / Settings
overlays still fall to idle as before.
- Events now color by name match in the summary: Becca=teal, Chris=green,
Arabella=pink. Anything without a match gets a neutral slate. Replaces
the hash-to-Google-palette logic.
- Main accent swapped from blue to pastel teal (#14b8a6) so the UI feels
cohesive with the event palette.
- Main app swapped from warm cream/sage to cool slate light theme with
blue accent; dark-* tokens and text-white/gray overrides remapped in
tailwind.config.js and index.css
- Calendar events now render in Google's 11-color palette (Tomato through
Graphite), deterministically hashed from the event summary so the same
event always gets the same color
- PhotoFrame uses object-contain (whole photo shown, letterboxed) instead
of object-cover; clock + date moved to lower-right, same white color,
text-shadow for readability over any photo
- EMAIL_UPLOAD.md / PHOTO_FRAME.md / iCloud sync script and systemd timer
remain unchanged
- Electron main now exposes http://127.0.0.1:9990/screenshot that returns
a PNG via CDP Page.captureScreenshot (GNOME Wayland blocks external
capture, and webContents.capturePage() hangs on this compositor). The
endpoint is localhost-only.
- EMAIL_UPLOAD.md documents the n8n IMAP -> Samba share workflow for
Skylight-style email-to-photo-frame uploads.
- Removed ScreenManager idle sleep entirely (constructor no longer starts
the idle monitor, setIdleTimeout is now a no-op, unused fields and the
private startIdleMonitor method removed). Display never sleeps; the
photo frame provides the idle visual instead.
- DashboardContent now uses flex-row: calendar 90% wide, todo 10% wide.
The five-tab nav now includes a Controls tab between Home and Media.
Opens a full-screen overlay with the alarm panel, each configured
thermostat, lights, and locks tiled in a responsive 2-column grid.
- Top nav tabs (Home/Media/Cameras/Settings) replace the right-side button cluster
- Home view now shows calendar 90% / todo 10% vertically; lights, locks,
alarm, thermostats removed from the dashboard since the photo frame now
owns the idle space and the nav covers the remaining sections
- Motion detection deleted: the go2rtc-based Kitchen_Panel poll was only
there to wake the screen before idle timeout, which photo-frame exit on
touch replaces
- After 5 min of no touch/motion, dashboard hides behind a fullscreen
photo slideshow with centered time and date overlay
- Photos loaded from PHOTOS_PATH env var (defaults to ~/Pictures/dashboard)
via IPC + file:// URLs; traversal-guarded, recursive up to 2 levels
- Motion or touch exits idle back to dashboard
- Theme repainted warm cream / sage / stone ink with Nunito font and
rounded cards; dark tokens kept so component classes still resolve
- Adds PHOTO_FRAME.md with Samba cifs mount + systemd env instructions
- Add WebRTC auto-reconnect with exponential backoff when streams
disconnect or fail, preventing permanent freezes in grid view
- Replace hard-coded Front Porch person alert with generic system
that monitors all configured personDetectionEntities
- Map Frigate person_occupancy entities to cameras dynamically
- Show correct camera name and feed in alert overlay
- Bump config version to refresh detection entity defaults