dsh-plugin-background
其他 活跃维护

dsh-plugin-background

haozhu11/dsh-plugin-background

支持上传本地图片作为全界面背景,内置主题感知可读性遮罩,默认采用WebP优先压缩策略,兼顾视觉个性与内容可读性,适配不同主题模式无缝切换。

1
Stars 标星
0
Forks 分支
1
Watchers 关注
0
Open Issues
JavaScript
主要语言
None
开源协议
38 KB
仓库大小
1 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:haozhu11/dsh-plugin-background
git clone https://github.com/haozhu11/dsh-plugin-background.git
git clone git@github.com:haozhu11/dsh-plugin-background.git
README.md main

dsh-plugin-background

Background image plugin for the DeepSeek Harness web UI (dsh web).

Pick a local image as the background of the whole interface, adjust a
theme-aware readability matte, or clear it — anytime, from a button at the
bottom of the sidebar. The image is compressed client-side and persisted in
IndexedDB, so it survives restarts with zero server-side storage.

⚠️ Third-party community plugin — not an official DeepSeek product.
Built for deepseek-ai/deepseek-harness.

(Add a screenshot under docs/ and reference it here once you have one.)

Features

  • Upload any local image (PNG / JPG / WebP) as the full-UI background
  • High-quality client-side compression (up to 4096 px edge, WebP-first, smooth scaling)
  • Theme-aware readability matte (0–80 %, white in light mode / dark in dark mode)
  • One-click clear, back to the default theme
  • Persisted in IndexedDB — large images, survives restarts, no server involved
  • Hot-reload friendly (pnpm run dev:web watcher), HMR-safe style/theme cleanup

How it works

  • Pure browser-side Cordis client plugin registered in the sidebar.footer.action slot.
  • The image lives on a single body-level background (background-attachment: fixed),
    with a theme-aware matte on top. --dsw-alias-bg-base is overridden to
    transparent and the sidebar fill is made transparent too, so the frame, chat
    column, details column and sidebar all let that one background show through —
    one seamless sheet across the whole UI (no per-region images that can misalign).
  • The readability matte is a color-mix layer over the base palette token
    (white in light mode / dark in dark mode), so text stays readable over any
    image; no DOM selectors are touched.

Requirements

  • A running dsh web profile (DeepSeek Harness, ≥ 0.1.0-rc.6)
  • pnpm (or npm exec with a writable cache dir)
  • A Chromium/Firefox-class browser

Usage

  1. Start dsh web and open the GUI.
  2. Click the Background button at the bottom of the sidebar (next to Settings).
  3. Choose a local image — it is applied immediately.
  4. Use the matte slider to balance readability; click Clear background to reset.

Development

git clone <repo-url> && cd dsh-plugin-background
node build.mjs          # build once → dist/client.js
node build.mjs --watch  # rebuild on src/client.js changes
  • src/client.js is the only file you normally edit (plain JS, React.createElement, no JSX/TS).
  • dist/client.js is committed on purpose so users can install without building.
  • After changing src/, rebuild, then restart dsh web (or run the pnpm run dev:web
    watcher from the harness checkout for hot reload).

Uninstall

cd ~/.dsh/profiles/web
pnpm remove dsh-plugin-background
# remove the ui-background row from cordis.patch.yml (if manual)
dsh web