dsh-splash: A DSH plugin that turns the startup splash screen into a viewfinder

Preface

When DSH starts, the page is blank before waiting for the Host connection and workspace readiness. Most plugins either do not have a splash screen or provide a fake progress bar unrelated to real progress: it simply finishes based on time, appearing stuck when startup is slow, and looking like dragging time when it is fast.

dsh-splash is a DSH splash screen plugin maintained by dustcpu. The approach is to use the viewfinder itself as the progress indicator: the frame’s width, height, and border radius expand from a small window to fill the screen as the real startup progresses, and the percentage is drawn directly at the bottom inside the frame. It reads actual completion, not a timer. Below is an introduction to its mechanism, installation method, and adjustable parameters.

What is this

One-sentence positioning: A geometric DSH startup splash plugin. The main subject is a Penrose triangle rotating on an isometric rhombus sea under light. After the splash ends, it does not disappear but shrinks to the left of the input box to become a color-changing permanent marker based on workspace status.

  • Maintainer: dustcpu
  • Repository: https://github.com/dustcpu/dsh-geometric-splash (Package name: dsh-splash)
  • Engine constraints declared in package.json: node >=20、dsh >=0.2.1-rc.5 <0.3.0
  • License: MIT

It solves two things: providing readable real-time feedback during waiting, and giving a visual marker for the post-startup state that doesn’t take up space.

Core Features

No progress bar, no buttons, the viewfinder is the progress indicator. The frame starts at a 380px size and expands outwards to fill the window as progress moves; border radius changes synchronously; the current percentage is a large number at the bottom inside the frame.

Progress is real. Driven by five weighted milestones: plugin icon loading, Host connection, workspace ready, first frame font. Total weight 100. The movie rhythm is only responsible for walking through the progress timeline smoothly over time, but never exceeding real completion. See README.developer.md in the repository for specific weights and calculation methods.

Skip on any key. F5 / Ctrl+R still work; refreshing the page will not swallow the splash. After 100%, it pauses briefly, the triangle flies to the left edge of the input box, and shrinks into a permanent marker.

Permanent marker changes color, not speed. Rotation speed is constant. Colors switch based on four states: Thinking / Searching / Executing / Modifying file. Speed itself is only affected by inference strength, in four levels: Off / Low / High / Max.

10 sets of theme palettes. Taken from Monument Valley and Geometric Islands, accessed via the small triangle icon in the top navigation bar of the session to switch palettes.

Installation and Enabling

DSH Desktop version does not require the command line: Open the “Plugins” page, find dsh-splash in the plugin market, and click install. Note that the desktop profile is managed by the app itself; if you write the wrong profile name in the command line, it installs to another profile and you won’t see it in the desktop version.

Command line, for DSH Web version, or when you know your profile name:

dsh plugin --profile <your profile name> add dsh-splash

This command comes from README. Do not concatenate it into the dsh plugin add github:owner/repo format.

Two pitfalls, both marked in README:

  1. DSH sets a pnpm release wait period (minimumReleaseAge) for the profile. Newly released versions are blocked during this period, so add dsh-splash might install an older version. To install the latest version, specify the version number:
dsh plugin --profile <your profile name> add dsh-splash@0.2.3

pnpm will automatically add it to the profile’s minimumReleaseAgeExclude to allow it.

  1. Wrong profile name installs to a different profile, invisible in the desktop version.

Local development version installs via link:

dsh plugin --profile desktop add "link:C:\path\to\dsh-splash"

Link installation requires registering a line at the end of the profile’s cordis.patch.yml, like this:

- id: dsh-splash
  name: dsh-splash

This step is automatically completed when installing via market / bundle. After installation, refresh the page (Ctrl+R) to see the splash.

Typical Usage

Daily use does not require writing configuration; directly use the theme dock in the top navigation bar of the session: switch palettes, adjust splash duration (1–12 seconds), toggle the permanent marker. These settings are stored in the current page’s localStorage, no host configuration is written, and they do not sync across devices.

Use URL query parameters for troubleshooting and debugging; this path is suitable for quickly verifying when taking over someone else’s machine:

?dsh-splash=off            # Do not show this time
?dsh-splash=force          # Show even if page is already mounted
?dsh-splash-min=3800       # Minimum display time (ms), default 7200
?dsh-splash-palette=island-night  # Force specific palette this time
?dsh-splash-progress=real  # Switch to real progress this time (debug only)

The use of ?dsh-splash=force is to reproduce splash behavior after the page has finished mounting, for example to check the closing animation and permanent marker.

Suitable Scenarios and Notes

Suitable for people using DSH who want clear feedback during the startup phase, especially in scenarios where the startup chain is long or waiting for Host connection and workspace readiness takes a long time. It does not promise startup speed itself; it just presents the existing waiting clearly.

Boundaries to know, stated in README:

  • The splash is page-level. There is no injection timing between native Electron window creation and page script execution; this is handled by the desktop shell’s own window background.
  • When startup fails, it covers for at most 20 seconds then fades out, avoiding permanently covering error pages. Progress will not falsely report 100%.
  • The entire visual is drawn by code (canvas + SVG), without image or video assets, so the package is small and clear at any resolution.

Regarding security: The plugin runs with the permissions of the current dsh process. Fortunately, it contains no binary assets, so you can confirm by looking at the repo source code and MIT license before installing.

Conclusion

The value of dsh-splash lies not in the painting itself, but in the binding of the viewfinder to real progress: wherever the frame goes equals where the startup has gone, which is what a normal timer animation cannot do. The permanent marker continues this design—using color instead of speed to convey status, not interfering with the programmer’s intuition about “how fast it is spinning.”

Directory page: https://www.skillhub.cn/plugins/dustcpu/dsh-geometric-splash

GitHub: https://github.com/dustcpu/dsh-geometric-splash

Two documents outside the plugin source code are worth checking out: Real progress weights and debugging flow are in README.developer.md, and the publishing process to the plugin market is in PUBLISHING.zh.md.

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

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

Xiaoye