DeepSeek Harness (DSH) Web UI relies on two CSS variables to control fonts: --dsw-font-family (UI) and --ds-font-family-code (code). In the early days, modifying these variables usually required manually editing style files or using complex CSS patching methods. The dsh-typography plugin uses a dual-surface plugin mechanism to encapsulate these two variables into two independent selector groups, making UI font and code font management intuitive.
Plugin Information¶
- Name:
gan332/dsh-typography - Maintainer: Gan332
- License: MIT
- Category: Fun Reskinning
- Description: A typography customization plugin for DeepSeek Harness, supporting independent switching of UI fonts and code fonts, with online presets and local font library support.
Core Features¶
- Independent Management of UI and Code Fonts: Splits the originally mixed CSS variables into two groups, each with its own preset cards, import editor, and persisted state, without interfering with each other.
- Online Presets: Built-in online fonts such as Inter, JetBrains Mono, and Noto Sans SC. Font files are distributed via the jsDelivr CDN; if offline, it automatically falls back to the system font stack.
- Local Font Library Without Conversion: Supports woff2/ttf/otf formats. Place font files directly in the
%DSH_HOME%\typography\directory, then click to apply them in the UI without transcoding. - Variable Font Friendly: Supports the “Variable · All Weights” option, which can generate an
@font-facerule withfont-weight: 100 900, accurately rendering font weights. - Default Option and Compatibility: Selecting “Default” outputs no styles, making it easy to coexist with other font-related plugins. Built-in migration logic is included and is compatible with different DSH
defineStoreentry points.
Installation and Activation¶
Different DeepSeek Harness entry points (desktop and Web) use independent profiles. During installation, select the corresponding command based on the entry point you actually use.
Desktop Installation:
dsh plugin --profile desktop add github:Gan332/dsh-typography
Web Installation:
dsh plugin --profile web add -w /path/to/dsh-typography
After installation, restart the corresponding entry point. Desktop installation records a recovery transaction and automatically verifies and cleans up after restart. After installation is complete, the plugin appears in Settings → General → Fonts (UI / Code).
Usage¶
Switch Fonts¶
Under the “UI Fonts” or “Code Fonts” group, click a preset card to apply it in real time. Select “Default” to restore the system font stack.
Import Custom Fonts¶
In the editing area of the corresponding group, fill in the three fields and click “Add”:
| Field | Description |
|---|---|
| Font Name | Any name, used to reference it in the font stack (e.g., MiSans) |
| Font Link | External link supporting woff2 / ttf / otf formats |
| Weight | 400 Regular · 500 Medium · 600 Semi-Bold · 700 Bold · Variable · All Weights. For static fonts, select the weight that matches the actual file weight; for variable fonts, select “Variable · All Weights” to get all real weights |
Adding the same font name with the same weight again overwrites the previous entry.
Recommended Font Link Syntax: Prefer same-origin relative paths to avoid link breaks caused by port changes.
Local Font Library¶
Copy font files (woff2/ttf/otf) to the %DSH_HOME%\typography\ directory.
copy C:\Users\fish\Downloads\MiSansVF.ttf $env:USERPROFILE\.dsh\typography\
After refreshing the page, click the font file name in the “Local Font Library” list of the corresponding group to apply it.
Notes¶
- Online Dependency: Using online presets requires an internet connection; when offline, only the system font stack is available.
- Local File Naming: Local library file names must start with a letter or a number (Unicode letters are acceptable; Chinese file names can be used).
- Hard-Coded Limitations: Some components (such as the workspace browser) hard-code an
Inter-first stack. Even with this plugin, those locations may still display Inter. - Plugin Conflicts: If
dsh-fontsis also installed, whenever a preset or custom font is selected in any group, this plugin’s stylesheet overrides the result fromdsh-fonts.
Conclusion¶
dsh-typography solves the fragmented DSH font configuration problem through a plugin-based approach. It provides a complete closed loop from online presets to a local font library and supports variable fonts well, making it suitable for developers who want to make fine-grained typography adjustments for code or the UI while keeping the system native.
- Directory Page: https://www.skillhub.cn/plugins/Gan332/dsh-typography
- Source Code: https://github.com/Gan332/dsh-typography