Pictureframe Next is a documentation-first project for an appliance-style Home Assistant wall dashboard. The target is an x86 computer running Ubuntu Server 24.04 LTS, with a minimal Xorg/Openbox session and Chromium in kiosk mode.
The live frame host was commissioned through the automated kiosk, no-sleep, display-control, MQTT, Home Assistant, and branded boot stages on 2026-07-25. The repository now contains the deployed configuration and scripts, but never stores the MQTT password, Chromium profile, cookies, or Home Assistant credentials.
Deployment records:
- Phase 2 host baseline
- Kiosk runtime and Home Assistant deployment
- Branded boot and loading experience
- Low-power thermal tuning
The ui/ workspace is for standalone web experiences designed specifically for display on the picture frame. These pages cover ideas that are too visual, interactive, or specialized to build comfortably as Home Assistant dashboards, such as an analog clock, digital-art gallery, or live Spotify visualizer.
The UI application is developed here but will be hosted elsewhere. The frame remains a Chromium kiosk and opens a deployed page through the existing named-screen or arbitrary-URL controls. Home Assistant continues to provide automation and page selection; it does not need to render or host these custom experiences.
ui/ contains a responsive analog clock at /clock, a rotating artwork gallery at /gallery, and a live Spotify vinyl visualizer at /media. Spotify credentials and user authorization stay on the hosting server; the kiosk browser receives only the current track's display metadata. The hosting platform remains unresolved.
- Boot directly into one fixed Home Assistant dashboard without a desktop environment.
- Show a branded Plymouth frame during graphical boot and a coordinated local loader while Home Assistant becomes ready.
- Apply a fixed native display mode and rotation before starting Chromium.
- Scale the dashboard through Chromium without changing the Xorg output scale.
- Restart Chromium after a crash, closure, or Snap update.
- Prevent automatic suspend, hibernation, console blanking, X11 blanking, and automatic DPMS standby.
- Keep the computer and browser running when the monitor is intentionally turned off.
- Let Home Assistant request monitor on, off, brightness, a named dashboard, or an arbitrary HTTP(S) URL over MQTT.
- Reuse the existing Chromium tab for navigation, with a short fade transition instead of restarting the browser.
- Report availability, host uptime, browser health, display state, brightness, active screen, URL, and agent version to Home Assistant.
- Restore the kiosk after a normal reboot or loss of power.
The base design does not include Browser Mod, display hue control, a full desktop environment, or automatic scheduling policies. Home Assistant automations and a combined display light are optional integrations, not host requirements.
Home Assistant
└── MQTT discovery, commands, state, and availability
├── display on/off
├── brightness
└── named screen or arbitrary URL
Ubuntu Server 24.04 LTS kiosk
├── early AMD KMS + branded Plymouth frame
├── silent tty1 automatic login as an unprivileged kiosk user
├── Xorg + Openbox + unclutter
├── fixed xrandr mode and rotation
├── supervised Chromium kiosk with a persistent profile and local loader
├── unprivileged MQTT agent with a dedicated broker credential
├── automatic sleep and blanking disabled
└── hardware-dependent display control
├── internal backlight
├── external-monitor DDC/CI
└── xrandr software dimming fallback
- An x86 computer supported by Ubuntu Server 24.04 LTS.
- A monitor and GPU combination whose native mode, rotation, DPMS behavior, and brightness controls can be tested locally.
- BIOS/UEFI support for restoring power after AC loss.
- A stable network address for the kiosk and an existing Home Assistant instance.
- Administrative SSH access to the kiosk for installation and recovery.
- A dedicated non-administrator Linux kiosk account and a least-privilege Home Assistant dashboard user.
- An MQTT broker reachable by both Home Assistant and the kiosk, with a dedicated least-privilege kiosk credential.
DDC/CI, Linux backlight control, and accurate DPMS state reporting are hardware-dependent. Software dimming changes only the rendered image and does not reduce the physical backlight.
Read the architecture and execution plan before configuring a host. It includes the reviewed design, configuration inventory, staged installation sequence, security model, acceptance tests, and the decisions that must be resolved on the actual hardware.