# dsh-deep-whale

> 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.

## Metadata

- Author: [@Small-tailqwq](https://github.com/Small-tailqwq)
- Repo: <https://github.com/Small-tailqwq/dsh-deep-whale.git>
- GitHub: [Small-tailqwq/dsh-deep-whale](https://github.com/Small-tailqwq/dsh-deep-whale)
- Stars: 1,240
- Language: TypeScript
- Topics: `dsh`, `dsh-plugin`
- Forks: 41
- Open Issues: 26
- Last push: 2026-08-17T11:10:30.000Z
- Added: 2026-08-14T00:00:00.000Z

## Install

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

## Wiki

## 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
| Dependency | Minimum Version | Description |
|---|---|---|
| DSH | 0.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) |
| Node | Not declared | Repository doesn't require Node; this skin loads only in browser, build completed by repository owner |
| Platform | Cross-platform | dsh.client.platform = "web" (package.json:14-22), runs on any desktop/mobile OS with modern browsers |
| Native Modules | None | All assets embedded as data URIs in client.js, no Node native modules or external resources required |

## Installation
```bash
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.

| Config | Type | Description | Default |
|---|---|---|---|
| None | — | This 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

---

This document is auto-generated by [deepseek-plugin.org](https://deepseek-plugin.org). HTML page: [dsh-deep-whale](https://deepseek-plugin.org/plugins/Small-tailqwq/dsh-deep-whale/maid-atelier)
Wiki generated by AI (model: `MiniMax-M2.5`)
