前言¶
在使用 DeepSeek Harness (DSH) 時,默認的設置彈窗通常是一個固定在屏幕中央的模態框,背景有遮罩。這種方式在查看長列表或複雜配置時,視野受限,且容易遮擋主界面。
dsh-fullscreen-settings 插件將這個體驗改成了類似 Codex 的整頁全屏設置頁:窗口鋪滿整個屏幕,移除遮罩,左上角提供顯眼的返回按鈕,內容區採用單列布局。
是什麼¶
這是一個把 DSH 設置彈窗重構爲全屏頁面的插件。
- 作者:functy23
- 許可證:MIT
- 定位:UI 樣式增強,不改變邏輯,不修改官方源碼。
核心功能¶
佈局與視覺¶
- 全屏鋪滿:設置頁鋪滿整個窗口,移除了原本的背景遮罩。
- 左上角導航:左上角增加了一個整行寬度的“← 設置”按鈕,箭頭與文字同色塊,點擊返回。這與主界面左側菜單的交互邏輯一致。
- 左右分欄:左側分類欄寬度爲 248px,帶髮絲分隔線;右側內容區單列最大寬度 880px,長行文字不再被拉伸過長。
- 系統級適配:在 macOS 上,頂部會自動留出空間給紅綠燈(紅黃綠按鈕),該留白同時也是窗口拖動區;窗口進入全屏時,留白自動收起。
技術實現¶
- 無哈希類名依賴:樣式錨定在官方的
div[data-shortcut-modal="settings"]屬性上,使用元素選擇器。即使官方產品更換構建工具或 CSS Modules 策略,插件樣式通常也能保持生效。 - 不修改官方文件:插件不修改、不打包官方任何文件。通過 Cordis Slot 機制修改渲染邏輯。
- 優先級控制:通過設置 slot priority 爲
-1000,覆蓋了官方默認的settings.header渲染。 - 關閉邏輯:關閉動作直接調用官方的
closeTopModal()函數,保證與快捷鍵關閉行爲一致。
安裝與啓用¶
執行以下命令將插件安裝到指定的 profile:
dsh plugin --profile <profile> add dsh-fullscreen-settings
安裝完成後,刷新頁面或重啓 DSH 客戶端即可生效。
開發與測試¶
該插件無需構建步驟,源碼位於 lib/ 目錄。
在開發過程中,可以通過以下命令進行測試和校驗:
# 運行單元測試
node --test tests/
# 校驗代碼語法
node --check lib/client.js
兼容性與回滾¶
- 兼容版本:按 DSH 0.2.0-rc.1 實測。
- 升級安全:不修改、不打包官方文件。即使 DSH 升級導致樣式細節變化,最壞情況也只是樣式回退到默認狀態,不會破壞功能。
- 回滾:刪除對應的
cordis.patch.yml配置或通過插件管理界面卸載,刷新頁面後恢復默認居中彈窗。