前言¶
在 DSH Web GUI 中,當側邊欄摺疊時,中間聊天列的寬度被硬編碼爲 748px (--dsh-chat-content-width: 748px)。這導致在大屏幕上出現不必要的空白邊距。此外,歷史消息氣泡和統計行也有固定的寬度限制(525px 和 620px)。dsh-chat-width 插件通過注入覆蓋這些 CSS 變量的 CSS 解決了這個問題。
插件介紹¶
這是一個 DSH Web GUI 插件,由 AnakinCao 維護。它使聊天內容列適應屏幕分辨率,解決了側邊欄摺疊時寬度保持固定的痛點。
功能特性¶
- 屏幕自適應:使聊天內容列適應屏幕分辨率(從 748px 變寬)。
- 側邊欄摺疊處理:當側邊欄摺疊時,擴展中間區域。
- CSS 變量覆蓋:覆蓋 CSS 變量
--dsh-chat-content-width。 - 佈局擴展:覆蓋歷史消息氣泡固定寬度限制(525px)和統計行固定寬度限制(620px)。
- 動態調整規則:默認規則爲
max width = min(100%, clamp(900px, 72vw, 2560px))。
安裝¶
推薦使用以下命令安裝:
dsh plugin --profile web add https://github.com/AnakinCao/dsh-chat-width.git
安裝後請重啓 dsh web。
如果需要不重啓的方式,可以手動掛載:
1. 在 ~/.dsh/profiles/web/cordis.patch.yml 中追加以下內容:
- insert:
- id: dsh-chat-width
name: 'dsh-chat-width'
- 將倉庫內容放置在
~/.dsh/profiles/web/node_modules/dsh-chat-width/下。
請選擇一種安裝方法,不要重複掛載。
使用方法¶
插件提供了兩種調整寬度的方式。
代碼調整¶
編輯 lib/client.js 頂部的三個常量。DSH 客戶端 HMR 會熱更新更改(約 0.5 秒),無需重啓:
ADAPTIVE_RATIO(默認0.72)——視口寬度的比例MIN_WIDTH(默認"900px")——下限MAX_CAP(默認"2560px")——上限(4K+ 可提高此值)
控制台調整¶
也可以從瀏覽器控制台強制設置固定寬度(刷新後生效):
localStorage.setItem('dsh-chat-width.max', '1920px') // 固定 1920px
localStorage.removeItem('dsh-chat-width.max') // 恢復自適應
頁面加載時,控制台會打印當前視口和寬度規則。
注意事項¶
- 依賴環境:需要 DSH 0.1.0-rc.6 web profile client plugin system。
- 選擇器兼容性:使用
[data-phase]選擇器以確保在對話包更新(哈希類名變更)後依然有效。 - 入口文件:主入口
lib/index.js是一個佔位符,由加載器掛載。 - 許可證:MIT。
- 生態說明:本插件與 DeepSeek 或幻方無官方從屬關係,僅作爲社區目錄中的獨立項目存在。
總結¶
該插件解決了 DSH Web GUI 在大屏幕下佈局不緊湊的問題,通過動態計算寬度,讓界面在不同分辨率下都能獲得更好的利用率。