Display Canvas is a Home Assistant custom integration for managing image libraries and publishing them to display devices and screensavers.
It provides Home Assistant-native image feeds for:
- Projectivy Launcher via Overflight
- Aerial Views
- Home Assistant media sources
- Camera-backed images
- AI-generated artwork
- Uploaded images
- Local media folders
- Named reusable image libraries
- Home Assistant Media Browser integration
- Camera-backed libraries
- Per-feed library selection
- Landscape and portrait filtering
- Minimum resolution filtering
- Feed image counts
- Stable image URLs with cache busting
- Overflight JSON feed
- Aerial Views CSV feed
- Local-first operation
- No external cloud service required
- Open HACS in Home Assistant.
- Open Integrations.
- Add this repository as a custom repository:
https://github.com/SkillfulHacking/ha-display-canvas - Select category Integration.
- Install Display Canvas.
- Restart Home Assistant.
Copy:
custom_components/display_canvas
into:
/config/custom_components/display_canvas
Then restart Home Assistant.
After restarting:
- Go to Settings → Devices & services.
- Select Add Integration.
- Search for Display Canvas.
- Add the integration.
Only one Display Canvas configuration entry is required.
Libraries are reusable named image sources.
Examples:
- AI Art
- Uploaded Images
- Fantasy Ambient Art
- Local History
- Frigate People Today
A library may use:
- a browsable Home Assistant media folder
- an image media source
- a Home Assistant camera entity
Libraries are managed from:
Settings → Devices & services → Display Canvas → Configure → Libraries
Display Canvas currently provides two feed formats.
The Overflight endpoint publishes JSON suitable for Projectivy Launcher.
Configure it under:
Display Canvas → Configure → Projectivy / Overflight
You can select:
- Library
- Orientation
- Minimum resolution
Copy the generated URL from:
Display Canvas → Configure → Feed URLs
Then use that URL as the Overflight feed in Projectivy.
The Aerial endpoint publishes a CSV playlist suitable for Aerial Views.
Configure it under:
Display Canvas → Configure → Aerial Views
You can select:
- Library
- Orientation
- Minimum resolution
Copy the generated URL from:
Display Canvas → Configure → Feed URLs
Use that URL as the custom remote playlist in Aerial Views.
Each feed can independently filter images by orientation:
- Any
- Landscape
- Portrait
Minimum resolution options:
- Any
- 720p
- 1080p
- 1440p
- 4K
Resolution filtering uses the image's long and short edges and does not require a 16:9 aspect ratio.
EXIF image rotation is respected when determining orientation.
Display Canvas normally uses Home Assistant's local URL when generating image links.
A custom Base URL may be configured under:
Display Canvas → Configure → General
This is useful when display devices must access Home Assistant through a specific hostname, IP address, or reverse proxy.
Display Canvas feed URLs contain an access token.
Treat feed URLs like credentials:
- Do not publish them publicly.
- Do not include them in screenshots or bug reports.
- If the token is exposed, remove and re-add the integration to generate a new token.
The token allows access only to Display Canvas feeds and published media, not general Home Assistant API access.
Display Canvas provides Home Assistant actions for managing feed sources and libraries:
display_canvas.set_sourcedisplay_canvas.save_librarydisplay_canvas.remove_librarydisplay_canvas.set_library
Library selection is also exposed through Home Assistant select entities for Overflight and Aerial Views.
Validation runs automatically on pull requests using:
- HACS validation
- Home Assistant Hassfest
- pytest regression tests
Current regression coverage includes:
- orientation filtering
- resolution thresholds
- square image handling
- EXIF rotation
- feed URL generation
- Home Assistant local URL fallback
Display Canvas is currently developed and tested against Home Assistant 2026.10.
Display Canvas is pre-1.0 software.
Configuration and feed formats are intended to remain stable, but breaking changes may still occur before the first stable release.
See LICENSE.