Josh Medeski150 downloadsDynamically change your Obsidian background with wallpapers that adapt to what you're doing.
Set per-note background wallpapers in Obsidian using frontmatter properties. Wallpapers can be inherited from linked notes, browsed in a gallery, or randomized from any combination of inheritance tiers.
wallpaper frontmatter property linking to an image in your vaultDesktop-only. This plugin uses Node.js
fsAPIs, which are not available on Obsidian Mobile.
All commands are available from the Command Palette (Cmd/Ctrl + P).
.cache directory.A note doesn't have to set its own wallpaper. When the active note has no direct wallpaper frontmatter property, the plugin resolves one by following the note's links — so a wallpaper set on one note can cascade to everything connected to it.
The plugin walks these tiers in order and applies the first wallpaper it finds (first match wins):
areas: list).Tiers 2–5 can each be toggled off in Settings. A backlink of a backlink (transitive backlinks) is not followed — only direct backlinks of the active note are checked.
The related set is the full collection of wallpapers reachable through every enabled tier above, deduplicated by resolved file path. Two commands operate on it:
↗ source-name link to open the source note in a new leaf instead. Tiers with no wallpapers are hidden.| Setting | Default | Description |
|---|---|---|
| Wallpaper Property | wallpaper |
Frontmatter property name used to specify a wallpaper |
| Wallpapers Directory | / |
Vault folder containing wallpaper images |
| Keep existing wallpaper | true |
Retain the wallpaper when navigating to a note without one |
| Inheritance Property | (empty) | Specific frontmatter property whose outlinks are checked for wallpapers (priority 2) |
| Inherit from all frontmatter links | true |
Check every frontmatter outlink for a wallpaper (priority 3) |
| Inherit from body links | true |
Check inline body links for a wallpaper — last link checked first (priority 4) |
| Inherit from backlinks | true |
Check notes that link TO the active note for a wallpaper (priority 5, lowest) |
| Overlay Opacity (Light Mode) | 0.8 |
Overlay opacity in light mode (0-1) |
| Overlay Opacity (Dark Mode) | 0.6 |
Overlay opacity in dark mode (0-1) |
For how the inheritance settings interact, see Related wallpapers & inheritance above.
The wallpaper picker, related-wallpapers modal, thumbnail cache, and random-pick commands only recognize: png, jpg, jpeg, webp, gif, bmp, and svg. Files with other extensions are silently skipped.
This plugin accesses the filesystem beyond what Obsidian's standard vault APIs provide:
.cache directory inside the plugin's own folder (<vault>/.obsidian/plugins/dynamic-wallpapers-plugin/.cache/) to store generated wallpaper thumbnails (480×270 cropped JPEGs). Thumbnails are generated from the original images via the browser's built-in canvas + createImageBitmap APIs — no external binary is required. No files outside the vault are created.fs APIs - Used for reading/writing thumbnail cache files. All file operations stay within the vault directory.See CONTRIBUTING.md for how to set up a local dev environment, including symlinking the build/ output into your vault and using the Hot-Reload plugin for fast iteration.
See AGENTS.md for project conventions and style guidelines.