DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

GRmaid /

GRmaid/dsh-LimBusCompany-dancinglyrics-toast

Verified

Limbus Company 歌词风格的 DSH 桌面提示:会话事件以逐字动画浮在所有窗口之上,两侧随机落位,设置页自由编辑

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@1438a0d8

dsh-LimBusCompany-dancinglyrics-toast

把 DeepSeek Harness 的会话事件——需要授权、回合开始(思考中)、授权完成、回合结束(任务完成)——以 Limbus Company 歌词动画风格的文字提示,浮在所有窗口之上:逐字淡入、波纹/跌落退场、抖动/波动律动、白芯发光、屏幕两侧随机落位。文案与全部动画参数在 DSH 设置页 里自由编辑,保存即生效。

动画效果、可调参数(入退场速度 / 抖动频率 / 跌落距离 / 发光强度 / 整句倾斜)与"两侧随机"的排布,均致敬 idea-from-limbus-company-dancing-lyrics("都市回响"桌面歌词)。详见文末灵感来源。

架构

DSH 宿主(本插件的 Cordis 半边)                伴侣悬浮窗(Electron,独立进程)
├─ ctx.on("session/event") 观察会话事件          ├─ 透明、覆盖整个工作区、鼠标穿透
│   approval/asked · turn/start · turn/end       ├─ EventSource 订阅本地 SSE
├─ 模板渲染({tool} {outcome} {title} 占位符)    ├─ 逐字动画:入场/律动/退场、两侧随机落位
├─ 设置路由 + 状态文件持久化                      └─ 每 1.5 秒重申置顶(防被普通窗口盖住)
└─ 127.0.0.1:<port> SSE 服务
  • 插件半边只负责"事实":哪个事件、渲染成什么文案;它不画任何东西。
  • 伴侣窗口只负责"呈现":参数随每条 toast 下发,改设置即时生效。
  • 伴侣不是浏览器页面,事件服务是独立监听 127.0.0.1 的 http 服务器,不走 Web-GUI 路由的宿主/来源栅栏。

安装

dsh plugin add github:GRmaid/dsh-LimBusCompany-dancinglyrics-toast

桌面客户端的安装边界目前只接受发布到 npm 的插件,桌面端请按本地 link 安装:

  1. 把本仓库放到 %DSH_HOME%\profiles\desktop\plugins\dsh-limbuscompany-dancinglyrics-toast(伴侣窗口就在包内 companion/);
  2. 在 profile 的 node_modules 里建 junction 指向它,package.json 的 dependencies 写 link:<plugins 目录绝对路径>,并把包名加进 dsh.profile.bundles;
  3. 重启 DSH。

伴侣窗口默认随插件自动启动(设置里的 companion.launch):宿主拉起它,启动后每 3 秒探测一次 127.0.0.1:41170,插件上线即自动连接;?port= 查询参数可覆盖默认端口。也可手动启动:

cd companion
npm install
npm start

配置(DSH 设置页 → 桌面提示)

组 项
事件与文案 每类事件的开关 + 文案模板,占位符 {tool} {outcome} {title} {sessionId}
字体 字体(默认/微软雅黑/宋体/楷体/黑体/自定义字体文件)、自定义 TTF/OTF 路径、字重
颜色 字芯颜色、描边颜色与宽度、光晕颜色与强度,以及四类事件各自的光晕强调色
动画 入场(波纹/跌落)、退场(波纹/跌落)、停留律动(波动/抖动/静止)、速度倍率、抖动频率、波动幅度、跌落距离、整句倾斜角度
悬浮窗 位置(sides=屏幕两侧随机 / bottom-right / bottom-center / top-center)、边缘距离、垂直活动区上下界(%)、字号、每条停留秒数、本地 SSE 端口
伴侣 自动启动开关、伴侣目录路径

两侧随机模式(巴士歌词同款):伴侣窗口铺满整个工作区(Electron workArea 天然不含任务栏,从机制上杜绝遮挡),每条提示把屏幕两侧各切成 5 个垂直槽位,随机挑一个空闲格落位,左右倾斜角镜像。锚定模式按到达顺序从锚边向内堆叠。分辨率/缩放/任务栏变化会自动重新贴合窗口边界。

始终浮在所有窗口之上:Windows 会在其他窗口激活时把透明窗口悄悄降出置顶带(实测 Z 序会掉到几十位之后),伴侣因此每 1.5 秒重申一次 screen-saver 级置顶并 moveTop()——桌面歌词类软件的标准做法。真·独占全屏的游戏仍会盖住一切,属平台限制。

持久化机制:bundle patch 的 insert 行位于组合树根部,不在 DSH configEditor 的枚举范围内,settings 传输没有本插件的命名空间。设置页走宿主注册的同源路由 GET/POST /plugins/dancing-lyrics-toast/config(过浏览器鉴权栅栏),宿主把修改合并进生效配置、原子写入 %DSH_HOME%\dancing-lyrics-toast\config.json,并通过 SSE 实时推给伴侣——保存后下一条提示立即生效,伴侣无需重连。端口改动需重启 DSH 生效。

设置页里的"测试动画"

测试卡片可以随时推送四类样例提示、一键连播,并报告"已推送到 N 个伴侣窗口"——N 为 0 就说明伴侣没在运行,点拉起伴侣窗口即可现场重启(无视自动启动开关)。它是整套链路的活体探针。

本地开发与诊断

伴侣由宿主脱离式拉起,子进程的死活平时不可见;宿主把每次拉起尝试、子进程 error/exit、测试推送都记到 %DSH_HOME%\dancing-lyrics-toast\launch.log(黑匣子),动画"莫名消失"时先看它。宿主还带自愈心跳:连续约 1 分钟没有伴侣连接就自动重新拉起(伴侣有单实例锁,重复拉起无害)。宿主自身运行在 Electron 里,拉起子进程时会剥掉 ELECTRON_RUN_AS_NODE,防止伴侣被当成纯 node 进程秒杀。

# 宿主半边:无 DSH 的链路自测(假 ctx + 模拟会话事件 + SSE/config/test 路由断言)
cd tools && node harness.mjs

# 伴侣窗口:无 DSH 的动画自测(mock 推送 + 自动截图)
node tools/mock-feed.mjs 41198 &
companion/node_modules/.bin/electron companion --port 41198 --capture capture.png

改宿主半边后重新加载:dsh-hmr 忽略 node_modules(插件经 junction 链入),且 Node 按 URL 缓存 ESM——把 lib/entry.js 复制成新文件名并同步 cordis.patch.yml 的 name,再重开组合包。只改伴侣窗口则重启伴侣进程即可。

灵感来源

本插件的文字动画设计整体致敬并参照 Celine258/idea-from-limbus-company-dancing-lyrics——一款模仿《边狱公司(Limbus Company)》歌词演出的网易云/QQ音乐桌面歌词("都市回响"):

  • 逐字入场(波纹原地淡入 / 跌落登场)与两种退场(波纹原地淡出 / 跌落加速下坠、每字带轻微随机旋转);
  • 抖动采样(每秒 1–15 次的逐字微位移,模拟"卡门的声音")与波动律动(逐字相位错开的行波);
  • 白芯发光字效(白色字芯 + 描边 + 向外渐隐光晕,光晕强度 0–100% 可调,四类事件有各自强调色);
  • 屏幕两侧随机落位 + 整句倾斜的排布方式;
  • 参数命名与取值范围(速度倍率 25%–300%、跌落距离 0–128px 等)与原项目对齐,方便熟悉它的主人无缝上手。

实现上以 Electron 透明置顶窗口 + DOM/CSS 逐字动画复刻,而非其 Qt 渲染管线。

已知边界

  • 目前只在 Windows 上验证(junction、工作区几何、置顶行为)。
  • 事件观察依赖 session/event(approval/asked、approval/decided、turn/start、turn/end);DSH 核心事件名变更需同步 KIND_OF_EVENT。
  • 真·独占全屏应用(某些游戏)无法被任何窗口覆盖,属操作系统限制。

License

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit 1438a0d849ae

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout