The core design philosophy of DeepSeek Harness (DSH) is “everything is a plugin”. When building or using Web conversations, the page background is usually fixed. If you want to switch dynamic backgrounds based on mood or context, or add visual depth, static backgrounds are often insufficient. njuptlzf/dsh-dynamic-background is a background-switching plugin for DSH that lets users upload animated images or use solid colors, and achieves a smooth visual experience through timed switching and layered overlays.

This is a pure frontend plugin with no backend dependency. It uses the browser’s IndexedDB to store user-uploaded images and settings. The plugin mainly maintains background layers in the DSH Web interface, handles image uploads, format support (GIF, WebP, etc.), and automatically generated readability masks.

Core Features

  1. Multimedia Support
    The plugin supports uploading animated and static images, with formats including GIF, WebP, APNG, PNG, JPG, and SVG. Each image is limited to 25 MB. The upload interface supports multiple selection and drag-and-drop.

  2. Solid Color Palette
    A built-in 12-color solid palette (red, orange, yellow, green, cyan, blue, purple, pink, white, gray, black, brown) is provided. Click to add a color and apply it immediately to the current background.

  3. Switching Logic
    Timed switching is supported, with intervals from 3 to 120 seconds, defaulting to 15 seconds. Switching modes support sequential or random playback. The transition effect uses dual-layer opacity cross-fading and includes a slow Ken Burns zoom effect. The plugin automatically respects the system’s “reduce motion” preference.

  4. Readability Protection
    To prevent dynamic backgrounds from affecting text readability, the plugin automatically overlays an 84% transparent theme surface color mask on the chat content column ([data-chat-flow]), status bar, and conversation header.

  5. Display and Polishing
    Supports full display (contain) or fill (cover) modes. Optional polishing features include background blur (0-12px) and mask intensity (0-90%).

  6. Persistence and Runtime
    The plugin runs persistently. After closing the settings page, the background continues to switch automatically. All images and settings are stored in the browser’s IndexedDB and are automatically restored after restarting DSH or refreshing the page.

Installation and Enablement

Install using the official DSH command:

dsh plugin --profile web add github:njuptlzf/dsh-dynamic-background

After installation, restart dsh web and go to Settings → Dynamic Background to enable it.

Typical Usage

After entering the settings page, you can perform the following operations:

  1. Add Backgrounds: Click the 12-color palette to add a solid background, or upload local animated and static images using “Select Images” / dragging.
  2. Configure Parameters: Set the display mode (full display / fill), switching interval (3-120s), and transition duration (0.3-3s).
  3. Adjust Polishing: Adjust the background blur level (0-12px) and mask intensity (0-90%) according to your preferences.
  4. Control Playback: Use the bottom control bar to support random/sequential switching, play/pause, manually switch to the next image, and clear the list.

Applicable Scenarios and Notes

This plugin is suitable for users who want to personalize the DSH Web interface, display personal animated images, or add visual interest.

Notes:
* The plugin data is stored in the browser’s IndexedDB. If you clear the browser cache or data, the uploaded images and settings will also be deleted.
* The plugin is submitted as precompiled artifacts, so the installation process does not require a build step.