Repository navigation
Releases: MeteorNOX/dsh-whale-bongo
Release list
dsh-whale-bongo v0.3.3
dsh-whale-bongo v0.3.3
本版把桌面模式的运行时、跨屏表现、Q 弹手感和 macOS 兼容性一起收敛。
桌面与跨屏
- 桌面覆盖层改为按显示器懒创建:切换屏幕时直接启用目标覆盖层,不再拉伸/移动同一个透明窗口,减少跨屏闪跳。
- 吸附的窗口移动到另一块屏幕时,挂件会跟随该窗口换屏,而不是丢吸附后卡在旧屏幕边缘。
- 窗口跟随使用合成层
translate和逐帧合并,降低高频窗口采样带来的卡顿。 - 选择器/输入锚点跨屏、托盘召回、托盘“回到客户端内部”均保留过渡动画。
Q 弹手感
- 「Q 弹程度」范围改为
0–15,默认10。 - 10 以下按
/3重新标定,避免默认值提高后点击/按压变硬;10–15 继续加成,拉满时点击力度约为旧版满值的1.5×,窗口跟随惯性约为1.35×。 - 窗口跟随的横向倾斜、纵向压缩使用独立弹簧;纵向强度为横向一半,底部固定,向上回弹,不产生纵向位移过冲。
- 降低跟随弹簧阻尼,回摆更明显;点击/按压阻尼保持原强度。
- 修复桌面菜单按钮/菜单在吸附到窗口顶部时不可见或离挂件过远的问题。
Windows 运行时
- 桌面 helper 的窗口枚举与鼠标跟随合并进原生
whale-native-helper.exe,不再启动desktop-windows.ps1和桌面global-keys.ps1两个 PowerShell 侧车。 - 原生 helper 使用 Raw Input 接收键盘,但当前真实桌面会话中仍存在漏键风险,因此 Windows 桌面键盘暂时回退到稳定的 PowerShell
global-keys.ps1;窗口/鼠标保持原生。 - Host 页面/输入法键盘监控仍然是 PowerShell;通过 SSE
status握手判断是否真正支持全局键盘,避免 macOS 上“连接成功但其实没有采样器”的误判。 - 新增可选环境变量:
DSH_WHALE_SOFTWARE_RENDER=1/DSH_WHALE_DISABLE_GPU=1使用软件合成;DSH_WHALE_FRAME_RATE=30..120控制覆盖层帧率(默认 60)。
macOS
- 新增 Quartz 窗口/鼠标采样器
desktop-macos.m,由macos-monitor.js用xcrun clang编译到私有临时目录。 - macOS 支持桌面吸附、鼠标跟随、托盘召回、Retina 逻辑坐标和跨屏切换;需要安装 Xcode Command Line Tools(
xcode-select --install)。 - macOS 桌面内的打字目前是页面级转发,不是全局键盘捕获;全局打字仍需后续
CGEventTap+ 辅助功能权限实现。
默认值与兼容
- 快捷键过滤默认关闭(
filterShortcutKeys:false)。 - 打字角度默认改为左右分管的真实键位模式(
typingAngleMode:'position-split')。 - 已有配置不会被重置;只有新建/重置配置使用新默认值。
- 新增 21 项桌面/macOS 回归测试;
npm run check、npm test均通过。
安装
- GitHub Release:下载
dsh-whale-bongo-0.3.3-package.zip或dsh-whale-bongo-0.3.3.tgz。 - npm:
dsh plugin --profile web add dsh-whale-bongo@0.3.3。 - 本地目录:
dsh plugin --profile web add link:D:/AI/AIVidio/dsh-whale-bongo(按实际路径替换)。
已知限制
- Windows 原生 Raw Input 键盘在部分桌面会话会漏掉物理按键,因此本版仍使用 PowerShell 键盘监控;后续需要继续验证并安全切换。
- macOS 尚未在真实 Mac 硬件上验证;本仓库只在 Windows 上通过 mocked 回归测试。
- macOS 全局键盘(非 DSH 页面内)尚未实现。
致谢
- DenseFLoe:macOS 兼容性测试、问题复现与修复建议。
v0.3.2
dsh-whale-bongo v0.3.2
本次更新重点解决桌面模式在多显示器、不同缩放比例下的跨屏体验,并补上托盘召回、回客户端和挂件跟随窗口时的动效。
主要更新
- 多显示器改为 A-lazy 布局:按需为每个显示器创建固定的透明覆盖层,跨屏时切换覆盖层,不再改变同一个窗口的尺寸和坐标系,避免旧坐标插值造成的瞬移。
- 跨屏拖动:通过全局鼠标状态接管,目标覆盖层按鼠标落点和抓取偏移接管挂件,不依赖跨窗口的 Pointer Capture。
- 回到客户端:托盘菜单新增「回到客户端内部」,复用拖到输入框磁吸点时的淡出/入场过渡,再把挂件放回输入框上方;桌面配置会保留。
- 托盘召回:新增「召回挂件到当前屏幕」,桌面窗口被
Shift+Win+方向键移到其他显示器后也能找回来。 - 吸附窗口跟随换屏:挂件吸附的窗口被拖到其他显示器时,helper 记住窗口句柄,先准备目标显示器的覆盖层,再发布窗口列表,挂件继续贴合同一个窗口。
- 跨屏 Q 弹入场:挂件从目标显示器相对来向的一侧横向弹入,不再复用客户端/桌面切换的渐隐缩放动画。
- 窗口跟随惯性:吸附窗口横向移动时,挂件下半身保持贴合,上半身向运动反方向倾斜后回弹;竖直方向不做过冲,强度与最大角度跟随「Q 弹程度」滑块。
- 高 DPI 吸附修复:Windows 125% / 150% / 175% / 200% 缩放下,DWM 物理像素矩形会先转换为覆盖层内的 DIP 坐标,窗口上下沿、触发范围和左右翻面分界不再偏移。
- 过滤与当前覆盖层完全不相交的窗口;靠屏幕顶部的窗口允许挂件上缘超出视口,保证图片底边贴合窗口可见上沿。
- 兼容旧版桌面窗口快照:旧的左右像素偏移会按当前 DPI 换算一次,比例锚点保持不变。
安装
下载本 Release 中的:
dsh-whale-bongo-0.3.2-package.zip,解压后得到dsh-whale-bongo/目录;- 或
dsh-whale-bongo-0.3.2.tgz。
在 DSH「插件 → 添加插件 → 安装本地 bundle」中选择解压目录或 .tgz,然后启用插件。
桌面模式需要 Electron。插件会自动扫描已安装的运行时;如果本机没有,切换到桌面模式后按提示点击「准备桌面运行时」即可。也可以手动运行:
node scripts/ensure-electron.mjs下载到 ~/.dsh/electron-whale/<version>,或设置 DSH_WHALE_ELECTRON 指向 Electron 可执行文件。
npm 包暂未发布。
说明
完整变更见仓库根目录 CHANGELOG.md。
v0.3.1
dsh-whale-bongo v0.3.1
本次为 v0.3.1 覆盖发布:在原有修复基础上,补上了桌面模式真正可用的一键 Electron 准备流程。
主要更新
- 一键准备 Electron 运行时:第一次切到「桌面」且本机没有运行时时,客户端会显示「准备桌面运行时」卡片;点击后自动下载约 138 MB 的 Electron,全程不需要打开终端。
- 准备卡片显示下载来源、进度、已下载大小和解压状态,可随时取消;完成后自动校验 SHA-256、原子安装,并自动进入桌面模式。
- 失败或取消时保持客户端模式,显示中文原因和重试入口,不会留下半成品或损坏的安装目录。
- 默认固定使用经验证的 Electron
43.3.0,优先 npmmirror,失败后回退 GitHub;DSH_WHALE_ELECTRON_VERSION=latest可切换最新版,DSH_WHALE_ELECTRON_DIR可指定安装目录。 - 支持系统
HTTPS_PROXY/https_proxy(HTTP CONNECT 代理,含 Basic Auth、重定向、NO_PROXY);暂不支持 SOCKS 代理。 - 桌面模式启动不再“假成功”:Electron 缺失或启动失败时,
/desktop/start返回ok: false,客户端恢复挂件并显示具体原因。 - 自动扫描
~/.dsh/electron-whale/下任意已安装版本、current和~/.dsh/electron/,也支持DSH_WHALE_ELECTRON指向目录,已有运行时不会重复下载。 - 修复桌面全局键盘的小键盘映射:补齐
VK_NUMPAD0..9、乘除加减、小数点、分隔符和NumpadEqual,并细化小键盘各列的真实横向键位。 - 发布包零 npm 运行时依赖;
scripts/ensure-electron.mjs解压后即可直接运行。
安装
下载本 Release 中的:
dsh-whale-bongo-0.3.1-package.zip,解压后得到dsh-whale-bongo/目录;- 或
dsh-whale-bongo-0.3.1.tgz。
在 DSH「插件 → 添加插件 → 安装本地 bundle」中选择解压目录或 .tgz,然后启用插件。
桌面模式需要 Electron。插件会自动扫描已安装的运行时;如果本机没有,切换到桌面模式后按提示点击「准备桌面运行时」即可。也可以手动运行:
node scripts/ensure-electron.mjs下载到 ~/.dsh/electron-whale/<version>,或设置 DSH_WHALE_ELECTRON 指向 Electron 可执行文件。
npm 包暂未发布。
说明
完整变更见仓库根目录 CHANGELOG.md。
v0.3.0
dsh-whale-bongo v0.3.0
桌面模式首个正式版本:挂件可以从 DSH 页面脱离,作为透明、无边框、置顶的桌面挂件运行。
主要更新
- 桌面模式:透明全工作区覆盖层,支持点击穿透、拖动、菜单和设置同步。
- Windows 全局键盘监听:在 DSH 和其他应用里打字都能驱动桌面挂件。
- DSH Host 全局键盘 SSE:搜狗输入法等吞掉页面 keydown 时仍能驱动客户端挂件。
- 桌面窗口上下边缘吸附,横向沿用输入框的 45%/55% 迟滞翻转。
- 桌面/客户端双向拖拽保持切换:右下角进入桌面,输入框磁吸点回到客户端。
- 客户端到桌面时鼠标未松开前持续跟随鼠标;桌面到客户端带回输入框中心。
- 切换过程交叉淡入淡出,不刷新整个 DSH 页面。
- 桌面自动翻转在拖动期间保持方向,松开后再按吸附窗口宽度判断。
- 客户端原地重建挂件时隐藏首帧,避免闪现。
- 偏移方式默认改为「随机角度」。
- 显示位置文案统一为「客户端 / 桌面」。
安装
下载本 Release 中的:
dsh-whale-bongo-0.3.0-package.zip,解压后得到dsh-whale-bongo/目录;- 或
dsh-whale-bongo-0.3.0.tgz。
在 DSH「插件 → 添加插件 → 安装本地 bundle」中选择解压目录或 .tgz,然后启用插件。
npm 包暂未发布。
要求
- Electron 43.3.0;
- 可运行
node scripts/ensure-electron.mjs下载到~/.dsh/electron-whale/43.3.0; - 或设置
DSH_WHALE_ELECTRON指向 Electron 可执行文件。
说明
完整变更见仓库根目录 CHANGELOG.md。
v0.2.3
v0.2.2
v0.2.2
新增
- 热启用/热关闭:在 DSH 插件列表启用或关闭时即时挂载/移除挂件,不再需要重启 DSH。
- 任务栏优先吸附:输入框上方出现「任务 N 已完成」任务条时,优先吸附任务条。
- 面板切换移动动画:使用 JS 弹簧、底部中心锚点、身体拉伸和落地挤压,任务栏/提问/授权/计划面板切换不再瞬移。
- 移动幅度随「Q 弹程度」变化。
- 首次出现动效:从底部中心轻微上浮、放大并回弹到正常尺寸。
变更
- 移除 Host 的 Web/Desktop 永久 script 注入,改由 DSH 客户端模块生命周期管理。
- 滚动事件不再强制把挂件瞬移到目标位置。
- 增加卡片位置探针,兜底没有 Mutation/Resize 通知的位置变化。
- 位置弹簧改为过阻尼,取消整体过冲;Q 弹主要由身体形变承担。
修复
- 修复热关闭时监听器、Observer、RAF、计时器和音频未清理的问题。
- 修复面板切换/任务栏展开时可能瞬移的问题。
- 修复启动阶段找不到输入框时
card is not defined的崩溃。 - 修复刷新页面时挂件先从右下角闪现、再跳到输入框高度和上次位置的问题。
v0.2.1
v0.2.1
更新内容
- 翻转判定:自动模式改为以输入框中心为基准,并使用 45%/55% 迟滞区间;从右向左到 45% 才翻转,从左向右到 55% 才取消,避免在中间位置反复切换。
- 自定义翻转分割线:翻转设置新增「自定义」,可按整个页面宽度调整分割线位置。
- 输入框中心吸附点:新增输入框上沿中心吸附点,拖动时显示圆点提示;支持记忆吸附点、布局变化后继续跟随,并避免从吸附点拖出后不松手再拖回时重新吸附。
- 吸附范围细化:输入框边线吸附改为按实际边线段计算,上/下边线只在输入框宽度范围内生效;输入框左右侧吸附停用,页面左右侧保留。
- 横向锚定:吸附到元素后按中间 70% 比例、左右 15% 固定边距记录横向位置,页面或输入框宽度变化时挂件会跟随。
- 提问/授权面板同步:提问、授权、计划确认面板出现时,挂件按输入框的吸附方式贴到当前面板上;面板关闭后回到输入框。
- 输入框缺失兼容:提问、授权等场景输入框暂时不存在时,挂件保留在当前位置,不再消失。
- 自定义音效:音效设置支持更换本地音频、恢复默认,音效保存在浏览器本地。
- 持久化修复:吸附点 ID 和横向锚定配置会正确保存,刷新后保持。
安装
在 DSH 插件管理器中安装 dsh-whale-bongo,或使用 GitHub Release 的本地包。
桌面端安装/更新后需完全退出并重开 DSH;Web 端按 Ctrl+F5 硬刷新。
npm 包暂未发布,npm 安装方式请等待账号解封。
素材说明
- 代码:MIT。
- 所有图片与音效素材版权归
dsh-bongo-fish原作者所有,按双方约定使用,不随代码 MIT 许可重新授权。
v0.2.0
v0.2.0
更新内容
- 打字角度系统:新增「关闭 / 随机角度 / 真实键位(交替按) / 真实键位(左右分管)」四种模式。
- 真实键位:使用独立的
assets/key-angles.json键位横向坐标表,覆盖 148 个键位,包括主键盘、功能键、方向键、小键盘、国际键和媒体键。 - 左右分管:左手管左侧、右手管右侧;中间区域按上一只手交替。
- 随机角度:范围 0–60°,默认 30°;同键连续按沿用上次角度,换键重新随机。
- 快捷键过滤:新增开关,默认过滤 Ctrl / Shift / Alt / Meta / CapsLock 等修饰键及组合键;关闭后这些键也会触发手手。
- Q 弹程度:改为 0–10 显示,默认 5,对应旧版 250。
- 鼠标按压行为:支持手部跟随下压 / 手部变扁不下压 / 手部不跟随,默认变扁不下压。
- 水平翻转:自动 / 始终不翻转 / 始终翻转,自动模式在挂件位于界面左半边时镜像翻转,并带弹性过渡。
- 菜单体验:自定义下拉组件;菜单顶部增加 56px 标题栏安全区;展开/拖动不会把关闭按钮顶到标题栏上方。
- 音量:0 显示为「关」,默认音量 15。
- 视觉细节:图片 Q 弹不裁左右、投影完整;手部不参与碰撞箱。
安装
在 DSH 插件管理器中安装 dsh-whale-bongo,或使用 GitHub Release 的本地包。
桌面端安装/更新后需完全退出并重开 DSH;Web 端按 Ctrl+F5 硬刷新。
npm 包暂未发布,npm 安装方式请等待账号解封。
素材说明
- 代码:MIT。
- 所有图片与音效素材版权归
dsh-bongo-fish原作者所有,按双方约定使用,不随代码 MIT 许可重新授权。
v0.1.0
v0.1.0
更新内容
- 首个公开版本:
Whale Bongo 手手挂件正式发布。 - 双手按键反馈:手手随敲键按下,同键同手、异键交替。
- QQ 弹弹的图片动效:图片以底边为锚点回弹,强度可调。
- 完整外观设置:可换图片,调手部颜色、轮廓粗细、手部几何和挂件大小。
- 透明穿透与自由磁吸:透明区域不挡点击,松手自动吸附输入框或窗口边缘。
- 可拖动设置菜单:折叠分类、标题固定、菜单独立于挂件大小。
安装:在 DSH 插件管理器输入 dsh-whale-bongo;桌面端完全退出并重开 DSH,Web 端按 Ctrl+F5 硬刷新。
详细说明(点击展开)
1. 手部与动效
- 单手手宽度、比例、间距、对称轴、垂直位置可调。
- 手部内部色、轮廓色、轮廓粗细可调,单项可重置。
- 图片 Q 弹强度 0–500,默认 250。
- 图片底边对齐挂件底部,Q 弹时不裁左右。
2. 菜单与交互
- 菜单按主题折叠;图片、手部、音效默认收起,动效与大小直接显示。
- 菜单标题固定在顶部,内容区独立滚动。
- 菜单可临时拖动;每次重新打开回到挂件旁固定位置。
- 调整挂件大小时,菜单保持独立的屏幕位置,不跟随缩放。
3. 安装与卸载
- 安装:DSH 插件管理器输入
dsh-whale-bongo。 - 卸载:从插件管理器移除
dsh-whale-bongo。 - 卸载后可在浏览器站点数据中清理本插件的设置与图片。
4. 素材说明
- 代码:MIT。
- 图片与音效素材版权归
dsh-bongo-fish原作者所有,按双方约定使用,不随代码 MIT 许可重新授权。