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.

  1. Install the plugin from the default branch:
dsh plugin --profile web add github:fuzz1og/dsh-font-settings
  1. Confirm the plugin is mounted. Search for the font-settings entry in the configuration output:
dsh --profile web --dump-config | grep -A2 font-settings
  1. 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-monospace and SFMono-Regular using @font-face, and reference the font’s FullName or PostScript Name using local(). Entering a font family name directly (such as Consolas) usually does not work.
  • Font size adjustment: The terminal font size (fontSize: 13) is hard-coded; the plugin scales it proportionally using the size-adjust property. 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 below 0.1.7-alpha.1 are incompatible because they lack the configForms service.
  • Terminal font limitations: local() only matches fullName and postscriptName; 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.