Introduction¶
A Web GUI plugin for DeepSeek Harness (DSH). It aims to resolve the mismatch between the default UI font and code font and the local development environment, as well as the difficulty in unifying the visual style. Maintained by user v587d, it allows configuration through the Web UI or console to switch UI fonts, code fonts, and multiple themes (Border / Nord / Twilight / GitHub / Atom One).
Core Features¶
- Font Customization: Supports configuring UI fonts and code fonts separately by overriding the DSH default style variables
--dsw-font-familyand--ds-font-family-code. - Theme Switching: Provides multiple theme palettes by overriding
--dsw-alias-*tokens throughctx.theme.overrideTokens(light/dark tokens must be provided as pairs). - Instant Editing: Configuration can be edited directly in the Custom Skin section of the DSH settings page.
- Local Persistence: Preferences are stored in the browser
localStorage(keydsh-custom-skin.v1) and persist after a page refresh. - Wide Table Fix: Fixes the height jitter of wide tables on hover by stabilizing
overflow-xandpadding.
Installation and Activation¶
Use the official CLI to install the plugin:
dsh plugin --profile web add github:v587d/dsh-custom-skin
After installation, restart the Web process to load resources:
dsh web
Usage¶
- Open Settings: In the DSH Web UI, navigate to Settings -> Custom Skin (if the current DSH version supports
settings.sectioninjection). - Select a Theme: Choose a preset theme from the Color theme dropdown, such as
GitHub(default),Nord,Atom One, etc. - Configure Fonts: Enter the names of fonts installed on the local machine. For example:
- UI:
"Microsoft YaHei", sans-serif - Code:
"Fira Code", Consolas, monospace
- UI:
- Manual Configuration: If the settings page is missing, run the following command in the browser console to manually write the configuration:
localStorage.setItem('dsh-custom-skin.v1', JSON.stringify({
uiFont: '"Microsoft YaHei", sans-serif',
codeFont: '"Fira Code", Consolas, monospace',
theme: 'github' // 'default' | 'border' | 'nord' | 'twilight' | 'github' | 'atom-one'
}))
location.reload()
Notes¶
- System Font Dependency: The plugin does not package font files; ensure the target fonts are installed on the operating system.
- Plugin Conflicts: If other theme/skin plugins also define the same set of CSS variables, plugins loaded later will override the configuration loaded earlier.
- Uninstallation Residuals: After uninstalling the plugin, the configuration in
localStorageremains and must be cleaned up manually. - Development Constraint:
lib/client.jsmust use the classic script form (no top-levelexport/import); DSH loads it using<script src>. - Token Override Convention: Theme color overrides should use
ctx.theme.overrideTokens; do not manually write:rootoverrides. - Markdown Styling: The beautified CSS relies on the
[class*="_markdown_"]andbody[data-ds-dark-theme]selectors. - Table Jitter Fix: The plugin unconditionally outputs
--dsh-scrollbar-widthand uses!importantto fix the overflow-x of.md-table-wide; as a result, the horizontal scrollbar is always visible.