dsh-window-drag:在 DSH Desktop(macOS)恢復標題欄拖拽與雙擊縮放

前言

在 DeepSeek Harness Desktop 裏日常開發時,窗口能否像普通 macOS 應用一樣拖動、雙擊標題欄放大,直接影響多窗口並排時的效率。部分 DSH Desktop 構建會忽略 -webkit-app-region: drag,殼層自帶的 [data-window-drag] 區域無法拖動主窗口,有時只能靠交通燈或完全不能移動。dsh-window-drag 是社區維護的客戶端插件,用渲染進程裏的 window.moveBy() / moveTo() / resizeTo() 繞過 CSS 拖拽區,讓 Electron 主窗口恢復常見標題欄行爲。下面介紹它的定位、能力與安裝方式。

這是什麼

dsh-window-drag 由 angls4 維護,歸類爲客戶端插件。一句話:在 macOS 上的 DSH Desktop 中恢復「拖空白標題區移動窗口」和「雙擊標題區縮放(佔滿屏幕工作區,再雙擊還原)」。Windows、Linux 與普通瀏覽器標籤頁中插件不生效(通過 preload 寫入的 data-platform="darwin" 門控);全屏時也會禁用。

核心功能

拖拽區域

  • 頂部 48px 標題條(與殼層 --dsh-frame-top-clearance 一致),全寬可拖。
  • 側邊欄頭部塊(300×104px)也可拖。

插件不攔截窗口最邊緣的原生 resize 拖拽(由 macOS 窗口服務器處理,可能移出屏幕或跨顯示器);只覆蓋上述頂條與側欄頭。

雙擊縮放

雙擊上述區域時,按 macOS 習慣在工作區內放大窗口;再雙擊恢復之前的 bounds。若已放大狀態下開始拖拽,會先縮回先前尺寸並以光標爲中心(受屏幕邊界約束),再繼續拖動;此時雙擊同樣可還原。

啓動 rescue

若上一會話因原生邊緣拖拽等原因導致窗口完全在屏幕外,插件在啓動時會把窗口拉回屏幕工作區。

不搶交互的元素

按鈕、鏈接、標籤頁、輸入框、contenteditable、菜單、對話框,以及帶 data-no-window-drag 的元素不會被捕獲,點擊仍走原有邏輯。

安裝與啓用

在 DSH Desktop 中打開 Settings → Plugins(插件管理器),從以下 bundle 安裝:

github:angls4/dsh-window-drag

資料中也說明可 clone 倉庫後在插件管理器裏對 dsh-window-drag/ 目錄使用「Install bundle…」;安裝後立即生效,無需重啓。卸載時在插件管理器中移除 bundle 即可。

環境要求(README 原文):

  • DeepSeek Harness Desktop(插件針對 0.2.1-rc.5 開發)
  • macOS;其他平臺不受影響(插件處於 inactive 狀態)

典型用法

本插件無單獨配置項或 CLI:安裝並在 macOS 的 DSH Desktop 中啓用後,在頂欄空白處或側邊欄頭部按下拖動即可移動窗口;在同一區域雙擊即可在工作區內縮放或還原。無需在設置裏填寫額外字段。

實現上屬於 Cordis bundle:cordis.patch.yml 插入 window-drag 行,client.js 註冊 Client 模塊並掛載指針監聽;禁用或卸載時會移除全部監聽。

適用場景與注意

適合: 在 macOS 上使用 DSH Desktop,且遇到標題欄拖不動、無法雙擊縮放的用戶。

務必注意:

  • 插件在當前 DSH 進程權限下運行;安裝前建議閱讀 GitHub 倉庫 源碼與 MIT 許可證。
  • 僅 macOS DSH Desktop;不要在 Windows/Linux 上期待同等行爲。
  • 社區插件目錄 SkillHub 條目 爲獨立生態站點,與 DeepSeek / 幻方無官方從屬關係,並非官方應用商店。

結尾

dsh-window-drag 用客戶端側窗口 API 補上了部分構建裏缺失的標題欄交互,對 macOS 上長時間開 DSH Desktop 的開發者是小幅但實用的修復。更多信息見目錄頁與源碼倉庫:

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

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

小夜