No description
Find a file
2026-07-22 06:31:27 +08:00
.agents chore: add dual-host agent harness 2026-07-21 06:30:01 +08:00
.claude chore: add dual-host agent harness 2026-07-21 06:30:01 +08:00
.codex chore: add dual-host agent harness 2026-07-21 06:30:01 +08:00
.github fix: satisfy marketplace safety review 2026-07-21 20:53:43 +08:00
docs docs: reflect official marketplace availability 2026-07-22 06:30:57 +08:00
src release: 2.10.2 2026-07-21 20:56:39 +08:00
tests fix: satisfy marketplace safety review 2026-07-21 20:53:43 +08:00
tools ci: make releases tag-driven 2026-07-21 16:47:19 +08:00
.all-contributorsrc chore: Update readme badges & add all-contributors to manage contributors 2025-08-10 00:22:39 +08:00
.editorconfig ci: 添加 EditorConfig 和发布配置文件 2025-08-01 21:01:47 +08:00
.gitattributes chore: add dual-host agent harness 2026-07-21 06:30:01 +08:00
.gitignore chore: add dual-host agent harness 2026-07-21 06:30:01 +08:00
.npmrc Initial commit 2025-07-30 16:06:33 +08:00
.prettierrc.json feat: Major Update: Added wallpaper API support; integrated Wallhaven API; optimized project structure and several other features. 2025-08-06 03:22:59 +08:00
.stylelintrc.json fix: Update stylelint configuration and improve CSS variable definitions 2025-09-16 08:48:54 +08:00
AGENTS.md fix: satisfy marketplace safety review 2026-07-21 20:53:43 +08:00
CHANGELOG.md release: 2.10.2 2026-07-21 20:56:39 +08:00
CLAUDE.md chore: add dual-host agent harness 2026-07-21 06:30:01 +08:00
CONTRIBUTING.md docs: Create CONTRIBUTING.md 2025-08-10 16:24:06 +08:00
esbuild.config.mjs fix: preserve settings integrity and compatibility 2026-07-21 15:12:19 +08:00
eslint.config.mts fix: satisfy marketplace safety review 2026-07-21 20:53:43 +08:00
LICENSE chore: Update LICENSE to MIT License and revise copyright information 2025-08-09 06:39:52 +08:00
manifest.json release: 2.10.2 2026-07-21 20:56:39 +08:00
package-lock.json release: 2.10.2 2026-07-21 20:56:39 +08:00
package.json release: 2.10.2 2026-07-21 20:56:39 +08:00
README.md docs: reflect official marketplace availability 2026-07-22 06:30:57 +08:00
README.zh.md docs: reflect official marketplace availability 2026-07-22 06:30:57 +08:00
styles.css fix: satisfy marketplace safety review 2026-07-21 20:53:43 +08:00
tsconfig.json fix: satisfy marketplace safety review 2026-07-21 20:53:43 +08:00
versions.json fix: preserve settings integrity and compatibility 2026-07-21 15:12:19 +08:00

🌈 Dynamic Theme Background

Build Your Own Wallpaper Library in Obsidian!

Make every note-taking experience visually inspiring

🇺🇸 English 🇨🇳 中文版

Obsidian Plugin Latest Release GitHub Downloads GitHub Stars Build Status License


Preview

Features

  • Multi-source Library — Unsplash, Pixabay, Pexels, Wallhaven + custom API & local folders
  • Visual Tuning — Blur, brightness, saturation, hue adjustments; dark/light theme aware
  • Smart Rotation — Time windows, interval auto-change, command palette quick switch
  • Performance — Async loading, caching, minimal impact on editor responsiveness

Installation

Requires Obsidian 1.11.4 or later.

Obsidian Community Plugins

  1. Open Settings → Community plugins → Browse
  2. Search for Dynamic Theme Background
  3. Select Install, then Enable

BRAT

  1. Install BRAT
  2. Add beta plugin → https://github.com/sean2077/obsidian-dynamic-theme-background
  3. Enable in settings

Manual

  1. Download main.js, manifest.json, styles.css from Releases
  2. Create .obsidian/plugins/obsidian-dynamic-theme-background/
  3. Place files inside, restart Obsidian, enable

Quick Start

  1. Add Sources — Local images or API providers (Unsplash / Pixabay / Pexels / Wallhaven / Custom)
  2. Set Rotation — Interval + optional time windows (morning / day / night)
  3. Control — Status bar clicks or Command Palette (dtb) to switch, save & fetch

Status Bar:

  • Left Click → Random wallpaper
  • Middle Click → Open settings
  • Right Click → Save current background

Network and Privacy

  • Local images, colors, and gradients work without provider requests. Enabling a wallpaper provider, using a custom JSON endpoint, or applying/saving a remote image can contact the configured third party; that service's terms and privacy policy apply.
  • Provider keys, tokens, and every custom-header value are stored through Obsidian SecretStorage. The plugin's data.json contains only non-secret settings and SecretStorage IDs, not those credential values.
  • Custom API query credentials must use Secret query parameters. The raw Extra parameters JSON accepts only non-secret string, number, and boolean values; those parameters are appended to the custom endpoint at request time.
  • On the first load after upgrading, legacy plaintext credentials are copied to SecretStorage before data.json is replaced. If any secret write fails, the old data.json is left unchanged and plugin startup stops so credentials are not lost or partially migrated.
  • Secrets can be shared across plugins or configurations, so deleting a DTB API removes only its reference and does not delete the Obsidian-owned secret.
  • The plugin has no telemetry or analytics. Diagnostic logging sanitizes credential-bearing URLs and headers, bounds nested data, and does not intentionally log API keys or tokens.
  • Saving a remote wallpaper is an explicit action and writes only to the validated vault-relative folder selected in plugin settings.

Notes

  • Optimized for dark themes; light themes may need parameter adjustments
  • Uses Obsidian CSS variables — compatible with most themes
  • If your theme defines custom backgrounds, choose one or the other to avoid conflicts
CSS Override Details
.dtb-enabled .workspace::before {
    background-image: var(--dtb-bg-image);
    filter: blur(var(--dtb-blur-depth)) brightness(var(--dtb-brightness)) saturate(var(--dtb-saturate));
    /* ... */
}

Roadmap

  • Weather / system theme driven wallpaper sets
  • Video / GIF backgrounds
  • AI-generated backgrounds
  • Mobile refinements
  • Preset packs & collections

Contributing

License

MIT