dsh-whale-widget-dock:讓小鯨魚桌寵跟隨 DSH 右側 Sidebar

前言

在 DSH Desktop 裏使用 dsh-whale-widget 小鯨魚桌寵時,掛件會自行維護位置與吸附邏輯,但右欄展開、摺疊或拖動改寬時,桌寵未必會貼着右欄左緣或窗口右緣對齊。若你希望桌寵始終「跟着右側 Sidebar 走」,又不想改掛件源碼或動它的文件,就需要一層只接管定位與吸附的伴生插件。下面介紹 UniMars 維護的 dsh-whale-widget-dock 做什麼、怎麼裝、怎麼用。

這是什麼

dsh-whale-widget-dock 是 dsh-whale-widget 的伴生插件:通過樣式與觀察器軟接管橫向定位,讓桌寵在右欄展開時右緣緊貼右欄左緣,摺疊時右緣緊貼窗口右緣(間距可配),並在右欄拖動改寬時實時跟隨。卸載本插件後掛件立刻恢復原樣;插件不修改掛件目錄下的任何文件。

維護者:UniMars。倉庫:https://github.com/UniMars/dsh-whale-widget-dock。社區目錄:https://www.skillhub.cn/plugins/UniMars/dsh-whale-widget-dock。當前 package 版本爲 0.3.1,許可證 MIT。

核心功能

右欄與桌寵位置的對應關係如下(資料中的默認與說明):

右欄狀態 桌寵位置
展開 右緣緊貼右欄左緣(gap 默認 0,可配)
摺疊 右緣緊貼窗口右緣(edgeGap 默認 0,可配;負值可再往裏壓)
右欄拖動改寬 實時跟隨,不做過渡跳變
鎖定 強制保持「右側吸附」,並壓制掛件貼左時的整隻鏡像翻轉

其他已覈實能力:

  • 菜單中在「吸附與翻轉」下一行增加 吸附到右欄 開關;取消勾選即解除接管。
  • 快捷鍵:Ctrl + Alt + L(macOS 爲 ⌘ + Alt + L)。
  • 默認 locked: true,鎖定狀態存於 localStorage,刷新與重啓後保持。
  • 依賴 dsh-whale-widget 的 .dshwv-root 與 DSH 0.2.x 右側 Sidebar 的 data-sidebar-right-panel / data-sidebar-right-open 標記;標記缺失時退化爲貼窗口右緣,不會報錯。

安裝與啓用

官方推薦用倉庫內的 PowerShell 安裝腳本(不是 dsh plugin add github:… 這類拼接命令)。裝完必須完全重啓 DSH Desktop(宿主只在啓動時收集一次 Web 外殼注入表)。

方式一:腳本(推薦)

pwsh -File .\install.ps1

腳本會:把本目錄複製到 %DSH_HOME%\local-plugins\dsh-whale-widget-dock;在 profiles\desktop\node_modules 裏建目錄聯接;在 profiles\desktop\package.json 的 dependencies 與 dsh.profile.bundles 裏登記;改動前自動備份 package.json。

卸載:

pwsh -File .\install.ps1 -Uninstall

方式二:手動

  1. 把本目錄放到 %DSH_HOME%\local-plugins\dsh-whale-widget-dock
  2. 在 %DSH_HOME%\profiles\desktop\package.json 裏增加依賴與 bundle(示例):
"dependencies": {
  "dsh-whale-widget-dock": "link:../../local-plugins/dsh-whale-widget-dock"
},
"dsh": { "profile": { "bundles": [ "…", "dsh-whale-widget-dock" ] } }
  1. 確保 profiles\desktop\node_modules\dsh-whale-widget-dock 能解析到該目錄
  2. 重啓 DSH Desktop

典型用法

菜單:打開掛件主菜單(菜單按鈕 / 右鍵 / 長按小鯨魚),在「吸附與翻轉」下一行勾選 吸附到右欄;取消勾選則位置控制權交還給掛件。

開發者工具 Console 調參(這一步用於查看或修改間隙與鎖定,改完後可調用 refresh() 立即重算):

// 查看
__dshWhaleDock.config
// 展開時留 6px 間隙、摺疊時貼死(0);負值表示再往裏壓幾個像素
__dshWhaleDock.set({ gap: 6, edgeGap: 0 })
// 解鎖 / 上鎖
__dshWhaleDock.locked(false)
// 立即重算一次
__dshWhaleDock.refresh()
鍵 默認 說明
locked true 鎖定右側吸附;解鎖後完全交還給掛件自己
gap 0 展開時,桌寵右緣與右欄左緣的間距(px);允許負值微調
edgeGap 0 摺疊時,桌寵右緣與窗口右緣的間距(px);0 = 貼死,允許負值
writeWidgetPos true 同步把 localStorage['dshw-pos'] 寫成 hAnchor: "right",讓掛件自己的吸附模型也一致

持久化鍵:localStorage['dsh-whale-widget-dock:v1']。想完全恢復原狀可 __dshWhaleDock.locked(false),或卸載插件後清理上述鍵並把 localStorage['dsh-whale-widget-dock:pos-backup'] 寫回 localStorage['dshw-pos'](見 README 排查節)。

適用場景與注意

適合已經安裝 dsh-whale-widget、且常用 DSH 右側 Sidebar 的 Desktop 用戶:你希望桌寵與右欄聯動,而不是單獨拖在屏幕一角。

安裝前請自行查看倉庫源碼與 MIT 許可證。插件隨當前 DSH Desktop 進程在 Web 外殼中注入運行,權限與宿主一致;僅在你信任維護者與代碼的前提下安裝。

若重啓後桌寵無變化:確認 dsh.profile.bundles 含 dsh-whale-widget-dock 且 node_modules 可解析;Console 裏 __dshWhaleDock 爲 undefined 通常表示未重啓或未進注入表。貼邊差幾個像素時,桌寵圖像可能有透明留白,可用 gap 微調。

結尾

dsh-whale-widget-dock 只改小鯨魚的定位與吸附表現,不改掛件文件;通過菜單或快捷鍵即可開關「吸附到右欄」,並用 Console API 微調間隙與鎖定。詳情與 issue 見 GitHub:https://github.com/UniMars/dsh-whale-widget-dock;目錄頁:https://www.skillhub.cn/plugins/UniMars/dsh-whale-widget-dock。

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

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

小夜