How griffxen/ambient_dashboard works
Ambient Dashboard is an Electron app for a portrait secondary display, with a local control panel and APIs. Its main workflow is: the desktop process fetches agenda and system data, serves the dashboard, and the renderer presents a time-aware schedule, weather, and status; users manage settings and memos from the control panel. Local integrations also expose LAN memo editing and temporary presence notifications. The excerpts show key process and service relationships; some renderer-to-main IPC and presence dispatch details are not shown, so those links are omitted or marked unverified.
Main entry points: main.cjs Desktop coordinator · services.cjs System data services · main.tsx Dashboard renderer · control.tsx Control panel
Components 18
Desktop runtime
- Desktop coordinator
electron/main.cjs - Display window
electron/main.cjs
Dashboard display
- Dashboard renderer
src/main.tsx - Appearance rules
src/appearance.ts - Control panel
src/control.tsx
Data services
- System data services
electron/services.cjs - Weather event rules
electron/weather-events.cjs - Linux media reader
electron/linux-media.py - Agenda retrieval
electron/main.cjs - Memo persistence
electron/main.cjs
Local interfaces
- Local control API
electron/control-server.cjs - LAN memo editor
electron/lan-memo.cjs - Presence API
electron/control-server.cjs
Other components
- Dashboard user
- Local app
- Planner service
- Weather provider
- OS media session
Connections 19
- Dashboard user → Display window: views
README.md - Desktop coordinator → System data services: calls
electron/main.cjs - Desktop coordinator → Display window: opens
electron/main.cjs - Display window → Dashboard renderer: loads
electron/main.cjs - Dashboard renderer → Control panel: renders
src/main.tsx - Dashboard renderer → Appearance rules: uses
src/main.tsx - Control panel → Local control API: requests
README.md - Local control API → Desktop coordinator: dispatches
electron/main.cjs - Desktop coordinator → Agenda retrieval: handles
electron/main.cjs - Agenda retrieval → Planner service: fetches agenda
electron/main.cjs - Desktop coordinator → Memo persistence: reads and writes
electron/main.cjs - Desktop coordinator → LAN memo editor: starts
electron/main.cjs - LAN memo editor → Memo persistence: reads and saves
electron/main.cjs - System data services → Weather event rules: uses
electron/services.cjs - System data services → Weather provider: fetches weather
README.md - System data services → Linux media reader: runs on Linux
- Linux media reader → OS media session: reads session
electron/linux-media.py - Local app → Presence API: posts presence
README.md - Presence API → Desktop coordinator: dispatches presence
electron/main.cjs