dsh-doc-focus:右側欄全屏讀文檔時保留懸浮主會話

前言

在 DeepSeek Harness(DSH)裏查文檔、預覽 Markdown 或 PDF、在右側欄開瀏覽器頁籤時,常見做法是點「全屏」把內容鋪滿窗口。原生全屏往往把主會話區擠沒或佈局變窄,想對照文檔繼續對話就要來回切佈局。社區插件 dsh-doc-focus(維護者 Altha-dt)只調整容器佈局:文檔仍佔滿窗口,主會話以底部居中懸浮卡片疊在上方,收起時可縮到右下角「對話」掛件,輸入與滾動狀態不丟。

這是什麼

dsh-doc-focus 是 DSH 客戶端插件,通過宿主公開的 DOM 標記適配右側欄與會話區,不讀取文件、不復制渲染器、不搬動 iframe,也不替換會話輸入服務。它解決的是「全屏專注看右側欄內容,同時不必離開主會話」的佈局問題;交互思路類似 Codex 式懸浮對話,但底層仍是 DSH 原生會話組件。

核心功能

下面介紹插件在 README 中明確寫出的能力。

支持的右側欄頁籤

支持所有原生右側欄頁籤,包括但不限於 better-sidebar 文件編輯器、Markdown、PDF、圖片、HTML 預覽、原生瀏覽器與第三方瀏覽器頁籤。具體格式能否打開取決於宿主與已裝查看器;插件保留原生查看器行爲。

全屏 + 懸浮主會話

  1. 全屏時文檔佔滿整個窗口,插件把主會話區改爲 position: fixed 的懸浮卡片(圓角、描邊、陰影),不再壓縮文檔高度。
  2. 卡片寬度爲 min(100vw - 48px, 1000px),居中疊在文檔之上;窄屏自動全屏時寬度收斂爲 min(100vw - 24px, 1000px)。
  3. 底部會話區默認高度約 260px,可拖到視口高度的 65%;拖動卡片上沿分隔條或用方向鍵微調。
  4. 輸入草稿、附件、模型選擇、發送與審批仍走 DSH 原生組件;插件不會自動發送任何消息。全屏與調整大小不會因本插件重新加載瀏覽器或清空表單。

收起與恢復

點「收起」只隱藏卡片並顯示右下角「對話」掛件,主會話 DOM 不卸載,草稿、附件與滾動位置保留。點掛件或「展開」即可恢復。收起狀態與高度寫入當前瀏覽器的 localStorage(鍵名 dsh-doc-focus:mode、dsh-doc-focus:height)。

退出全屏

點「退出全屏」恢復普通佈局。在非輸入控件、非模態彈窗內按 Escape 也可退出;瀏覽器 iframe 內的 Escape 由網頁自行處理,此時可點外部工具條退出。

窄屏與軟鍵盤

首次進入時若可視高度不足 400px,保持原生布局;已進入後若軟鍵盤壓縮可視區,會縮小布局並儘量保留輸入區。測試用例覆蓋軟鍵盤下掛件往返等場景。

安裝與啓用

插件以當前 DSH 進程權限在客戶端運行;安裝前建議通讀倉庫源碼與 MIT 許可證。宿主按 engines.dsh 判斷兼容性,不滿足時插件管理器會拒絕安裝,必要時可用 dsh plugin allow-version 對指定版本顯式放行。

從 GitHub 安裝(宿主插件管理器支持 git 源時,命令來自倉庫 README):

/Applications/DeepSeek\ Harness.app/Contents/Resources/runtime/cli/bin/dsh plugin --profile desktop add git+https://github.com/Altha-dt/dsh-doc-focus

安裝後宿主應自動重新組合 profile;若已打開頁面未同步,請刷新當前頁面。插件會以 icon.svg 與 locale/en.json、locale/zh.json 中的名稱與簡介出現在插件清單中。

項目 值
最低 DSH 版本 0.2.1-rc.1(engines.dsh)
開發驗證 DSH 0.2.1-rc.5(Desktop)
Node(構建) >= 20

本地從源碼開發時,README 給出 link: 路徑示例及 pnpm install、pnpm run build、pnpm test;本文不展開 clone 流程。

卸載:在 DSH 插件頁停用/卸載 dsh-doc-focus,或執行:

/Applications/DeepSeek\ Harness.app/Contents/Resources/runtime/cli/bin/dsh plugin --profile desktop remove dsh-doc-focus

停用時移除插件標記、樣式與工具條,恢復原佈局。

典型用法

按 README「使用」一節,可復現如下步驟:

  1. 在右側欄打開文件、瀏覽器或其他頁籤。
  2. 點擊右上角原有的「全屏」按鈕。
  3. 文檔保持整屏,主會話懸浮在窗口底部居中,可繼續查看回復與對話;按需拖動分隔條或方向鍵調整卡片高度。
  4. 需要更大閱讀面積時,點「收起」收進右下角「對話」掛件;點掛件或「展開」恢復。
  5. 讀完點「退出全屏」,或在外部區域用 Escape 退出(注意 iframe 內例外)。

切換右側欄頁籤時頁面是否保留,由對應宿主查看器的生命週期決定,與本插件的全屏佈局無關。

適用場景與注意

適合誰: 經常在 DSH 右側欄全屏讀長文、對照 PDF/Markdown/HTML 預覽或瀏覽器頁籤,又需要隨時在主會話裏追問或改提示的用戶。

限制(來自 README):

  • 第三方插件若有獨立於右側欄的全窗口浮層,不受此佈局管理。
  • 懸浮卡片是原生會話區域蓋在文檔之上,不是側線程;找不到匹配的會話或側欄 DOM 時保持原生布局;宿主將來變更 DOM 標記時需要插件適配。
  • 社區目錄 skillhub.cn 爲獨立站點,與 DeepSeek / 幻方無官方從屬關係;DSH 生態理念是「一切皆插件」,本文介紹的是社區維護的客戶端插件之一。

結尾

dsh-doc-focus 在不改動文件讀取與渲染的前提下,把「右側欄全屏閱讀」和「主會話常駐」合成一步:全屏看文檔,會話以懸浮卡片或右下角掛件形式留在手邊。更多細節與 issue 見 GitHub 倉庫;插件索引見 目錄頁 與 Altha-dt/dsh-doc-focus。

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

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

小夜