dsh-mobile:把 DSH Web 界面搬到手機上的客戶端插件

前言

DSH 的 Web GUI 按桌面佈局設計:左側欄常駐,主區佔剩餘寬度。在手機上打開時,側欄會被擠壓成很窄的一列,內容區也跟着變窄,點按輸入框還可能觸發 iOS 的聚焦放大。直接縮放或者用手機瀏覽器的桌面模式都不好用。

下面介紹的 dsh-mobile 就是針對這個場景的插件。它只做一件事:在窄屏下重排 Web GUI,桌面寬度下完全不介入。

這是什麼

dsh-mobile 由 cyilin36 維護,屬於客戶端類插件,定位是「Phone-responsive layout for the DeepSeek Harness(DSH)Web GUI」。它解決三個具體問題:

  1. 窄屏下側欄佔掉太多寬度,主內容區無法正常閱讀和輸入;
  2. 劉海屏和手勢條遮擋頁面邊緣內容;
  3. 觸屏上的雙擊縮放延遲、輸入框聚焦放大等瀏覽器默認行爲干擾操作。

插件在 DSH「一切皆插件」的思路下以 bundle 形式提供,按需裝入 profile 的 package.json 依賴。

核心功能

側欄變抽屜。 視口寬度 ≤ 1023px 時,側欄離開網格變成可滑出的抽屜,主內容佔滿整屏。會話頁左上角的 ☰ 打開抽屜;點遮罩、按 Esc、點會話行後自動收起。沒有會話頭的頁面(插件頁等)用左上角的懸浮按鈕打開。

安全區留白。 插件補上 viewport-fit=cover,用 env(safe-area-inset-*) 讓劉海屏狀態欄、底部手勢條不再壓住內容。

觸屏優化。 去掉雙擊縮放延遲,隱藏桌面拖拽調寬手柄,輸入框設置爲 16px 以避免 iOS 聚焦時自動放大頁面。

設置頁變單列。 頂部「設置」標題加一行可橫滑的分類標籤,選項全寬顯示。第三方設置頁(例如插件市場的設置)也保留這排標籤,不會出現點進去之後沒有返回入口的情況。

桌面惰性。 在 ≥ 1024px 寬度下,插件不注入佈局樣式、不運行 DOM 觀察器,只保留一個未被使用的樣式表和插槽條目。開發者在桌面瀏覽器上修改或調試 GUI 時不會受到插件影響。

安裝與啓用

安裝有兩種等價方式。第一種是在 DSH 的插件管理器裏安裝 GitHub 包:

install_bundle target: github:cyilin36/dsh-mobile

第二種是在 DSH Web 的「設置 → 插件」裏添加依賴 github:cyilin36/dsh-mobile。安裝完成後,插件列表中會出現「手機響應式適配 / Mobile Responsive Layout」。

profile 的 package.json 依賴和 bundle 列表由 DSH 插件管理器維護,不要把上面的命令手寫進配置。

典型用法

插件不需要配置項。手機或窄窗口打開 GUI 後即生效。

如果臨時需要桌面佈局,在頁面 URL 上加 ?dsh-mobile=off 即可恢復,適合在手機上排查 GUI 問題時對比兩種佈局。不需要繼續使用時,在插件列表裏禁用或卸載 dsh-mobile。

適用場景與注意

適合在手機上使用 DSH Web GUI、需要隨時查看會話或調整設置的開發者和運維人員;也適合用窄窗口調試響應式行爲的前端同學。

有幾點需要注意:

  • 插件只在 ≤ 1023px 生效,桌面寬度下不會改變佈局。
  • 不要和其他接管窄屏佈局的插件同時開啓,例如 dsh-pocket 的移動端適配,兩者會互相覆蓋樣式。
  • 插件依賴宿主 DOM 結構(AppFrame、data-sidebar-collapsed、data-* 會話鉤子)。DSH 大版本升級後若這些鉤子變動,需要跟隨插件更新;類名後綴兜底的裝飾規則失配時只會少一條裝飾,不會破壞佈局。
  • iOS Safari 的地址欄收放、軟鍵盤遮擋屬於瀏覽器自身行爲,插件只保證安全區和視口寬度正確。
  • 插件以當前 DSH 進程的權限運行。安裝前應先查看源碼(倉庫公開)和許可證(MIT),確認依賴和行爲符合你的部署要求。

小結

dsh-mobile 做的事很窄:把 DSH Web GUI 在窄屏下重排成抽屜佈局,補上安全區和觸屏細節,桌面寬度下完全惰性。沒有配置項,裝上即用。

  • 目錄頁:https://www.skillhub.cn/plugins/cyilin36/dsh-mobile
  • GitHub:https://github.com/cyilin36/dsh-mobile
羽毛球分组比赛记分
小程序二维码

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

小夜