DSH Live Wallpaper
中文
为 DeepSeek Harness Web UI 提供动态壁纸与页面主题中心。插件完全运行在浏览器侧,不依赖 Steam、Wallpaper Engine、API Key 或额外 npm 依赖。
当前版本在 DeepSeek Harness 0.1.0-rc.7 上完成验证。
功能
- 四款离线程序化动态壁纸:极光、星云、落日流光、霓虹网格
- 通过 ShaderToy ID 或官方链接打开原始播放器,并在用户授权后将对应标签页捕获为壁纸
- 应用 HTTP(S) 视频、图片或网页 URL
- 临时应用本地视频、GIF 和图片
- 调整背景暗度、模糊、界面遮罩透明度和视频速度
- 5 套页面主题预设,并可分别自定义主题底色、强调色和按钮颜色
- 圆角、胶囊、直角、玻璃和 DSH 原生共 5 种按钮形态
- 系统无衬线、圆体、衬线、等宽共 4 种字体风格,以及 90%–115% 字号缩放
- 壁纸与主题可独立开关;关闭主题或卸载插件后自动恢复 DSH 原生外观
- 页面隐藏、系统开启“减少动态效果”时自动暂停可暂停的动画
- 除本地文件外,配置保存在浏览器 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.2.3
从 npm 安装
dsh plugin --profile web add dsh-live-wallpaper
素材使用方法
最简单、最稳定的方式是直接使用面板中的四款“内置动态”,它们不需要访问任何外部网站。
使用下载的视频:
- 在插件面板的“下载壁纸素材”中打开 Pexels 或 Pixabay。
- 在网站中选择作品并下载 MP4/WebM 文件,不要复制作品详情页地址。
- 回到插件面板,在“本地文件”中点击“选择视频、GIF 或图片”。
使用 ShaderToy:
- 可以点击“打开示例 XXcyRn”;也可以粘贴其他 ShaderToy ID 或官方作品链接后点击“1. 打开”。
- 官方播放器打开后,返回 DSH,点击“2. 捕获”。
- 在浏览器共享选择器中选中刚打开的 ShaderToy 标签页,而不是当前 DSH 标签页。
- 打开标签页和开始捕获都需要独立的用户操作,这是浏览器的安全要求。停止共享、刷新页面或重启 DSH 后需要重新捕获。
“视频 / 图片 URL”要求媒体直链,即在浏览器中打开后直接显示视频或图片;Pexels、Pixabay 等素材详情页不能作为媒体直链使用。
来源与安全
- ShaderToy 当前通过
X-Frame-Options: SAMEORIGIN禁止第三方 iframe。插件不会绕过该限制或下载作者源码,而是打开官方播放器,并仅在用户通过浏览器选择器明确授权后捕获该标签页。 - 远程网页在不带
allow-same-origin的 sandbox iframe 中运行;壁纸层默认不接收鼠标事件。 - 插件不会抓取、代理或绕过任何第三方壁纸市场的访问控制。
- 使用第三方视频、图片或 Shader 前,请确认其授权允许你的使用方式。
已知限制
- 浏览器不能在刷新后重新取得本地文件权限,因此本地文件壁纸仅在当前页面生命周期内有效。
- 远程服务器可能禁止跨站嵌入或热链;这时请下载文件后通过“本地文件”使用。
- ShaderToy 标签页捕获仅在当前页面生命周期内有效,刷新或重启后需要重新选择。
- 首次使用时,系统可能要求为浏览器开启“屏幕录制”权限;ShaderToy 的可用性仍受网络、WebGL 能力和作品自身许可约束。
开发验证
pnpm check
pnpm pack
许可证
MIT
English
DSH Live Wallpaper adds animated wallpapers and a page theme center to the DeepSeek Harness Web UI. It runs entirely in the browser and does not require Steam, Wallpaper Engine, an API key, or additional npm dependencies.
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
- Open the original ShaderToy player from an ID or official URL and capture that tab as the wallpaper after user approval
- 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 in browser
localStorage, except for local files
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.2.3
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:
- Click Open Example XXcyRn, or paste another ShaderToy ID or official work URL and click 1. Open.
- After the official player opens, return to DSH and click 2. Capture.
- In the browser sharing picker, select the newly opened ShaderToy tab—not the current DSH tab.
- Opening a tab and starting capture require separate user actions under browser security rules. Capture must be selected again after sharing stops, a refresh, or a DSH restart.
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
- ShaderToy currently blocks third-party iframes with
X-Frame-Options: SAMEORIGIN. The plugin does not bypass that policy or download authors' source code. It opens the official player and captures the tab only after explicit approval in the browser picker. - Remote pages run inside a sandboxed iframe without
allow-same-origin; 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.
- Remote servers may block cross-origin embedding or hotlinking. In that case, download the file and use the Local File option.
- ShaderToy tab capture lasts only for the current page lifecycle and must be selected again after a refresh or restart.
- The operating system may request Screen Recording permission for the browser. ShaderToy availability still depends on network access, WebGL support, and each work's license.
Development Verification
pnpm check
pnpm pack
License
MIT