Introduction¶
DeepSeek Harness (DSH) uses a plugin-based architecture, allowing developers to extend the presentation layer of the Web UI through plugins. When developing or using the Web UI, background wallpapers directly affect visual immersion. The original plugin only supports static images and has technical defects such as failed frosted glass blur and black screen transitions when switching from video to image, resulting in insufficient readability in complex interfaces. This plugin is an enhanced version based on the original, focusing on fixing rendering compatibility issues and enhancing multimedia support.
What It Is¶
dsh-wallpaper-rotator (Enhanced) is an enhanced fork based on liceses/dsh-wallpaper-rotator. It runs as a DSH Web UI plugin, aiming to address rendering stability and multimedia support issues under dynamic backgrounds while retaining the original MIT license authorization.
Core Features¶
This plugin improves the background-switching experience and interface readability through the following mechanisms:
-
Multimedia Support and Seamless Switching
- Supports video backgrounds in
mp4,webm,mov, andm4vformats, with automatic looping and muted playback. - Images and videos are connected seamlessly during rotation with fade-in/fade-out effects, avoiding abrupt visual changes.
- Supports video backgrounds in
-
Independent Rendering of the Video Layer
- The video layer has an independent dimming layer and shares the “Wallpaper Dimming” setting with the image layer. When switching to a video background, the dimming gradient is not lost.
- The “Frosted Glass Blur” setting also applies to the video layer (the original CSS syntax error has been fixed).
- The limit for a single video file has been raised to 1GB (images remain 64MB).
-
Surface Neutralization
- Adds automatic removal of backgrounds from large opaque panels. The background colors of panels such as the sidebar, file tree, drawing panel, and input bar are automatically set to transparent, allowing the wallpaper to cover the entire page.
- Recognizes solid, semi-transparent, and gradient backgrounds, and removes decorative fade-out masks.
- Uses the
data-wp-neutralizedattribute and CSS!importantto ensure transparency is preserved during React re-renders, while protecting the plugin’s own video layer from being mistakenly cleared.
-
Compatibility and Fixes
- Frosted glass fix: Corrects the invalid CSS
filter: blur(blur(8px))in the original plugin, restoring normal operation of the blur slider. - Black screen fix: Resolves the black screen issue caused by the opacity of the
curlayer not being restored at the end of a video-to-image rotation. - rc.6 compatibility: Removes the deprecated client
timerservice and uses nativesetInterval,setTimeout, and a custom debounce implementation to ensure proper loading in newer DSH versions (rc.6).
- Frosted glass fix: Corrects the invalid CSS
Installation and Activation¶
Install the plugin using the official command-line tool:
dsh plugin --profile web add github:Jieice/dsh-wallpaper-rotator-enhanced
After installation, restart dsh web and go to Settings → Wallpaper Rotation to start configuring it.
Typical Usage¶
Configuration data is persisted in $DSH_HOME/wallpaper-rotator.json. Configurable options include:
- Resource management: Wallpaper folder path (supports a mix of images and videos), rotation interval (seconds/minutes/hours), sequential or random order.
- UI adjustment: Panel transparency, wallpaper dimming level, frosted glass blur radius (0-24px), and text shadow style.
Notes¶
- This enhanced plugin version uses native timers throughout and no longer depends on deprecated client services.
- Video files can be large (up to 1GB); loading speed depends on network bandwidth and host performance.
- The plugin runs with the permissions of the current dsh process. It is recommended to review the source code and license before installation.
Conclusion¶
dsh-wallpaper-rotator (Enhanced) provides a complete wallpaper solution for the DSH Web UI, from static to dynamic and from single-type to mixed media. By fixing rendering details and introducing video support, it improves both the aesthetics and practicality of the interface. For more details, see the plugin directory or the source repository.