Themes & Appearance
dsh-ui-background
ai-yue-love/dsh-ui-background · ★ 0
Local image/video wallpaper plus a token-based frosted-glass UI for the DeepSeek Harness Web client.
安装
dsh plugin --profile web add 'dsh-ui-background@0.8.3'从 npm 安装预构建包
For install and environment setup, plus plugin development tutorials, see DSH community docs ↗
README
Table of contents
Local image/video wallpaper plus a full-window frosted-glass treatment for the DeepSeek Harness Web client.
Status:
0.8.0, developed and verified against DSH 0.2.0-rc.2. Harness internals move during the RC period — re-verify after upgrading.
What it is (and why it does not stutter)
The glass is not produced by scanning the DOM. It overrides the official theme tokens:
ctx.theme.overrideTokens('dsh-ui-background', {
'--dsw-alias-bg-base': { light: 'rgba(255,255,255,.62)', dark: '…' },
'--dsw-specific-sidebar-fill': { light: '…', dark: '…' },
// plus three raised-surface / overlay tokens
})
DSH paints body, the app frame and the sidebar with those tokens, so:
- no DOM scanning, no
MutationObserver, no per-panelbackdrop-filter - turning it off disposes the token layer — the UI returns to the shipped palette
- the wallpaper is one
position:fixed; z-index:-1layer (pure CSS for images, a single<video>for video)
Features
- Sources: uploaded file, or an absolute local path (read-only; never copied or moved)
- Video wallpapers (
mp4/webm): looped, muted, paused when the tab is hidden - Framing:
cover/contain, zoom 50–300 %, horizontal/vertical anchor, draggable preview - Wallpaper Engine: scans the Steam workshop folder
431960and lists only directly playable entries - Recents: up to 12 entries with thumbnails and their framing, one click to restore, per-entry delete
- Uploaded files can be deleted individually; deleting the active one turns the background off
- Fully local: no network access, no telemetry
Install
dsh plugin --profile web add dsh-ui-background
Restart the Host afterwards. DSH builds its module resolution table at startup, so a freshly installed package cannot be imported in the running process.
Then open Settings → Background & Glass.
When this fits
- You want a local image or video behind the UI, with the panels translucent
- You do not want to re-frame after a switch: each history entry keeps its zoom and position
What it cannot do: render Wallpaper Engine scenes. scene.pkg needs WE's own engine; this plugin only reads image and video files.
Limitations
| Limitation | Why |
|---|---|
| Scene wallpapers cannot be used | scene.pkg is a Wallpaper Engine format that only its engine can render |
| Do not use WE preview images | Measured at 144–254 px; stretching to 1920 is a 7–13× upscale |
| Want a WE scene? take a screenshot | Run WE, press Win+Shift+S, then use the paste button (1920×1080) |
mkv / mov may not play |
Edge does not decode those containers; use mp4 / webm |
Security
- The Host reads only the single local file you configure, plus
project.json/ media / previews inside the Steam workshop folder - HTTP routes are loopback only; writes reject
sec-fetch-site: cross-site - Uploaded file names are sanitised; path traversal is rejected
- State lives in
$DSH_HOME/storages/dsh-ui-background/and is not removed when the plugin is uninstalled
License
MIT