awesome-dsh-theme
v0.3.1
Published
A theme studio for DeepSeek Harness: original-path media, categorized Wallpaper Engine videos, native HD Scene snapshots and live Web wallpapers.
Maintainers
Readme
awesome-dsh-theme
A theme studio for the official Windows desktop version of DeepSeek Harness.
Choose a light, dark, or translucent preset, then customize the left sidebar, right sidebar, conversation, and composer. Settings use a quiet Apple-inspired interface with Geist typography, flat cards, and clear inheritance controls.
Features
- A separate, draggable and resizable Theme Studio panel, with maximize/restore.
- General settings and four configurable regions. The composer shares conversation media and has independent surface opacity, typography, and borders.
- Local images, local videos, and a categorized Wallpaper Engine catalog: direct videos, native HD static Scene snapshots, live Web wallpapers, and viewable resource/preset entries.
- Original file references: media is never copied, bundled, or transcoded.
- Per-field inheritance, automatic wallpaper colors, and unrestricted manual colors.
- Default-on automatic readability protection across wallpapers, regional prose, native caption controls, inline code, syntax highlighting, buttons, selections and notifications.
- Live preview, undo/redo, named themes, configuration mixing, JSON import/export, and media relinking.
- Changes persist only when you choose Apply. No saved drafts.
- Background video sound, volume, and visibility controls.
- Automatic wallpaper compatibility for full-page plugin surfaces, including Daily Learning / Daily Sticker. Other main pages inherit the Conversation region's wallpaper, material, colors and root typography.
- Optional startup video, played in full without skipping. Availability depends on verified desktop boot signals.
Scene is intentionally a single complete native frame. Live Scene animation, desktop wallpaper synchronization, layout editing, and additional plugin effects are outside this release. Web runs in Wallpaper Engine; its rendered pixels reach DSH without executing wallpaper JavaScript in DSH.
Verification status: installation and the Theme Studio entry were confirmed in official Desktop. Native Windows capture has been verified with a 3840 × 2286 Scene and a 1920 × 1080 Web project, including refresh, idle restart and cleanup. Automated tests cover Host/Client integration; this release's final appearance and performance in DSH still require desktop acceptance. HDR equivalence is unverified. Startup intro's formal enable control remains gated until its real readiness/failure signals are verified. Intro replay preview is available.
Install
Use DeepSeek Harness's official in-app plugin manager to install awesome-dsh-theme. Enable its bundle and open Theme Studio beside Settings in the sidebar footer. Drag its title bar, resize its edges, or use Maximize. If updating an installed version, fully exit and restart DSH to load fresh Host and Client code.
Do not install into the managed desktop profile using a standalone CLI or manually edit that profile's package or patch files. During development, the official plugin manager can install this workspace package by its absolute path.
The plugin has no installation build scripts. It uses the React and ReactDOM provided by DSH and does not install another React runtime.
Use
- Turn on Enable theme, choose a preset, and select a background.
- Switch to Modules to change a region. Untouched fields follow General; the composer follows Conversation. Changing one field creates only that override. Restore general / Follow conversation removes it. Set the composer's surface opacity to distinguish it without a second wallpaper or video player. Legacy composer media references remain in exports but are no longer rendered.
- Automatic colors follow the effective background brightness. Automatic readability protection is on by default, including existing themes. It calculates the least additional material needed for a 4.5:1 prose contrast target, independently per region. It preserves saved manual colors and opacity; exceptionally transparent text is made opaque only for rendering when no surface can make it readable. Turn protection off in General to keep the original canvas treatment.
- Choose Apply to save. Done or the panel's Close button asks how to handle unapplied edits. Point selection temporarily hides the panel; selecting a region restores it. Restarting or disabling the plugin discards unapplied edits.
Pictures and videos use 100% opacity, 100% scale, and centered cover by default. Video backgrounds loop and start muted; unmuting uses the configured volume. Hidden/minimized windows and collapsed sidebars pause their backgrounds. Losing focus alone does not pause them.
Readability is recalculated when media, colors, opacity or region settings change. Media protection covers the full RGB brightness range, including small highlights, image fitting and future video/Web frames. Small canvas samples suggest colors but never weaken that protection. Video uses a stable material rather than continuous color changes. Message elements avoid repeating inherited tint, and the composer replaces its parent's material in its own rectangle. Controls use paired opaque surfaces and foregrounds; code retains distinct, contrast-adjusted syntax categories. The titlebar receives its own paired fill. No wallpaper-specific exceptions or repeated manual repairs are required for these supported theme surfaces.
Plugin pages use the Conversation settings when they replace chat. Theme Studio automatically clears the background of page-sized layout wrappers while keeping controls, semantic content cards, menus and dialogs intact. DSH's boxless display: contents slot anchors are traversed to reach the actual plugin page. Page changes, layout resizing and delayed plugin mounts are detected automatically. Disabling the theme restores plugin styling. Primary, secondary and tertiary text tokens follow each region's text color; status colors remain available.
For plugin authors, data-adt-surface="page" explicitly marks a page backdrop and data-adt-preserve protects a subtree from automatic backdrop detection. The adapter inspects at most eight layout levels and 256 candidates per region. Closed Shadow DOM, cross-origin iframes, canvas-drawn interfaces, inline !important backgrounds and unusual layouts can require cooperation from that plugin; arbitrary third-party pages cannot be guaranteed to follow every theme setting. Base color tokens stay opaque so input surfaces and inverted text continue to render correctly.
Wallpaper Engine selection starts with Videos / Scene / Web / Resources and presets. Counts cover the full local library, and the last category is remembered. Choose a Steam library, its 431960 workshop collection, or a local projects directory if discovery fails. Use Load more within the selected category. Selecting a library does not apply a wallpaper automatically. Effects belonging to a Scene stay with that Scene rather than forming a separate file category.
For Scene and Web, keep Wallpaper Engine running on Windows x64. The bundled source-available capture helper opens an independent WE render window outside the desktop bounds and closes only its own named window. It never pauses, stops, or mutes your desktop wallpaper globally. Scene is captured at its original scene dimensions; Web is requested at the selected region's size × display pixel ratio. Frames remain in bounded memory; no converted media or disk cache is created. At most two distinct live Web sources run concurrently. Hidden backgrounds stop requesting frames, and their source closes after an idle interval.
Native selections default to Show complete (contain) to preserve the whole image; Fill region (cover) can crop when aspect ratios differ. Existing manual scale, position and other choices remain intact. Retry media refreshes the Scene snapshot. Catalog thumbnails remain small previews and are never the new native background's final image. References saved by 0.1.2 remain compatible; reselect an old Scene to switch from its preview to native HD. Startup intros accept videos only.
Native Web sound is managed by Wallpaper Engine, with no independent per-region sound control. The plugin does not promise 30 FPS or HDR equivalence; capture, transfer, display size and GPU load affect live performance.
At capture time the bridge reads the current Windows user's saved WE wallpaper properties, preferring the primary display (Monitor0), and applies them only to its own window. A unique other display is accepted when no primary entry exists. Missing, malformed or ambiguous settings use the project's defaults. The plugin never edits WE configuration; exports keep the project reference rather than copying WE's profile. Change properties in WE and use Retry media to refresh a Scene.
Startup intro is off by default. A saved enabled intro applies to the next actual app launch, once per Electron process lifetime. The app continues loading underneath; entry requires both full video completion and successful UI readiness. The last frame remains while DSH loads. Media or native boot failure returns to the native app. Replay preview is a separate test and can be stopped.
Media and portability
Choose files using the system picker or enter a real absolute Windows path. JSON exports contain configuration and a reference inventory, not media files. Moving or deleting a file does not erase its saved reference. Relink it, or use folder replacement to relink several references in a single edit. An unavailable region wallpaper falls back to General, then the preset surface, without changing your overrides.
Direct file inputs accept recognized raster images and videos. A recognized extension does not guarantee Electron decoding. SVG, HTML and JavaScript are not served as file media; Scene/Web projects use the separate authenticated native pixel route.
Development
Requires Node.js 24 or newer.
npm run build
npm test
npm run checkTo rebuild the optional native helper on Windows x64, use an existing MinGW-w64 compiler with Windows Graphics Capture ABI headers:
node scripts/build-native.mjs --compiler "<absolute path to g++.exe>"The result is artifacts/native/we-capture.exe; the distributable binary is assets/native/we-capture.exe. The script never downloads a toolchain. Native build tests use DSH_NATIVE_CXX or g++ on PATH. Installation does not compile or download an executable.
Host logic includes durable revision-checked storage, bounded authenticated RPC, descriptor-verified streaming with Range, bounded WE discovery, cancellation, and resource ownership. Some integration tests need local HTTP and Windows junction permissions.
Compatibility source contracts were inspected from official Windows DSH 0.2.0-rc.2 (Host protocol 4). Static contracts and Node tests do not establish desktop visual or media compatibility; runtime verification is tracked in the development records. Before release, verify installation, native interactions, startup signals, decoding, sound, and cleanup in the target desktop build.
Licenses
Plugin and capture-helper source are MIT. Bundled Geist font subsets use the SIL Open Font License (assets/fonts/LICENSE). Static compiler/runtime notices, including the GCC Runtime Library Exception, are included in assets/native/licenses. Wallpaper Engine itself and user-selected wallpapers are not bundled; they retain their own licenses.
