DSH Plugins Marketplace

DSH Plugins

Plugins

/

Terminal & Clients

/

dsh-plugin-bg-studio

A

dsh-plugin-bg-studio

Manifest valid

Add Dynamic Wallpaper to DeepSeek

UI (client)hasBundlePatchMachine translated

Background Studio for DeepSeek Harness

Custom backgrounds and an animated wallpaper engine for DeepSeek Harness (DSH) — pictures, transparency, frosted glass, and a Wallpaper-Engine-style bundle system with video / web / canvas / task-reactive character wallpapers. One design rule above all: your text colors are never touched — readability always follows the app's own light/dark theme.

中文文档

Screenshots welcome — drop them into docs/screenshots/ and reference them here.

Features

Four background modes

ModeWhat you get
PictureYour own image under everything: fill modes (cover / contain / tile), opacity, blur, readability scrim (strength + custom color)
TransparentSurfaces go see-through; on Windows 11 desktop builds the window gets the system acrylic material attempted so cleared surfaces can reveal the desktop
Frosted glassSurfaces become translucent glass over a (built-in or picture) backdrop: blur, fill, saturation — with stacked-layer alpha compensation so the sidebar reads exactly as dialed
AnimatedFull wallpaper engine — see below

Every mode is one click away in the sidebar Background panel. Changes apply instantly and persist automatically. "Reset current mode" restores sane defaults per mode (mode and chosen picture are kept).

The animated wallpaper engine

Wallpapers are bundles (dsh-wallpaper/1 format: a folder with a manifest.json + assets) with four renderer types:

  • video — any mp4/webm the browser can decode; per-wallpaper volume / speed / fit (hot-applied, no restart). Audible autoplay rejected by the desktop policy? It degrades to muted and restores sound on your first click.
  • web — a sandboxed iframe running any HTML page. Served HTML gets relative-URL rewriting plus a Wallpaper Engine API shim (wallpaperRegister* etc.), so most WE web wallpapers run unmodified — and every page can opt into live agent activity via window message events.
  • canvas — built-in programmed scenes (ships with a drifting-nebula starfield); adding a scene is one table entry.
  • character — a sprite-sheet mascot wired to a task state machine: idle (multiple clips rotating on a timer), busy, overloaded (threshold-configurable) — your companion naps, types and panics with your agents. The state bridge reads only turn metadata, never transcript content.

Wallpaper Engine import

Point the panel at your Steam workshop content folder (…\steamapps\workshop\content\431960) and it lists everything: video and web wallpapers convert into bundles in one click (nothing is written into the workshop folder; video bundles copy just the movie file). Scene-type wallpapers are flagged as unsupported with the reason. A CLI converter (dev-assets/we2dsh.py) is included for headless use.

Theme-mood courtesy prompts

Activate a wallpaper that clearly belongs to the opposite scheme — a bright movie on a dark UI, a night scene under a light UI — and a small toast offers a one-click theme flip through the app's official settings channel:

"The wallpaper has gone stargazing, but the UI left the lights on. Turn them off together?" 🌙 "The wallpaper woke up to daylight, but the UI is still in bed. Open the curtains together?" ☀️

Tone comes from the manifest, or is auto-detected by sampling video luminance. Every activation of a mismatching wallpaper re-asks; the only mute is your explicit per-wallpaper "never ask".

Fit and finish

  • Full i18n through the DSH locale service — the whole panel (and the prompts) follow the app's language setting live, English and Chinese out of the box.
  • The plugin panel and DSH's own system dialogs each have an independent opacity switch (both default to opaque in transparent/glass modes, so settings stay readable).
  • The settings panel scrolls itself inside the app's clipping layout, and native select popups honor dark mode.
  • Privacy by design: all routes are loopback-fenced; the activity bridge reads turn event metadata only — never session content.

Install

From a release tarball (recommended): download the .tgz from releases, then in DSH open Plugins → install from local package and give the tarball's absolute path. Fully quit DSH (tray included) and reopen — plugin code is cached aggressively.

From GitHub (tagged source carries prebuilt lib/, no build needed):

github:<user>/dsh-plugin-bg-studio#v0.4.2

From npm (if published):

dsh-plugin-bg-studio

⚠️ If the DSH plugin manager rejects install/uninstall with ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION naming some unrelated package, a same-day-published dependency is blocking the whole lockfile (a 24h supply-chain cooldown). Fully quit DSH and retry after the window, or see Troubleshooting.

Writing a wallpaper bundle

A bundle is a directory:

my-wallpaper/
├── manifest.json
└── …assets (movie / html / sprite sheet / scene id)
// manifest.json
{
  "format": "dsh-wallpaper/1",
  "name": "My Wallpaper",
  "description": "…",
  "author": "you",
  "type": "video",            // video | web | canvas | character
  "entry": "bg.mp4",          // video: file · web: html file · canvas: "scene:nebula" · character: mascot.json
  "tone": "dark",             // optional: dark | light — enables the theme-mood prompt
  "states": {                 // character only: clip names referenced by mascot.json
    "idle": ["nap", "wag"],
    "busy": ["type"],
    "overloaded": ["panic"]
  }
}

Character bundles add a mascot.json (sprite-sheet spec: frame size, fps, named clip ranges) — see dev-assets/wallpapers/wp-character-demo/ for a complete working example of every type.

Web wallpapers receive live agent activity as window messages:

window.addEventListener('message', (ev) => {
  const d = ev.data
  if (d?.source === 'dsh-bg-studio' && d?.type === 'activity') {
    // d.state: 'idle' | 'busy' | 'overloaded'   d.idleClip: current idle clip name
  }
})

Import bundles from the panel (any local folder containing manifest.json).

Troubleshooting

  • Install/uninstall blocked by ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION — a dependency published within the last 24h makes the desktop plugin manager validate the entire lockfile and fail. It self-heals after the window. Immediate workaround: fully quit DSH, then pnpm add/remove inside %DSH_HOME%\profiles\<name> with the system pnpm (it carries no such policy) and keep dsh.profile.bundles in sync.
  • Updated but behavior unchanged — fully quit DSH (tray included) and reopen; cached plugin code otherwise keeps running.
  • A web wallpaper shows blank — its scripts may use browser APIs the sandbox withholds; the shipped shim covers the Wallpaper Engine API family, anything else is a bug worth filing.

Development

pnpm install
node tools/build.mjs      # esbuild → lib/index.js (host ESM) + lib/client.js (ModuleLoader-wrapped)

# disposable test profile (never touches your desktop profile)
dsh devbg --from-default-profile web        # boots once, Ctrl+C
dsh plugin --profile devbg add "$(pwd)"
dsh --profile devbg                          # Web UI at 127.0.0.1:3080

Architecture in brief: a shared/ protocol (settings + bundle format), a Node host (settings store, media/bundle library with loopback-fenced routes, session/event activity bridge), and a web client (provider registry → four renderers, surface-token styling, i18n, mood prompts). Adding a renderer, a canvas scene or a bundle field never touches the host.

Test bundles live in dev-assets/wallpapers/; dev-assets/we2dsh.py is the headless workshop converter.

Roadmap

  • More built-in canvas scenes; Lottie / Spine runtimes for character bundles
  • Audio-reactive hooks for web wallpapers (page-side opt-in)
  • Zip bundle import
  • True window transparency on the Windows desktop build (blocked upstream — see deepseek-harness discussions)

Changelog

  • 0.4.4 — HTTP Range streaming for bundle assets (big movies pull in segments instead of one giant in-memory buffer) and a video freeze watchdog: a playing-but-not-advancing picture (stalled stream, decoder hiccup after a flicker) recovers itself within ~5 s.
  • 0.4.3 — video watchdog: external pauses (system sleep/wake, window-occlusion throttling, autoplay leftovers) auto-recover within a second; transient serve/decode errors self-heal with one reload.
  • 0.4.2 — full i18n via the DSH locale service (live language follow); localized type badges; English mode.
  • 0.4.1 — mood prompts on every mismatching activation (activation memory).
  • 0.4.0 — theme-mood courtesy prompts (tone declaration / video luminance sampling / one-click flip).
  • 0.3.x — WE web-wallpaper compatibility (relative-URL rewrite, WE API shim), video autoplay degradation, per-wallpaper settings, in-panel workshop import, mode-switch race fix.
  • 0.2.0 — animated wallpaper engine (bundles, four renderers, task activity bridge).
  • 0.1.x — picture / transparent / frosted modes, opaque-panel toggles, panel scrolling fixes.

License

MIT

Comments

Loading…

Similar plugins

dsh-wallpaper-engine

No screenshots

dsh-wallpaper-engine

by sakuraaa667

将wallpaper接入到deepseek harness中,可以设置dsh的动态壁纸

Themes & SkinsManifest valid

★ 11

MIT

JavaScript

Aug 18, 2026

dsh plugin --profile web add dsh-wallpaper-engine
dsh-use-wallpaper2

No screenshots

by yu502950715yang

把 Wallpaper Engine 动态壁纸搬进 DeepSeek Harness 的 Web GUI:浏览器内实时渲染 scene 壁纸(three.js + Rust/WASM 粒子模拟),支持视频与 web 壁纸,无需 Wallpaper Engine 运行时。

Themes & SkinsDevelopment & InfrastructureManifest valid

★ 4

↓ 635/wk

MIT

TypeScript

Sep 30, 2026

dsh plugin --profile web add @dsh-use/wallpaper-engine
dsh-wallpaper_share4

No screenshots

by YRN-playmaker

一键同步壁纸引擎各类动态场景壁纸的插件,设置应用启动项。A "wallpaper engine" synchronization plugin mounted on the deepseek harness can synchronize static wallpapers

Themes & SkinsManifest valid

★ 30

↓ 619/wk

GPL-3.0

JavaScript

Oct 4, 2026

dsh plugin --profile web add dsh-wallpaper_share

by SciGeoLight

DeepSeek Harness wallpaper plugin / DSH 壁纸与磨砂玻璃插件

Manifest valid

★ 0

MIT

TypeScript

Aug 15, 2026

dsh plugin --profile web add dsh-wallpaper

✦

No screenshots

by Ayase34

DeepSeek Harness的壁纸管理插件

Themes & SkinsManifest valid

★ 13

MIT

JavaScript

Oct 1, 2026

dsh plugin --profile web add wallpaper-plugin

by youzhoujiMrLiu

Wallpaper Engine–style wallpaper for the DeepSeek Harness web GUI: custom images, GIFs, and videos as your app background|仿 Wallpaper Engine 的壁纸插件,支持图片 / GIF / 视频自定义背景

Manifest valid

★ 3

MIT

TypeScript

Aug 18, 2026

dsh plugin --profile web add dsh-ui-wallpaper