dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
宫崎骏《起风了》主题皮肤:全屏电影壁纸配毛玻璃界面,交互色统一为天蓝,侧边栏与首页改用自绘矢量徽标,输入卡重绘为主题化占位文案的云海蓝胶囊,并为消息列加 40px 底部渐隐。
中文 | English
A The Wind Rises (風立ちぬ, Kaze Tachinu) theme for the DeepSeek Harness (DSH) Web GUI
Sky-blue glassmorphism · Cinematic sky wallpaper · Original vector logos · Composer re-skin · Themed placeholder copy · Session-stats pill · Message-list bottom fade · Unified scrollbars
What it is · Theme details · Drift-proof design · Quick start · Customize · FAQ · Known limits · License & asset copyright
dsh-kaze-tachinu-theme turns the DSH Web GUI into Miyazaki's The Wind Rises: a cinematic sky wallpaper behind every surface, translucent frosted-glass panels, sky-blue (#1C96B5) as the single interaction color, an original red-wing logo with a "The Wind Rises" wordmark in place of the sidebar brand and home-hero headline, a navy-glass composer card, and themed placeholder copy.
It is a standard dsh plugin package: one dsh plugin command installs it into a profile, it stays resident with DSH, no DSH source is modified, and uninstalling fully restores the page.
| Dimension | Native dsh web | dsh-kaze-tachinu-theme |
|---|---|---|
| Background | Solid / solid gradient | Cinematic sky wallpaper + global blur scrim |
| Surfaces | Opaque layers | Translucent frosted glass (backdrop-filter) |
| Brand | DSH default | Original red-wing logo (expanded) + paper-plane mark (collapsed) |
| Interaction color | DSH default | Sky-blue #1C96B5 (buttons/active/highlight/borders/scrollbars) |
| Composer | Default | Sky-navy glass capsule, themed placeholder copy |
| Session stats | Default | Centered slim glass pill + dim separators |
| Message-list bottom | Hard edge | 40px gradient fade (composer never clipped) |
| Install | — | One dsh plugin --profile web add ... command |
| Revert | — | Fully restored on uninstall |
A ~60-entry design-token overlay via the official theme.overrideTokens API: translucent background layers (the wallpaper shows through), low-saturation sky-blue borders, sky-blue interaction states, and status colors tuned to dark glass. Light and dark modes share one look. See docs/theme-tokens.md.
/kaze-tachinu/current.jpg (from assets/current.jpg), with a subtle dark gradient for readability;The composer is re-skinned as a navy glass capsule; placeholder copy is swapped by UI language (CJK detection: the Chinese UI always reads 風立ちぬ——让想法随风飘去). Current DSH's composer is a Lexical rich-text editor: the placeholder lives both in its data-placeholder / aria-label attributes and in a dedicated visible placeholder layer (absolutely positioned, class token ending _placeholder) — the engine syncs all three (legacy <textarea placeholder> included), and a MutationObserver re-applies it after host re-renders. Current DSH has a single composer box, so only the "Composer" column is visible; the "New-session" copy only appears on host builds that still provide a separate describe/new-session input.
| UI language | Composer (unified box) | New-session (only on builds with a separate box) |
|---|---|---|
| Chinese | 風立ちぬ——让想法随风飘去 | 風立ちぬ——让想法随风飘去 |
| English | 風立ちぬ。いざ生きめやも。 | Kaze Tachinu — let your thoughts ride the wind |
DSH natively scrolls the composer and the message list inside one container, so a plain mask would clip the composer. This theme sinks the scroll viewport into the pure message list: the outer scrollport becomes layout-only (composer pinned), the message list becomes the bounded scroller and carries the 40px bottom fade; at the very bottom, message text still sits fully above the fade.
The stats line above the composer ("20 turns · 185 steps | LLM …") is restyled as a centered glass pill: content-sized width, translucent navy background + blur to lift the text off the wallpaper, with dimmed separators.
Global sky-blue glass scrollbars for Chromium browsers, with a scrollbar-color fallback for Firefox.
DSH component class names are build-time hashes (.Md3f7G_*, ._7mWUNa_*, .wSkVaW_*, ...) that change on frontend upgrades. In the past, such drift disabled the scroll sink — the outer scroller was hidden while nothing took over, leaving the chat unscrollable.
Since v2 the theme uses runtime location + safe fallback:
bundle/client.js, plugin/client.js and skin/.../hooks.mjs:
[data-conversation-scroll], [data-slot="conversation.session"], [data-chat-flow]) plus the class suffix (…_scroll, from the component author's own naming, stable across builds);data-kaze-scroll (conversation root), data-kaze-scroll-inner (inner scroller), and data-kaze-stats / data-kaze-stats-sep (stats pill and separators, found by text signature inside [data-composer-seat]);data-kaze-* attributes.console.warn.Marker probe (open a session's Chat tab, then run in the console; expected 1 / 1 / 1 / 2):
console.log('kaze-scroll root=', document.querySelectorAll('[data-kaze-scroll]').length,
'| inner=', document.querySelectorAll('[data-kaze-scroll-inner]').length,
'| stats=', document.querySelectorAll('[data-kaze-stats]').length,
'| conv-scroll=', document.querySelectorAll('[data-conversation-scroll]').length);
Remaining hash-class selectors are decoration only (home-hero logo, sidebar brand, composer highlight/hint) — a drift there is a local visual regression, never a usability break.
Browser: the theme uses backdrop-filter glass, custom scrollbars and CSS masks heavily — use Microsoft Edge or Google Chrome. Firefox degrades (scrollbars, masks).
dsh web booting;dsh plugin shells out to it; Node's corepack works).%APPDATA%/dsh-desktop/harness/profiles/ (point DSH_HOME there when using the CLI).dsh plugin --profile web add dsh-kaze-tachinu-theme
dsh web # restart DSH
or straight from GitHub:
dsh plugin --profile web add github:suuuuunamei/dsh-kaze-tachinu-theme
Wallpaper and the sidebar logo appearing means success. It stays resident; no per-session installs.
dsh plugin --profile web add file:/absolute/path/to/dsh-kaze-tachinu-theme
# or, live-link your edits:
dsh plugin --profile web add link:/absolute/path/to/dsh-kaze-tachinu-theme
Windows: a cross-drive
file:E:/...spec is resolved wrongly by pnpm. Create a junction inside the profile dir and install relative to it, e.g. inprofiles/web:mklink /J kaze-local E:\absolute\path\dsh-kaze-tachinu-themethendsh plugin --profile web add file:./kaze-local. Re-run that add after each repo change to refresh thefile:snapshot.
dsh plugin --profile web update dsh-kaze-tachinu-theme # then restart
# disable without uninstalling: remove "dsh-kaze-tachinu-theme" from dsh.profile.bundles in the profile package.json
dsh plugin --profile web remove dsh-kaze-tachinu-theme # then restart
Copy the whole skin/kaze-tachinu/ folder to ~/.dsh/skins/kaze-tachinu/ (DSH Desktop: %APPDATA%/dsh-desktop/harness/skins/kaze-tachinu/) and refresh — it appears under Settings → skin center. Manually dropped skins run without the hooks.mjs enhancements because of the provenance gate (visuals are complete; the runtime scroll sink, stats pill and placeholder copy need hooks). Use either the plugin or the skin route, not both.
Clone and install with link: (see local dev above).
assets/current.jpg (keep the filename), hard-refresh.assets/logo/, hard-refresh.themeCopyFor(text) in the runtime engine by UI language (three in-sync copies: bundle/client.js, plugin/client.js, skin/.../hooks.mjs). Chinese is unified to 風立ちぬ——让想法随风飘去; the English composer reads 風立ちぬ。いざ生きめやも。, and a separate describe/new-session box would read Kaze Tachinu — let your thoughts ride the wind. Restart to apply.bundle/client.js / skin/kaze-tachinu/skin.css plus decorative styles; restart and hard-refresh. See docs/theme-tokens.md.A standard dsh plugin bundle: package.json declares dsh.bundle/dsh.client; dsh plugin add mounts it into the profile.
bundle/host.js # Node host half: serves /kaze-tachinu/* assets (wallpaper, logos)
bundle/client.js # Browser half (./client export): tokens + decoration + runtime scroll/stats engine + placeholders
plugin/client.js # Cordis dynamic-injection source of the same logic (usually irrelevant)
cordis.patch.yml # Plugin manifest mounted by dsh plugin add
assets/ # Wallpaper and original-vector logos
skin/kaze-tachinu/ # skin-center package: skin.json + skin.css + patches.css + hooks.mjs
All side effects (tokens, style tags, listeners, DOM markers, routes) are tied to the plugin lifecycle and fully revert on disable/uninstall.
Make sure the command targeted --profile web; hard-refresh the browser (Ctrl+F5); check the dsh web log for [kaze-tachinu-theme] host half active.
Re-run the install command — usually a pruned or broken profile node_modules.
Run the marker probe above: if the three data-kaze-* counts are 0 while conv-scroll=2, an outdated client bundle is loaded — install the current repo version and fully restart. If the markers are 1/1/1 and it still won't scroll, open an issue with the console [kaze] … warnings.
Since v2 the scroll sink, bottom fade and stats pill are hash-free (runtime located, safe fallback — at worst decoration degrades). Only purely decorative selectors (hero logo, sidebar brand, composer highlight/hint) may need a small retarget after an upgrade. Open an issue with a screenshot.
The theme is designed as dark glass over the wallpaper and shares one look across light/dark modes, so a dimmer feel in light mode is expected. You can brighten the glass tokens yourself (see Customize → Colors).
Token layers stack but visuals fight. Enable one theme-style plugin at a time.
Code is MIT licensed.
Wallpaper artwork in assets/ derives from promotional material of The Wind Rises (2013); rights belong to Studio Ghibli, Nibariki, KDDI, Toho et al. Logos in assets/logo/ are original in-repo vector work. This repository is for personal desktop decoration only: it claims no rights and makes no profit; materials will be removed on request of the rights holders.
feat(client): fix xxx); no emoji in code/docs/commits;Enjoying the theme? Star it.