中文EN

dsh-floating-window

ui已测通过npmMIT

浮在 Windows 桌面上的磨砂玻璃状态卡片,显示 DSH 正在做什么——运行中的任务及已跑时长与当前动作、待审批项、今日 Token 用量与谷时倒计时——不用时可缩成一根 14×120 的细柱贴在屏幕边缘。

下载量 / Downloads
918
依赖体积 / node_modules
0.9 MB
测试时间 / Tested
2026-11-07
DSH 版本 / Version
0.2.2-rc.1

安装

dsh plugin --profile web add dsh-floating-window

沙箱测试结果

阶段结果
1 安装✓
2 列装✓
3 挂载✓
4 启动—

四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。

README

dsh-floating-window · DSH 状态悬浮窗

**一块浮在桌面上的磨砂玻璃小窗,实时告诉你 DSH 正在干什么。

不做花哨皮肤,只从实用性出发,简单有时就是最好的。**

不切窗口、不打断手上在做的事 —— 抬头扫一眼就知道:

  • 现在有几个任务在跑、每个任务跑到第几分钟、正在处理什么文件、

这个任务已经烧掉多少 Token

  • 有没有等你审批的事(要执行删除、改系统之类操作时会停下来问你)
  • 今天已经用掉多少 Token、距离「谷时」结束还有多久

(谷时是 DeepSeek 的低价时段,同样用量更便宜;

时间段是工作日的 9-12 点、14-18 点之外,加上周末和法定节假日全天,

插件会自己判断,节假日也从网上自动更新,不用你填)

⚠️ 只支持 Windows 10 / Windows 11。 在 Mac 和 Linux 上装得上、但卡片不会出现。
原因见下面「[先看这里:仅支持 Windows](#先看这里仅支持-windows)」。

不想让卡片占地方的时候,右键点「缩成细条」,它就变成一根细柱贴在屏幕边缘,

几乎不占位置;鼠标移上去才弹出气泡,看一眼就走。


先看这里:仅支持 Windows

这个插件只能在 Windows 10 / Windows 11 上工作。

窗口本体是用 PowerShell + WPF(Windows 自带的界面技术)画出来的真·磨砂玻璃窗口,

用到了只有 Windows 才有的系统能力。

在 macOS / Linux 上会发生什么:

  • 插件本身会正常加载,不报错,DSH 看起来一切正常
  • 但卡片永远不出现
  • 插件日志里只有一句 两种启动策略都没成功。请手动跑 panel\run-panel.bat 看报错。

这句话对不熟悉的人完全没有帮助,所以在这里先写死:

看不到卡片,先确认你在 Windows 上。


这份说明怎么读

两类人看的东西不一样,可以只挑自己需要的:

想用这个插件的人(不需要懂代码)

1. [安装](#安装) —— 三条命令,选一条

2. [怎么用](#怎么用) —— 鼠标点什么、设置在哪、柱态怎么用

3. [卸载](#卸载) 和 [问题反馈](#问题反馈) —— 不用了怎么办、出问题找谁

想改这个插件的开发者(Node.js + PowerShell)

1. [为什么这样分工](#为什么这样分工) —— 整体架构,先看这个

2. [数据在哪](#数据在哪) / [state.json 字段](#statejson-字段) —— 插件和卡片的接口

3. [数据来源](#数据来源全部经实测验证) —— 每个字段来自哪个事件

4. [拉起策略](#拉起策略踩过的坑) —— 一堆踩坑记录,改代码前必看

5. [开发](#开发) —— 怎么跑测试、怎么检查语法

后面还写着 [配置](#配置)、[调试](#调试)、[开发状态](#开发状态)。


安装

已经发布到 npm 了:<https://www.npmjs.com/package/dsh-floating-window>

下面三种方式任选一种,效果一样。

<你的 profile> 是什么?
profile 就是"插件装到哪个配置夹里"的名字。
打开 DSH,侧栏点「插件」,页面上能看到当前 profile 的名字。
不确定就随便用一个你在用的名字,DSH 会在第一次使用时自动建好它。

方式一:命令行,从 npm 装(推荐)

dsh plugin --profile <你的 profile> add dsh-floating-window@0.10.13
⚠️ 这条命令里的版本号必须写精确的(@0.10.13 这种),不能只写包名。
原因:pnpm 11 有个「新版本等待期」机制(minimumReleaseAge,默认 1440 分钟 = 1 天)。
一个版本发布后不到这个时间,pnpm 会认为它"太新、还在观察期"而不去装它。
而你只写包名时,安装范围是"任意版本",pnpm 就默默往下退到某个老版本,
而且退出码是 0 —— 命令行上看不出任何异常,看起来完全成功。
结果就是你装了、没报错,实际跑的是旧版,出问题能查很久。
写上精确版本号就没有"往下退"的空间了,只能装这一版(或者明确报错),
不会出现"看着成功其实装错"。
另一种办法:把包名加进 profile 的 pnpm-workspace.yaml 的
minimumReleaseAgeExclude 列表里,让它不受这个等待期限制。
那个文件里本来就有一串这样的例外(都是之前手加的),照着加一行
- dsh-floating-window 就行。

方式二:命令行,从 GitHub 装(不用 npm 的备选)

dsh plugin --profile <你的 profile> add github:Windpixy/dsh-floating-window
这条路装的是仓库里的最新代码,没有版本号概念。网络访问 GitHub 慢的时候可以优先用方式一。

方式三:在 DSH 图形界面里装

不想敲命令也可以:

1. 打开 DSH,左侧栏点 「插件」

2. 点 「添加插件」

3. 在输入框里填下面任意一种:

  • 包名:dsh-floating-window@0.10.13 ← 推荐
  • Git 地址:github:Windpixy/dsh-floating-window
  • 打包好的压缩包路径
  • 本地文件夹的绝对路径(自己改了代码想试效果时用这个)

装好后重启一次 DSH,卡片会自动出现在屏幕右侧(默认位置,之后它自己记住你拖动过的地方)。

装完之后你应该看到什么

  • 屏幕右侧出现一块磨砂玻璃卡片(不是纯色方块 —— 能透出背后的壁纸)
  • 有任务在跑时,卡片上按行列出任务名、已跑时间、正在做什么,

以及这个任务已经用掉的 Token(右下角小字,像 12.3k Token)

  • 没有任务时,卡片缩成一行,轮流显示「今日 Token」和「谷时倒计时」

如果什么都没出现:先确认是 Windows,再打开插件日志

%USERPROFILE%\.dsh\desktop-card\plugin.log,最后的手段是手动双击

面板目录\panel\run-panel.bat,它会用控制台窗口启动卡片,报错能直接看到。

以后怎么更新

重跑一次安装命令就行(GitHub 方式会去拉最新代码,npm 方式把版本号换成新的):

dsh plugin --profile <你的 profile> add github:Windpixy/dsh-floating-window

更新完重启 DSH。如果卡片还在屏幕上、没跟着更新,它会自己发现跑的是旧代码并重启一次

(机制见下面「改了代码,卡片会自动重启」),不用手动去关它。

如果命令提示"已经装过了",先 remove 再 add:

dsh plugin --profile <你的 profile> remove dsh-floating-window
dsh plugin --profile <你的 profile> add github:Windpixy/dsh-floating-window

卸载

dsh plugin --profile <你的 profile> remove dsh-floating-window
⚠️ 卸载插件不会关掉已经开着的卡片窗口。
卡片是一个脱离了 DSH 进程树的独立常驻进程(这是故意的:这样你关掉 DSH,
卡片还能留着)。所以"删插件"和"关窗口"是两件事。
卸载之后请右键卡片 → 退出,否则那块窗口会一直飘在桌面上,
而且因为插件已经卸了,它读不到新数据,会一直停在最后一帧。

卸载只删程序,不删你的数据。想连设置和日志一起清掉,手动删这个文件夹:

%USERPROFILE%\.dsh\desktop-card\

怎么用

鼠标操作

操作 · 效果

单击卡片 · 跳回 DSH 主窗口

拖动卡片 · 移动位置,松手会记住;开着"贴边"时会自动吸附到屏幕边缘

右键卡片 · 打开菜单:设置… / 置顶 / 回到 DSH / 缩成细条 / 回到默认位置 / 重新读取设置 / 导出诊断包… / 退出

设置界面

右键卡片 → 设置…,打开的就是下面这个窗口。拖滑块 → 点「保存」,

卡片会在半秒内自己套用新设置,不用重启 DSH,也不用关掉卡片。

界面上能改的东西:

分组 · 项目 · 说明

外观 · 磨砂浓度(24~144) · 往左更透(看得见壁纸)、往右更奶白(字更清楚)

外观 · 轮播间隔(5~120 秒) · 空闲小扁条在「今日 Token」和「谷时倒计时」之间多久换一次

尺寸 · 卡片宽度(200~360) · 默认 260

尺寸 · 收起高度(72~160) · 空闲收缩后的高度,默认 96

行为 · 点卡片回到 DSH · 开关;关掉后点卡片没反应

行为 · 贴到屏幕边缘 · 开关;拖动松手自动吸附

行为 · 贴边留白(0~60 像素) · 只在上面那个开关开着时有效

审批 · 在悬浮窗上直接审批 · 默认关,安全原因见下面「[审批相关的两个开关](#审批相关的两个开关安全相关请看完再打开)」

审批 · 点「允许」前再确认一次 · 默认开,防止误点

峰谷 · (只读) · 显示当前是不是谷时、判断规则是什么,不用你填

状态 · (只读) · 卡片在不在跑、DSH 地址有没有同步成功,排查时看这一块

…(truncated)

以上内容来自 npm 上的 README,我们只做格式化,不改内容。

版本

npm 上共发布:5,最后更新 2026-11-02

链接

GitHub · Homepage · npm

同类插件