dsh-sidebar-width:控制左側會話列表欄寬度的插件

DeepSeek Harness (DSH) Web UI 的左側會話列表欄默認有一個硬編碼的拖動下限,官方設定爲 264px。當屏幕空間有限或需要更緊湊的界面佈局時,這個限制會帶來困擾。dsh-sidebar-width 插件通過在 dsh web 啓動時修補客戶端 bundle 文件,直接調整這一數值。它不提供任何新的 UI 面板,僅專注於調整側邊欄的尺寸邏輯。

插件定位

這是一個由 garrisonz 維護的打補丁式插件,遵循 MIT 許可證。插件的核心價值在於繞過官方客戶端 bundle 的硬編碼限制,讓開發者能夠根據實際屏幕尺寸和偏好,自由控制左側欄的拖動範圍和默認展開寬度。

核心功能

該插件僅作用於左側會話列表欄的寬度控制:

  1. 調低拖動下限:突破官方 264px 的限制,允許側邊欄更窄。
  2. 自定義拖動上限:防止側邊欄過度佔屏,設定最大拖動寬度。
  3. 設定展開默認寬度:改變頁面初始加載時側邊欄的寬度。
  4. 兼容性:兼容兩代 store 結構(d.sidebar 與 d.layoutInfo.sidebar),並內置正則容錯邏輯。
  5. 冪等性:插件支持重複運行,升級 DSH 後重啓可自動重打補丁。

安裝與啓用

使用官方推薦方式通過 npm 安裝:

dsh plugin --profile web add dsh-sidebar-width   # npm(推薦)

安裝完成後,無需手動操作。插件會在 dsh web 啓動時自動檢測並修補 @deepseek-ai/dsh-client-ui-layout/lib/client.js 文件。首次運行會自動生成備份文件(如 client.js.dsh-sidebar-width.bak)。

配置方法

安裝後,編輯 ~/.dsh/profiles/web/cordis.patch.yml 文件,添加以下配置項:

- id: sidebar-width
  name: 'dsh-sidebar-width'
  config:
    min: 160          # 拖動下限,默認 180
    max: 420          # 拖動上限,默認保持 bundle 原值
    defaultWidth: 240 # 展開默認寬度,默認保持 bundle 原值

配置修改後,重啓 dsh web 即可生效。

工作原理

由於官方客戶端 bundle 中的寬度鉗制邏輯(clampWidth(px, 264, 420))和默認值(280px)是寫死在 @deepseek-ai/dsh-client-ui-layout/lib/client.js 文件中的,且運行時未暴露可修改的接縫,該插件採用“打補丁”的方式實現功能:

  1. 啓動時修補:dsh web 啓動時,插件讀取配置,對被服務的 client.js 文件進行正則替換。
  2. 安全備份:首次運行會創建 .bak 備份文件。
  3. 結構兼容:插件利用正則對不同的 store 結構(舊版 d.sidebar 與新版 d.layoutInfo.sidebar)進行容錯匹配,確保在不同版本下不會出錯。
  4. 冪等執行:通過標記機制,多次運行不會重複修改文件;若未來 bundle 結構發生重大變更,插件會安全拒絕修補。

卸載與回滾

使用以下命令移除插件:

dsh plugin --profile web remove dsh-sidebar-width

插件移除後,補丁文件不會自動回滾。如需還原,可手動將備份文件(client.js.dsh-sidebar-width.bak)改回原文件名。

總結

該插件適合需要精細控制 DSH Web UI 佈局的開發者。它通過極簡的配置文件實現了對側邊欄尺寸的完全控制,且機制透明(基於文件修補)。詳細信息可參考:SkillHub 目錄 或 GitHub 倉庫。

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

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

小夜