haibala-aii/dsh-extensions-wallpaperskin
DeepSeek Harness 网页界面的 Wallpaper Engine 皮肤插件
项目介绍Project Overview
这是 DSH 网页插件,可在“扩展 > 外部”中选择本机 Wallpaper Engine 图片、视频或兼容场景纹理作为背景,并调节界面透明度;配置仅保存在本地。适合想把已订阅或自建壁纸用于 DSH 的 Windows 用户。它不执行粒子、SceneScript、网页壁纸等动态效果,不支持项目仅显示预览图。
This DSH web plugin uses local Wallpaper Engine media as the DSH background. It adds a picker under Extensions > External, supports original images, local videos, and compatible scene.pkg textures, and provides adjustable translucent surfaces with local configuration storage. Use it on Windows to apply already downloaded Workshop or personal wallpapers. It does not run particles, SceneScript, web wallpapers, or other dynamic effects; unsupported projects show only preview images.
请帮我了解并安装插件:【dsh-extensions-wallpaperskin】【https://github.com/haibala-aii/dsh-extensions-wallpaperskin】
把上面这条消息直接发给当前会话里的 DSH,让它帮你了解并安装。安装命令不一定准确,发给 DSH 更稳。Send this message to DSH in your current session. CLI install commands may not be accurate across systems — DSH will figure it out for you.
或使用命令行安装(适合开发者)Or use CLI install (for developers)
命令行安装CLI Install
dsh plugin --profile web add github:haibala-aii/dsh-extensions-wallpaperskin
把 haibala-aii/dsh-extensions-wallpaperskin 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
@haibala-aii/dsh-extensions-wallpaperskin
English | 中文
A DeepSeek Harness web plugin that uses local Wallpaper Engine media as the DSH background. It adds a wallpaper picker to Extensions > External, keeps the DSH workspace readable with translucent surfaces, and stores the selected wallpaper locally.
[!IMPORTANT] Image projects use their original image and video projects play their original local video. Compatible
scene.pkgprojects use the primary texture stored inside the package. Wallpaper Engine particles, SceneScript, puppet rigs, audio visualizers, and web wallpapers are not executed; unsupported projects retain their preview image.
Features
- Discovers Steam libraries on Windows through
STEAM_PATH, the Steam registry entry, and common installation paths. - Scans subscribed Wallpaper Engine Workshop items and local Wallpaper Engine projects.
- Streams MP4, WebM, M4V, and MOV files with browser-native muted looping playback.
- Reads PKGV scene packages and decodes PNG, JPEG, BMP, raw BGRA, and RLE-compressed TEX base textures.
- Opens from the installed
extensions-wallpaperskinrow under Extensions > External instead of adding another Settings page. - Separates the local library and Wallpaper Engine Workshop cache into tabs.
- Stages wallpaper and transparency changes until Apply wallpaper is pressed.
- Restores the saved wallpaper and transparency when the dialog is closed or Restore current selection is pressed.
- Applies local image, video, or compatible scene media as a full-window
coverbackground while keeping DSH content and navigation usable. - Provides a
0-70%surface-transparency control. The default is36%; the sidebar stays 14 percentage points less transparent for readability. - Keeps wallpaper files on the local machine and serves them only through the local DSH host.
Requirements
- Windows. Automatic Steam discovery currently targets Windows registry and drive layouts.
- DeepSeek Harness with the web profile.
- Node.js
^22.19.0or>=24.0.0, matching the package engine declaration. - Wallpaper Engine for Workshop and local-project discovery. The plugin can still load without Wallpaper Engine, but the picker will be empty.
If Steam is installed in a non-standard location, set STEAM_PATH to the Steam directory before starting DSH.
Installation
Install directly from GitHub into the DSH web profile:
dsh plugin --profile web add github:haibala-aii/dsh-extensions-wallpaperskin
Restart the web application after installation:
dsh web
For a local checkout, clone the repository and link its root directory:
git clone https://github.com/haibala-aii/dsh-extensions-wallpaperskin.git
dsh plugin --profile web add link:E:/path/to/dsh-extensions-wallpaperskin
The repository root is the installable package. There is no nested package directory.
Usage
- Open DSH and go to Extensions > External.
- Click the
extensions-wallpaperskinrow for@haibala-aii/dsh-extensions-wallpaperskin. - Choose Local library to see every discovered project, or Wallpaper Engine to see locally synced Workshop items. The Workshop link opens Steam when you need to subscribe to more wallpapers.
- Check the media label on each card: Original, Video, Scene texture, or Preview only. Click a card to stage the selection.
- Adjust Surface transparency to preview how much of the wallpaper is visible through the DSH base surface.
- Press Apply wallpaper to save both settings.
Closing the dialog before applying restores the saved state. Restore current selection also discards the staged wallpaper and transparency. Disable wallpaper removes the background without deleting any Wallpaper Engine files.
Wallpaper discovery
For every discovered Steam library, the host scans:
steamapps/workshop/content/431960
steamapps/common/wallpaper_engine/projects/myprojects
The scanner reads project.json when present. Image projects use the declared original image. Video projects use the declared video or the first supported video in the project directory. Scene projects follow scene.json, model metadata, and material metadata inside scene.pkg to find the primary TEX texture. Preview files remain thumbnails and runtime fallbacks.
Supported image extensions are PNG, JPEG, GIF, WebP, BMP, SVG, and AVIF. Supported video containers are MP4, WebM, M4V, and MOV; playback still depends on codecs supported by the browser.
The Wallpaper Engine tab is a view of Workshop files already downloaded to the machine. The plugin does not download Workshop items itself. Subscribe or create wallpapers in Wallpaper Engine, wait for them to sync, then use Scan local library in the dialog.
Configuration
The host stores configuration in $DSH_HOME/wallpaperskin.json. When DSH_HOME is unset, DSH's default home is used (~/.dsh). A saved configuration looks like this:
{
"enabled": true,
"selectedId": "workshop/1234567890",
"surfaceTransparency": 36
}
surfaceTransparency is an integer from 0 to 70. 0 keeps the DSH base surface opaque; larger values reveal more of the wallpaper. Invalid or missing values resolve to 36 in the client.
Host API
The browser client uses these local endpoints:
| Method | Path | Purpose |
|---|---|---|
GET |
/plugins/wallpaperskin/list |
Rescan and return available wallpapers, Steam library roots, and saved configuration |
GET |
/plugins/wallpaperskin/preview/<id> |
Return a wallpaper thumbnail |
GET |
/plugins/wallpaperskin/image/<id> |
Return the selected background image |
GET |
/plugins/wallpaperskin/media/<id> |
Return an original image, a ranged video stream, or a decoded scene texture |
GET |
/plugins/wallpaperskin/config |
Return the saved configuration |
POST |
/plugins/wallpaperskin/config |
Merge and save configuration fields |
GET |
/plugins/wallpaperskin/health |
Return plugin health and rendering mode |
The API is intended for the local DSH web client. It is not an authenticated public media service. Apply the same network-access controls to DSH that you use for other local-file capabilities.
Architecture
The package has two runtime halves:
lib/index.jsis the Host plugin. It discovers Steam libraries, selects original project media, provides ranged video responses, exposes the HTTP endpoints, and persists configuration.lib/scene-package.jsvalidates PKGV directories, resolves scene metadata, and decodes the largest TEX mip level without extracting files to disk.lib/client.jsis the browser plugin. It registers the Extensions overlay, renders the picker, previews draft changes, and applies image or video backgrounds with translucent DSH theme variables.
cordis.patch.yml inserts the Host plugin into the selected DSH profile. The dsh.client fields in package.json register the browser half.
Privacy and security
The plugin does not upload wallpapers, send telemetry, or call a remote wallpaper API. Wallpaper metadata, package textures, and video bytes remain on the machine and are read by the local DSH host. The only external navigation is the user-initiated link to the public Wallpaper Engine Workshop.
DSH serves selected media to its connected web client. Do not expose an untrusted DSH instance to the network, because any client that can reach these plugin routes can request discovered wallpaper media by id.
See SECURITY.md for vulnerability reporting.
Development
No build step is required. Edit the ESM sources in lib/, then run:
npm run check
npm pack --dry-run
To exercise the plugin in DSH, link the checkout to a disposable web profile, restart dsh web, and test the complete selection, preview, apply, restore, and disable flows.
Contributions are welcome. Read CONTRIBUTING.md, review the open issues, and include focused verification with behavior changes.
Project identifiers
- Cordis row id:
wallpaperskin - Package:
@haibala-aii/dsh-extensions-wallpaperskin - Browser extension row:
extensions-wallpaperskin - Host route prefix:
/plugins/wallpaperskin
License
Released under the MIT License.
nexu-io/open-design
freestylefly/awesome-gpt-image-2
anywhere-labs/dsh-desktop
walkinglabs/learn-harness-engineering
awesome-dsh-plugin/awesome-dsh-plugin
MemTensor/MemOS