dsh-live-wallpaper
已验证dsh-live-wallpaper · v0.3.1 · MIT · Web 界面
A dependency-free live wallpaper and theme center for the DeepSeek Harness Web UI.
安装
dsh plugin add dsh-live-wallpaper 用 dsh --profile default --dump-config 确认 layer 已生效 —— 参见安装指南。
源码
标签
作者
说明文档
DSH Live Wallpaper
中文
为 DeepSeek Harness Web UI 提供动态壁纸与页面主题中心。插件不依赖 Steam、Wallpaper Engine 或额外 npm 依赖;无 App Key 时直接使用 ShaderToy 官方播放器,配置 App Key 后可获取源码并在浏览器 WebGL2 中本地渲染。
当前版本在 DeepSeek Harness 0.1.0-rc.7 上完成验证。
功能
- 四款离线程序化动态壁纸:极光、星云、落日流光、霓虹网格
- 粘贴 ShaderToy ID 或官方链接即可应用;App Key 可选
- 未配置 App Key 时使用官方 Embed,配置后优先本地渲染
Common + Image源码 - 应用 HTTP(S) 视频、图片或网页 URL
- 临时应用本地视频、GIF 和图片
- 调整背景暗度、模糊、界面遮罩透明度和视频速度
- 5 套页面主题预设,并可分别自定义主题底色、强调色和按钮颜色
- 圆角、胶囊、直角、玻璃和 DSH 原生共 5 种按钮形态
- 系统无衬线、圆体、衬线、等宽共 4 种字体风格,以及 90%–115% 字号缩放
- 壁纸与主题可独立开关;关闭主题或卸载插件后自动恢复 DSH 原生外观
- 页面隐藏、系统开启“减少动态效果”时自动暂停可暂停的动画
- 除本地文件和标签页捕获外,配置、ShaderToy ID 与已获取源码保存在浏览器 localStorage 中
本地安装
dsh plugin --profile web add ./dsh-live-wallpaper
dsh --profile web --dump-config
dsh web
打开 DSH 后,点击右下角的圆形壁纸按钮。
从 GitHub 安装
dsh plugin --profile web add github:hinayoung23/dsh-live-wallpaper#v0.3.1
从 npm 安装
dsh plugin --profile web add dsh-live-wallpaper
素材使用方法
最简单、最稳定的方式是直接使用面板中的四款“内置动态”,它们不需要访问任何外部网站。
使用下载的视频:
- 在插件面板的“下载壁纸素材”中打开 Pexels 或 Pixabay。
- 在网站中选择作品并下载 MP4/WebM 文件,不要复制作品详情页地址。
- 回到插件面板,在“本地文件”中点击“选择视频、GIF 或图片”。
使用 ShaderToy:
- 粘贴作品 ID(例如
XXcyRn)或完整官方链接,点击“应用”;无需 App Key。 - 未配置 App Key 时,插件直接嵌入 ShaderToy 官方播放器并保存 ID;刷新或重启 DSH 后会自动恢复。
- 如需本地源码渲染,展开“App Key(可选)/ 高级兼容”,从 ShaderToy Apps 取得 App Key 并保存。之后插件会优先获取
Common + Image源码并在本地 WebGL2 中编译。 - 源码通道或本地编译不兼容时,插件会自动退回官方播放器;标签页捕获仍保留为高级兼容方式。
“视频 / 图片 URL”要求媒体直链,即在浏览器中打开后直接显示视频或图片;Pexels、Pixabay 等素材详情页不能作为媒体直链使用。
来源与安全
- ShaderToy App Key 存放在 DSH 凭据服务中;浏览器只能查询配置状态,无法读回明文。
- Host 接口只接受同源 JSON 请求,并只访问固定的 ShaderToy 官方 API,不是通用网络代理。
- 插件仅获取作者允许通过官方 API 访问的源码,不抓取网页或绕过 Cloudflare 和作品访问控制。
- 仅固定的 ShaderToy 官方 Embed 使用
allow-same-origin;用户自定义远程网页仍在更严格的 sandbox iframe 中运行。壁纸层默认不接收鼠标事件。 - 插件不会抓取、代理或绕过任何第三方壁纸市场的访问控制。
- 使用第三方视频、图片或 Shader 前,请确认其授权允许你的使用方式。
已知限制
- 浏览器不能在刷新后重新取得本地文件权限,因此本地文件壁纸仅在当前页面生命周期内有效。
- 无 App Key 模式需要持续联网,并依赖 ShaderToy 官方 Embed 可用且作品允许嵌入。
- 远程服务器可能禁止跨站嵌入或热链;这时请下载文件后通过“本地文件”使用。
- 当前本地渲染支持一个
Image通道、可选一个Common通道且不含外部输入;Buffer A–D、纹理、音频、摄像头和立方体贴图会自动退回官方播放器。 - ShaderToy 官方 API 只返回作者标记为可通过 API 访问的作品;其他可嵌入作品会自动使用官方播放器。
- 本地 ShaderToy 渲染需要 WebGL2。高级标签页捕获仅在当前页面生命周期内有效,并可能要求浏览器的屏幕录制权限。
开发验证
pnpm check
pnpm pack
许可证
MIT
English
DSH Live Wallpaper adds animated wallpapers and a page theme center to the DeepSeek Harness Web UI. It requires neither Steam, Wallpaper Engine, nor additional npm dependencies. Without an App Key it uses the official ShaderToy player; with an App Key it can fetch source through the local DSH Host and render it with WebGL2.
The current version has been verified with DeepSeek Harness 0.1.0-rc.7.
Features
- Four offline procedural animated wallpapers: Aurora, Nebula, Sunset Flow, and Neon Grid
- Paste a ShaderToy ID or official URL and apply it with no App Key required
- Use the official Embed without a key, or optionally fetch and locally render
Common + Imagesource with a key - Use HTTP(S) video, image, or web page URLs as wallpapers
- Temporarily apply local videos, GIFs, and images
- Adjust background dimming, blur, UI overlay opacity, and video playback speed
- Five page theme presets, with independent customization of the base, accent, and button colors
- Five button styles: rounded, pill, square, glass, and native DSH
- Four font styles—system sans-serif, rounded, serif, and monospace—with 90%–115% font scaling
- Enable wallpapers and themes independently; disabling the theme or uninstalling the plugin restores the native DSH appearance
- Automatically pause supported animations when the page is hidden or the system requests reduced motion
- Store configuration, ShaderToy IDs, and fetched source in browser
localStorage, except for local files and tab captures
Local Installation
dsh plugin --profile web add ./dsh-live-wallpaper
dsh --profile web --dump-config
dsh web
After opening DSH, click the round wallpaper button in the lower-right corner.
Install from GitHub
dsh plugin --profile web add github:hinayoung23/dsh-live-wallpaper#v0.3.1
Install from npm
dsh plugin --profile web add dsh-live-wallpaper
How to Use Wallpaper Sources
The easiest and most reliable option is to use one of the four Built-in Animation presets. They do not require access to any external website.
To use a downloaded video:
- Open Pexels or Pixabay from the Download Wallpaper Media section in the plugin panel.
- Choose a video and download its MP4/WebM file. Do not copy the asset detail page URL.
- Return to the plugin panel and click Choose Video, GIF, or Image under Local File.
To use ShaderToy:
- Paste a work ID such as
XXcyRn, or a complete official URL, then click Apply. No App Key is required. - Without a key, the plugin embeds the official ShaderToy player and saves the ID so the wallpaper restores after a refresh or DSH restart.
- For local source rendering, expand App Key (Optional) / Advanced Compatibility, obtain a key from ShaderToy Apps, and save it. Future applications prefer fetching and compiling
Common + Imagesource locally with WebGL2. - If the source passes or local compilation are incompatible, the plugin automatically falls back to the official player. Tab capture remains available as an advanced compatibility option.
The Video / Image URL field requires a direct media URL—one that opens the video or image itself in a browser. Pexels and Pixabay asset detail pages are not direct media URLs.
Sources and Security
- The ShaderToy App Key is stored by the DSH credential service. The browser can query its configuration status but cannot read the saved plaintext value.
- The Host endpoint accepts same-origin JSON requests only and targets the fixed official ShaderToy API; it is not a general network proxy.
- The plugin only fetches source that authors allow through the official API. It does not scrape pages or bypass Cloudflare or work access controls.
- Only the fixed official ShaderToy Embed receives
allow-same-origin; user-supplied remote pages remain in a stricter sandboxed iframe. The wallpaper layer does not receive pointer events by default. - The plugin does not scrape, proxy, or bypass access controls for any third-party wallpaper marketplace.
- Before using third-party videos, images, or shaders, confirm that their licenses permit your intended use.
Known Limitations
- Browsers cannot recover local file permissions after a page reload, so local-file wallpapers remain available only for the current page lifecycle.
- Keyless mode requires a network connection and depends on the official ShaderToy Embed being available and allowed for the work.
- Remote servers may block cross-origin embedding or hotlinking. In that case, download the file and use the Local File option.
- Local rendering currently supports one
Imagepass, an optionalCommonpass, and no external inputs. Buffer A–D, textures, audio, webcam, and cubemaps automatically fall back to the official player. - The official ShaderToy API only returns works whose authors allow API access. Other embeddable works automatically use the official player.
- Local ShaderToy rendering requires WebGL2. Advanced tab capture lasts only for the current page lifecycle and may require Screen Recording permission.
Development Verification
pnpm check
pnpm pack
License
MIT