前言¶
DeepSeek Harness (DSH) 的 Web UI 支持通過插件擴展功能,但默認的字體配置往往無法滿足特定開發或閱讀場景的需求。dsh-font-settings 插件在「設置 → 通用」中提供了 UI 字體、代碼/等寬字體以及側邊欄終端字號的獨立設置入口,允許通過 CSS 棧或枚舉方式自定義字體,從而改善長代碼閱讀或終端交互的體驗。
插件簡介¶
- 名稱:
fuzz1og/dsh-font-settings - 維護者:fuzz1og
- 許可證:MIT
- 功能定位:DeepSeek Harness Web UI 插件,提供 UI 字體、代碼/等寬字體與側邊欄終端字號的設置能力。
安裝與啓用¶
安裝前請確保 DSH 版本滿足要求(>=0.1.7-alpha.1 <0.3.0)。升級 DSH 後需重新安裝本插件。
1、使用默認分支安裝插件:
dsh plugin --profile web add github:fuzz1og/dsh-font-settings
2、確認插件已掛載。在配置輸出中查找 font-settings 條目:
dsh --profile web --dump-config | grep -A2 font-settings
3、重啓 DSH 並刷新 Web UI 後生效。
核心功能¶
本插件提供了三種設置字體的方式,覆蓋了從通用配置到特定場景的深度定製。
1. UI 與代碼字體設置¶
在「設置 → 通用」中,提供 UI 字體和代碼/等寬字體的設置項。
- 自由文本:直接輸入 CSS font-family 棧(例如 'Fira Code', monospace),回車應用。
- 內置候選:面板內置了常用字體家族列表,點擊即可快速選擇。
- 兼容性:此功能在所有瀏覽器中均可用,且無需任何特殊權限。
2. 側邊欄終端字體與字號¶
側邊欄終端(xterm)的字體棧由插件寫死,因此無法直接修改。本插件通過 @font-face 別名和 CSS size-adjust 屬性來實現間接控制。
- 字體生效:必須使用
@font-face定義ui-monospace、SFMono-Regular等別名,並使用local()引用字體的 FullName 或 PostScript Name。直接輸入字體族名(如Consolas)通常無法生效。 - 字號調整:終端的字號(
fontSize: 13)是寫死的,插件通過size-adjust屬性按比例縮放。若別名不生效,字號縮放也會失效。
3. 本機字體枚舉(Chromium 桌面版增強)¶
在 Chromium 桌面版瀏覽器中,插件提供了「讀取本機字體」按鈕。
- 操作:點擊按鈕調用 window.queryLocalFonts() API。
- 結果:瀏覽器會枚舉本機已安裝字體,按 family 歸併後緩存到 localStorage,供下拉選擇。
- 限制:此功能需要安全上下文(HTTPS 或 localhost),且僅限 Chromium 桌面版。Firefox / Safari / Chrome Android 等環境按鈕會置灰。
注意事項與限制¶
- 權限:插件運行期零權限,不讀寫文件、不發起網絡請求、不訪問憑據。
- 版本兼容:要求 DSH
>=0.1.7-alpha.1 <0.3.0。低於0.1.7-alpha.1的版本因缺少configForms服務而不兼容。 - 終端字體限制:
local()只匹配fullName和postscriptName,不支持字體家族名或 typographic family 名。讀取本機字體後,確保輸入值與枚舉結果一致。 - 持久化:當使用遠程 GUI 打開時,偏好存儲在
localStorage中(per-device);在本地(loopback)時則寫入宿主配置。