dsh-deep-whale/maid-atelier

1.2kStars41Forks26Issues2Watchers

Apply the "Deep Sea Maid Workshop" skin to DSH Web: dual maid background, deep sea blue lace UI, and chibi-style sidebar. Display layer only.

Language
TypeScript
Branch
main
dshdsh-plugin

Install

$ dsh plugin --profile web add github:Small-tailqwq/dsh-deep-whale/maid-atelier

Run the command above in your terminal to install this plugin via the dsh CLI. You can switch Profile in the top-right corner. New to dsh? Read the beginner tutorial

One-Line Description

maid-atelier is a display-oriented skin package for the DeepSeek Harness Web frontend, themed around "Deep Sea Maid Atelier" applied to conversation backgrounds, sidebars, decorative elements, and system icons. It does not modify any DSH behavior—no new services, no Cordis events, no model request interference—it merely dresses up the Web interface with a new skin.

Core Features

  • Replaces the conversation area background with "Dual Maid Atelier" illustrations, automatically switching between palace day and night scenes based on system light/dark theme
  • Decorates the collapsible sidebar: adds lace corner ornaments to the four corners, places a chibi character at the top of the sidebar, and adds "workspace/conversation line" labels to session tree nodes
  • Adds borders and bottom decorations to the input composer: the landing page features a large character display, which animates away to a safe edge within 560ms when switching to the conversation page
  • Automatically updates favicon, document title, and system theme-color to follow DSH themes (Deep Sea Blue #0b193f)
  • Listens to sidebar width via ResizeObserver, synchronizing CSS variables like --maid-sidebar-width in real-time—the curtain "instant-follows" with the sidebar width
  • Monitors DSH UI changes (settings panel, conversation activation, better-sidebar, cordis-panel, etc.) via MutationObserver, automatically mounting/removing corresponding state attributes on the body to provide hooks for CSS

Technical Implementation

  • Language: TypeScript (also bundled as ESM)
  • Key Dependencies: @deepseek-ai/cordis (^4.0.1, corresponding to DSH rc.6+), lightningcss (build-time CSS Modules compilation), tsdown (build packaging)
  • Architecture Pattern: Cordis ctx.effect lifecycle—when apply() starts, it registers a deactivator that restores all DOM, CSS, Observers, document.title, and theme-color in one go when DSH unloads or hot-swaps
  • Entry File: src/index.ts (placeholder with no host-side operations); the real implementation is in src/client/index.ts, built to lib/client.js (2.7 MB, containing all assets as data URIs)
  • Host Injection: Registered to the Web plugin whitelist via cordis.patch.yml as ui-skin-maid-atelier, switched mutually exclusively by DSH skin center (dsh-skin) based on home-layer

Use Cases

Users who want to transform their DSH Web frontend into a "Whale Girl" themed anime style; users who only want decoration without touching any DSH behavior; users concerned about offline capability and privacy, preferring all assets localized (no external network requests). Prerequisites: already using DSH Web frontend and willing to check/enable this skin in the skin center.

Prerequisites & Compatibility

DependencyMinimum VersionDescription
DSH0.1.0-rc.6+peerDependencies locks @deepseek-ai/cordis ^4.0.1; source comments explicitly note compatibility with rc.6 sidebar search behavior (src/client/index.ts:562)
NodeNot declaredRepository doesn't require Node; this skin loads only in browser, build completed by repository owner
PlatformCross-platformdsh.client.platform = "web" (package.json:14-22), runs on any desktop/mobile OS with modern browsers
Native ModulesNoneAll assets embedded as data URIs in client.js, no Node native modules or external resources required

Installation

dsh plugin --profile web add github:Small-tailqwq/dsh-deep-whale/maid-atelier

After installation, you must also check/enable this skin in the DSH skin center (dsh-skin) to trigger apply().

Configuration

This plugin requires no additional configuration. All "parameters" are hardcoded as fixed values in the source code (such as system chrome color #0b193f, sidebar three-tier width breakpoints 120/220px, ResizeObserver throttling, etc.). The skin center only handles on/off toggle.

ConfigTypeDescriptionDefault
NoneThis plugin requires no additional configuration

FAQ

Q: After installation, the interface shows no changes and no errors. What should I do?

A: Installation alone doesn't auto-activate. Open the DSH skin center (dsh-skin), check "Deep Sea Maid Atelier" in the skin list to enable; to uninstall, uncheck in the skin center—the deactivator will restore everything.

Q: Can this skin coexist with DSH's built-in themes or other third-party skins?

A: No. cordis.patch.yml uses home-layer mutual exclusive switching (wiring.id is ui-skin-maid-atelier)—only one skin can be active at a time.

Q: Can it be installed on desktop (Electron)?

A: No. package.json explicitly declares dsh.client.platform: "web"—the skin only injects into Web GUI; desktop shells use their own hosts.

Q: After switching skins, the settings panel won't open / sidebar width doesn't change?

A: Most likely because DSH is still loading or concurrent plugins like better-sidebar are modifying DOM, triggering the MutationObserver's recovery loop. Refreshing the page once lets both plugins' Observers establish properly.

Q: After uninstalling, the page layout is broken?

A: Rare, but theoretically possible: if forced uninstall before apply() completes, some body attributes may not be restored. Re-enable and uninstall again to recover.

Q: What happens if the browser disables WebGL acceleration?

A: When apply() starts, hasAcceleratedWebGL() detection fails, and data-maid-low-power is mounted on the body—CSS takes the lightweight rendering path—visuals slightly simplified, main functionality unaffected.

Q: Will dark theme auto-switch?

A: Yes. MutationObserver monitors data-ds-dark-theme attribute changes—switching to palace night scene background and corresponding decoration layers in dark mode.

Difficulty Level

Beginner — after installation, just check once in the skin center; no configuration, no commands, no keyboard shortcuts—ordinary users can get started easily.

Known Issues & Limitations

  • On browsers without WebGL acceleration or using software rendering, decoration effects downgrade to "low power" path (src/client/index.ts:163-178, 402)
  • Compatibility code exists for DSH rc.6's "sidebar search button mounts wide search and outside-click listener in the same click frame" behavior (src/client/index.ts:562-595)—if DSH fixes this behavior in the future, rc.6+ workspace versions will skip this recovery logic
  • All skin assets embedded in lib/client.js (~2.7 MB)—first installation requires downloading/extracting this package
  • Strictly prohibits any commercial use and requires preserving the three-creation attribution chain (see NOTICE); modified redistribution must be shared under the same terms
  • Development builds require working in the upstream dsh-web-ui repository's skins/maid-atelier/ directory (README.md:35-45)—this repository only distributes finished products