dsh-theme-orbital: Turning the DSH desktop into deep blue (qujinting/dsh-theme-blue)

Preface

DSH (DeepSeek Harness) emphasizes “everything is a plugin,” but changing the desktop appearance often relies on writing custom CSS to override --dsw-alias-* variables. Changing a color requires looking up the token name again, and after exiting or upgrading, one must revert it manually. The qujinting/dsh-theme-blue (package name dsh-theme-orbital) introduced below packages a complete dark blue color scheme, entry animation, and session wallpaper into a pluggable theme. Once installed, it is ready to use; once uninstalled, it reverts cleanly.

It is maintained by qujinting, categorized as “Fun Cosplay,” and marked with 1 stars on the community directory page. The source code follows the MIT license. It solves the problem of presenting a unified deep sea blue aesthetic for the DSH desktop Web GUI without requiring users to manually edit files in the installation directory.

What is it

A one-sentence positioning: A DSH desktop theme plugin that transforms the Web GUI into a single-brand blue, depth-layered deep space interface, complete with a 4K entry animation and session wallpaper at startup.

It is a third-party plugin on the community directory site and has no official affiliation with DeepSeek.

Core Features

The plugin achieves the cosmetic change by overriding DSH’s design tokens. The README lists the several layers it modifies:

  1. Design tokens: Override all --dsw-alias-* tokens for two schemes, plus --dsw-specific-* surfaces. Colors, borders, status colors, code blocks, menus, and scrollbars all follow DeepSeek Blue.
  2. Geometry: Adjust border radius steps, transition durations, and shadow layers to create a soft glass surface, low lift, and cold-tone borders.
  3. Ambience: Deep blue radial glow; scanline texture is disabled by default to avoid appearing as streaks over conversations.
  4. Structure: Frame bar, input box, session area, startup screen, and scrollbar.
  5. Composer: A slowly drifting color band on the edge of the input card, spilling light onto the wallpaper (drawn with ::before and box-shadow, without changing box size or adding DOM).
  6. Motion: Plays a 4K entry reel at startup, followed by a 900 ms cross-fade to reveal the interface; falls back to a built-in HUD self-check animation if the video source is missing.
  7. Window chrome: Only effective on Windows desktop, driving the window title bar color to avoid white button blocks during playback.
  8. Wallpaper: Cycles through character wallpapers, blurred and dropped behind session content; displayed for both new sessions and sessions with conversation turns.
  9. Controls: Provides a switch (≈ Deep Dive Theme) and replay (▷) at the bottom of the sidebar, allowing users to switch back to the native interface anytime without reinstalling.

Colors are taken from the README: BASE #050A14, PANEL #070F1C, SURFACE #0B1626, GLASS #1B1E25, brand color #4D6BFE, beam #8AA2FF, ink #E6EDFB, muted #55688A, and all hairlines are 14% of the brand color.

Note: This is a single “locked dark” solution and does not follow DSH’s appearance preference settings; even if set to light in the app, a deep blue projection is still rendered. To use the native light interface, please switch back to the classic UI via the sidebar controls.

Installation and Activation

The installation command from the README is as follows (note that link: points to the author’s local path and needs to be replaced with the local plugin directory before use):

# 1) Fully quit the DSH desktop app (the desktop profile refuses package changes while it runs)
# 2) Install (link to this directory)
dsh plugin --profile desktop add "link:D:/project/qujinting/dsh-plugin/theme"
# 3) Start DSH again

An equivalent approach is to add dsh-theme-orbital to dependencies (using link: to point to the directory) and write it to dsh.profile.bundles in $DSH_HOME/profiles/desktop/package.json, then run pnpm install under that profile.

Uninstall command:

dsh plugin --profile desktop remove dsh-theme-orbital

You must fully quit the DSH desktop app before installation, as the desktop profile refuses package changes while it runs.

Typical Usage

The default configuration of the plugin is written in cordis.patch.yml, and users can override it for id: theme-orbital in their own profile patch. Common items:

  • enabled: Master switch; set to false to disable any injection.
  • animation: hud | fade | none.
  • introVideo / backgroundVideo: Relative path to package root; an empty string falls back to the CSS HUD canvas or disables the wallpaper.
  • backgroundScope: always keeps the wallpaper behind active sessions, empty only displays it when there are no conversation turns.
  • backgroundOpacity / backgroundBlur and backgroundOpacityConversation / backgroundBlurConversation: Control opacity and blur values for empty sessions vs. active sessions.
  • playOn: always or cold (plays once per window session).
  • durationMs / holdMs / introTailMs: Minimum duration of the canvas, the freeze duration when the video actually ends, and when the cross-fade starts before the video ends.
  • titleBar: Handling of the native Windows title bar during playback, hide | blend | off.
  • scanlines / grid / glow: Scanline texture (default off), center bar glow, and glow intensity levels (also scaling the composer band).

introTailMs is key to the continuous visual feel: the attached video ends with about 1.5s of nearly static frames. The controller starts a 900ms cross-fade introTailMs before the video ends to avoid freezing on the last frame and doing a hard cut. If you care more about the last few frames, you can lower this value; setting it to 0 restores the “wait for video to end -> holdMs -> fade in” logic.

Regarding the built-in videos, two entry exports (120 frames and 60 frames 4K) and two loop backgrounds are provided in videos/. Self-provided mp4/webm is also supported; the plugin only serves video extensions and only provides them from within the package.

Implementation Details

DSH’s web side does not have a first-class “theme plugin” concept. The plugin borrows four seams: index injection (webserver/index-inject + webServer.collectIndexInjections()), token layer (using !important to override inline styles on <body>), surface override, and geometry layer. The README also notes that it only contributes a single line of Loader and index injection, does not write to the DSH installation directory, does not touch the Electron shell, and does not touch session data.

Use Cases and Notes

Suitable for DSH desktop users who want a unified deep blue aesthetic but don’t want to manually modify CSS. Installing it switches the interface theme and does not follow system appearance; if using other plugins that depend on --dsw-alias-*, you need to verify style priority yourself.

The plugin runs with the current DSH process permissions. Please check the source code and MIT license before installing, and note that the referenced video files are located within the package and are served only locally. The directory site is an independent community site, not the DeepSeek official app store.

Conclusion

dsh-theme-orbital converges the act of “cosplaying” into an installation command plus a set of configuration items. After uninstalling, the interface is restored cleanly, making it suitable for desktop users who want a change of flavor but are afraid of leaving residuals.

Directory page: https://www.skillhub.cn/plugins/qujinting/dsh-theme-blue
GitHub: https://github.com/qujinting/dsh-theme-blue

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye