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。

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

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

小夜