Introduction¶
DeepSeek Harness’s Web GUI currently allows changing the color scheme and font size in Settings, but does not allow changing the font family. The core dsh-client-ui-theme package uses hardcoded font stacks in base.css (--dsw-font-family and --dsw-font-mono). The dsh-ui-font plugin solves this problem by adding two editable rows to the settings page to override these tokens, without modifying DSH installation files.
Installation and Activation¶
Install the package using the DSH plugin manager. After installation, you must restart the dsh web process for it to take effect.
dsh plugin --profile web add dsh-ui-font
dsh web
Refreshing the browser cannot load the new plugin; the service must be restarted.
Configuration¶
After installation, open Settings → General. The page adds two settings rows, corresponding to body text and code fonts:
- Body font: Applied to body text and UI surfaces.
- Code font: Applied to code blocks and monospaced text.
Click the Add font button on each row. The browser asks for font access permission. After authorization, the plugin reads the list of locally installed fonts. After selecting a font, it is displayed as a chip in the row. You can add multiple fonts to build a font stack. Chips can be reordered (to adjust fallback priority) and removed.
Storage and Defaults¶
The selected font stack is stored in the plugin’s own configuration entry and saved as a plain CSS font-family list. Default configuration:
| Setting | Default value |
|---|---|
sans |
"JetBrains Mono", "BIZ UDPGothic", "Noto Sans JP", "Yu Gothic UI", Meiryo, sans-serif |
mono |
"JetBrains Mono", "SF Mono", "Fira Code", Consolas, "Liberation Mono", monospace |
Note: JetBrains Mono does not contain CJK glyphs, so the default sans configuration falls back to BIZ UDPGothic and Noto Sans JP when the preferred font cannot render Japanese. If CJK support is needed, ensure that at least one Chinese-supporting font family is included in the fallback order of the font stack.
Manual Editing¶
The stored value is a plain CSS font stack and can also be overridden by editing the configuration file directly:
# $DSH_HOME/profiles/<profile>/cordis.patch.yml
- id: ui-font
name: dsh-ui-font
config:
sans: '"JetBrains Mono", "BIZ UDPGothic", "Noto Sans JP", sans-serif'
Notes¶
- Permissions and restart: The browser must be granted font access permission on first use. After installing the plugin,
dsh webmust be restarted; refreshing the browser page alone is not enough. - Security: Stored values are sanitized, removing characters that could lead to injection, such as braces, semicolons, and angle brackets.
- Override mechanism: The plugin uses
!importantrules to override inline styles injected by theui-layoutpresenter, ensuring precedence.