Introduction¶
The Web UI of DeepSeek Harness (DSH) supports feature extension through plugins, but the default font settings often cannot meet the needs of specific development or reading scenarios. The dsh-font-settings plugin provides independent settings under Settings → General for the UI font, code/monospace font, and sidebar terminal font size. It allows customization through CSS font stacks or enumerated values, improving the experience of reading long code or interacting with terminals.
Plugin Overview¶
- Name:
fuzz1og/dsh-font-settings - Maintainer: fuzz1og
- License: MIT
- Purpose: A DeepSeek Harness Web UI plugin that provides settings for the UI font, code/monospace font, and sidebar terminal font size.
Installation and Enablement¶
Before installing, ensure the DSH version meets the requirement (>=0.1.7-alpha.1 <0.3.0). After upgrading DSH, reinstall this plugin.
- Install the plugin from the default branch:
dsh plugin --profile web add github:fuzz1og/dsh-font-settings
- Confirm the plugin is mounted. Search for the
font-settingsentry in the configuration output:
dsh --profile web --dump-config | grep -A2 font-settings
- Restart DSH and refresh the Web UI to activate the changes.
Core Features¶
This plugin provides three font-setting methods, ranging from general configuration to deep customization for specific scenarios.
1. UI and Code Font Settings¶
In Settings → General, settings are provided for the UI font and code/monospace font.
- Free text: Directly enter a CSS font-family stack (for example, 'Fira Code', monospace) and press Enter to apply.
- Built-in candidates: The panel includes a list of commonly used font families; click an item to select it quickly.
- Compatibility: This feature is available in all browsers and does not require special permissions.
2. Sidebar Terminal Font and Font Size¶
The font stack for the sidebar terminal (xterm) is hard-coded, so it cannot be modified directly. This plugin achieves indirect control through @font-face aliases and the CSS size-adjust property.
- Font activation: You must define aliases such as
ui-monospaceandSFMono-Regularusing@font-face, and reference the font’s FullName or PostScript Name usinglocal(). Entering a font family name directly (such asConsolas) usually does not work. - Font size adjustment: The terminal font size (
fontSize: 13) is hard-coded; the plugin scales it proportionally using thesize-adjustproperty. If the aliases do not take effect, font size scaling will also fail.
3. Local Font Enumeration (Chromium Desktop Enhancement)¶
In Chromium desktop browsers, the plugin provides a “Read Local Fonts” button.
- Operation: Clicking the button calls the window.queryLocalFonts() API.
- Result: The browser enumerates installed fonts on the local machine, groups them by family, and caches them in localStorage for dropdown selection.
- Limitations: This feature requires a secure context (HTTPS or localhost) and is limited to Chromium desktop versions. In environments such as Firefox, Safari, or Chrome Android, the button is disabled.
Notes and Limitations¶
- Permissions: The plugin requires zero permissions at runtime; it does not read or write files, make network requests, or access credentials.
- Version compatibility: Requires DSH
>=0.1.7-alpha.1 <0.3.0. Versions below0.1.7-alpha.1are incompatible because they lack theconfigFormsservice. - Terminal font limitations:
local()only matchesfullNameandpostscriptName; it does not support font family names or typographic family names. After reading local fonts, ensure the entered value matches the enumerated result. - Persistence: When opened through a remote GUI, preferences are stored in
localStorage(per device); when local (loopback), they are written to the host configuration.