In DSH agent development, dynamic desktop wallpaper switching is a common requirement. Manually selecting and downloading wallpapers from the Wallpaper Engine Workshop is inefficient, and the network environment in China imposes many restrictions on accessing Steam. This plugin aims to solve these issues by integrating Steam Web API and steamcmd into DSH to enable automated wallpaper management.
Plugin Introduction¶
dsh-we-wallpaper-sync is an online utility plugin maintained by tiger0012 (MIT License). It is a reusable skill whose main function is to batch browse, search, and download Wallpaper Engine (Steam app 431960) Workshop wallpapers, and then connect the downloaded files to the DSH Skin Center so they can be used as an agent GUI background.
Core Features¶
-
Search and Preview
The plugin supports searching or browsing the Workshop via a Steam Web API Key. Users can filter by subscription count, trending status, recently published items, or keywords. The plugin fetches the title, subscription count, and preview image of each item, and generates a grid list for user selection. -
Batch Download
It usessteamcmdwith Docker to perform batch downloads. This approach does not require installing the Steam client or relying on system-level 32-bit libraries; it runs directly in a container environment. -
Network Workaround
For the network environment in China, the plugin supports using proxy settings to bypass Steam HTTP blocks and resolve cross-region login interception. This requires the egress IP to match the account’s usual location and configuring an appropriate proxy policy. -
Storage and Integration
After downloading, wallpapers are stored in the~/Steam/steamappsdirectory. Users need to configureskin-wallpaper.weLibraryDirsin~/.dsh/settings.yaml. Once the Wallpaper Engine bridge (WE bridge) in the DSH Skin Center scans theworkshop/content/431960folder under that directory, it can be applied as a GUI background.
How to Use¶
After installing the plugin, invoke the skill dsh-we-wallpaper-sync in DSH and follow the steps. You can also read the SKILL.md file inside the plugin package to view the specific commands.
Notes¶
The plugin runs with the permissions of the current DSH process. Before installation, review the source code and license. The following are key points to note during use:
- Do Not Hard-Code Credentials: The skill uses
<username>/<KEY>/<password>as placeholders; do not hard-code Steam API keys or passwords in configuration. - Network and Proxy: Steam’s HTTP domains are blocked in China, but
steamcmduses the Steam CM network (not HTTP), so direct connections often work. However, Steam compares the login IP with the account’s usual location; a mismatch can block login. Use a proxy whose egress IP matches the account’s location, and configureSocksProxyinsteam.cfg. - Container Path: The steamcmd directory inside the container is
/root/.local/share/Steam/steamcmd. Do not mount an empty directory over it (this can causesteamcmd.sh not found); use+force_install_dirto specify the storage path. - Third-Party Sites: It is not recommended to rely on third-party download sites (such as steamworkshopdownloader.io), because their backends often return 500 errors.
- Scan Path: The WE bridge scan path in the Skin Center is
<library root>/steamapps/workshop/content/431960.
Summary¶
This plugin provides DSH developers with a standardized entry point for managing Wallpaper Engine resources, eliminating cumbersome manual operations and network proxy configuration. The related directory and source code are listed below:
- Directory Link: https://www.skillhub.cn/plugins/tiger0012/dsh-we-wallpaper-sync
- GitHub Repository: https://github.com/tiger0012/dsh-we-wallpaper-sync