dsh-font-wheel:用 Ctrl + 滾輪調整 DSH 工作區字號

前言

在 DeepSeek Harness(DSH)里長時間讀對話、看代碼塊和終端輸出時,字號往往只能靠設置頁或 Ctrl+= / Ctrl+- 一格一格改。若你更習慣在編輯器裏「按住修飾鍵滾輪縮放」的手勢,自帶快捷鍵能調字號,但沒有滾輪這一路。下面介紹社區插件 dsh-font-wheel:在工作區任意位置按住 Ctrl 滾動鼠標滾輪,按格增減字號,並與桌面端內置快捷鍵走同一套主題接口,改完會持久化。

這是什麼

dsh-font-wheel 由維護者 ZX-yiyuzheluoji 發佈,在 SkillHub 社區目錄中歸類爲「趣味換裝」。插件只做一件事:在 DSH 工作區(客戶端 web 平臺)監聽 Ctrl + 滾輪,每格 1px 調整字號;text、code、terminal 三檔同步變化,範圍沿用 ui-theme 規格(text 10–22px,code 10–16px,terminal 10–20px)。當前 npm 包版本爲 0.1.0,許可證 MIT,運行環境要求 Node >= 18;客戶端爲手寫 CommonJS,無構建步驟、零依賴。

核心功能

手勢與界面反饋

  1. 上滾放大、下滾縮小,每格 1px。
  2. 滾動時攔截 Ctrl+滾輪的默認行爲,頁面本身不會跟着瀏覽器縮放。
  3. 光標旁顯示當前字號的小浮層(默認如 16px),約 1 秒後淡出;到上下限時提示「已到上限」或「已到下限」。
  4. 觸控板一次手勢會連發多個 wheel 事件;插件在 lib/client.js 裏用 STEP_INTERVAL_MS(默認 55ms)節流,避免瞬間頂到邊界。

爲何走主題服務而不是改 CSS 變量

@deepseek-ai/dsh-client-ui-layout 的 presenter 會在每次 theme snapshot 時把字號寫回 body,直接改 --dsh-content-font-size 會被下一次 snapshot 覆蓋。插件因此調用主題服務入口,與內置快捷鍵一致:

ctx.get("theme").adjustFontSizes(+1)   // 同步快照 → publish → 異步持久化

只有在拿不到主題服務的宿主(例如無 UI 服務的殼、測試環境)才退回寫 body 上的 CSS 變量;那種環境沒有 presenter,寫入不會被蓋掉。有 @deepseek-ai/dsh-client-ui-theme(settings 命名空間 ui-theme)時,數值會落盤並在刷新後保留;無主題服務時仍可改大小,但不會持久化、也不會與設置 UI 同步。

宿主側「存活」探測(可選)

字號變化發生在瀏覽器事件裏,宿主進程默認看不到。宿主半註冊了一條只存內存的路由,客戶端每調一格會 ping 一次,便於無界面時確認插件在工作:

curl http://127.0.0.1:<dsh-web-port>/font-wheel/report
# {"ok":true,"value":{"px":16,"at":"2026-10-28T07:02:28.364Z"}}

不落盤;未加載宿主半時該路由返回 404。

明確不做的事

插件不註冊全局快捷鍵(不佔用 shortcuts),不替換主題、不改其他插件樣式、不發起模型請求;唯一寫入路徑是 ui-theme 已有的字號設置。

安裝與啓用

官方 README 給出的安裝方式如下。裝完後需 重啓一次桌面應用:新 bundle 會寫入 profile 組合,當前會話不會熱掛載(插件管理器可能報 state: "restart");重啓後正常加載,之後改 lib/ 下代碼通常刷新頁面即可(本地 link 時)。

# 本地目錄(符號鏈接:改 lib/ 刷新即生效)
dsh plugin --profile desktop add link:/absolute/path/to/dsh-font-wheel

# 從 GitHub 安裝(pnpm 拉 tarball,不需要 git)
dsh plugin --profile desktop add github:ZX-yiyuzheluoji/dsh-font-wheel

無 CLI 時,可在 profile 的 package.json 的 dependencies 增加 "dsh-font-wheel": "link:/absolute/path/to/dsh-font-wheel",並在 dsh.profile.bundles 末尾追加 "dsh-font-wheel",然後在 profile 目錄執行 pnpm install。倉庫附帶腳本會先備份 profile 的 package.json:

node tools/install-profile.mjs --dry     # 預覽將修改的內容
node tools/install-profile.mjs           # 修改 package.json 並 pnpm install
node tools/install-profile.mjs --file    # 複製目錄而非 link

典型用法

  1. 安裝並完成一次應用重啓。
  2. 打開 DSH 工作區,在任意可聚焦區域 按住 Ctrl,向上或向下滾動鼠標滾輪(或觸控板等價手勢)。
  3. 觀察光標旁浮層顯示的 px 值;需要與快捷鍵對照時,可用同一 session 試 Ctrl+= / Ctrl+-,二者應保持一致且不互相打架。
  4. 若需遠程確認是否在調字號,在已知 <dsh-web-port> 的前提下執行上文 curl .../font-wheel/report。

開發者在倉庫根目錄可跑冒煙測試(無需瀏覽器與完整安裝):

npm test        # node test/client.smoke.mjs && node test/host.smoke.mjs

適用場景與注意

適合:習慣 Ctrl+滾輪調字號的 DSH 桌面/Web 用戶;希望在對話、代碼、終端三檔聯動縮放且希望設置持久化的場景。README 寫明在 Windows 桌面版 DSH 上驗證過,Web 構建使用同一客戶端 bundle 約定。

注意:

  • 插件以當前 DSH 進程權限運行;安裝前請自行查看 GitHub 源碼 與 MIT 許可證,確認符合你的安全與合規要求。
  • 社區目錄 SkillHub 插件頁 爲獨立生態站點,與 DeepSeek / 幻方無官方從屬關係,並非官方應用商店。
  • 微調行爲可編輯 lib/client.js 頂部常量(如 HUD_IDLE_MS、HUD_OFFSET_Y);若只想在對話區生效或只改 prose 檔,README 說明了改監聽目標或把 adjustFontSizes 換成 setFontSize("text", next) 等方向,需自行 clamp 範圍。

結尾

dsh-font-wheel 把「Ctrl + 滾輪」接到 DSH 與內置字號快捷鍵相同的主題鏈路上,一格 1px、三檔聯動、能持久化,並帶節流與邊界提示。進一步瞭解與安裝:

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜