cyh3436332528/dsh-float-chat ↗★ 1
dsh-float-chat
将侧边栏对话框转为Windows置顶悬浮窗 适合Windows桌面端用户,便于跨应用随时进行快捷对话。
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:cyh3436332528/dsh-float-chat说明文档
阅读完整 README ↗使用
打开浮窗
- 在 DSH 主窗口的输入框右侧点 浮窗。
- 窗口出现(0.35 → 目标透明度的淡入),并已继承当前会话的上下文,标题栏下方提示
已继承当前会话上下文。 - 在窗口底部的输入框里提问。Enter 发送,Shift+Enter 换行。
同一个插件只会有一个浮窗进程。 若已经开着,再点「浮窗」不会新开一个
(接口会返回started: false),已有的窗口会保持。
管理对话
- 开启新对话:标题栏
+,或左上角下拉菜单里的「新对话(继承当前会话上下文)」。 - 切换历史对话:左上角下拉菜单,点任意一行。每一行右侧有
✎可以重命名
(行内变成输入框,Enter 保存 / Esc 取消),鼠标悬停或键盘聚焦会弹出完整标题与时间。 - 删除某条对话记录:下拉菜单底部的 删除这段对话记录(红色)。删的是落盘的会话文件。
- 即用即焚:右上角的开关。打开后按钮变红,并且关闭窗口时自动删掉本次对话记录。
- 重命名不生效? 重命名只改窗口自己的索引(存在窗口的
localStorage里),
不改 DSH 侧的会话标题。
置顶与窗口
- 始终置顶:标题栏图钉按钮,或设置页里的开关。图标实心表示已置顶。
- 调整大小:拖左下 / 右下两个手柄。窗口的尺寸与位置会被记住(可在设置页关掉)。
- 最小化 / 关闭:标题栏
—/✕。开启「Esc 关闭窗口」后,窗口内按 Esc 也能关
(菜单打开时 Esc 仍然是关菜单)。
配置项
插件的设置存在 window/float-settings.json(相对插件包同级目录),
由宿主半边原子写入(tmp + rename),窗口进程用 FileSystemWatcher 监听,
改完 ≈ 50 ms 内窗口跟上(另加 1 秒轮询兜底)。
| 设置项 | 类型 / 取值 | 默认值 | 说明 | 是否即时生效 |
|---|---|---|---|---|
appearance | light | dark | dsh | system |
alwaysOnTop | boolean | true | 打开窗口时是否置顶 | ✅ 即时 |
rememberGeometry | boolean | true | 是否记住并恢复窗口的尺寸与位置 | ❌ 下次开窗 |
opacity | number 0.6–1 | 1 | 窗口不透明度 | ✅ 即时(拖动滑块时实时跟随) |
defaultWidth | number 320–1600 | 620 | 未记住几何(或还没有存档)时使用的宽度,单位 px | ❌ 下次开窗 |
defaultHeight | number 260–1600 | 900 | 同上,高度 | ❌ 下次开窗 |
ephemeralByDefault | boolean | false | 新窗口默认是否开启「即用即焚」 | ✅ 即时 |
showSessionTitle | boolean | true | 标题栏是否显示侧边对话 / 主会话的标题 | ✅ 即时 |
closeOnEscape | boolean | false | 窗口内按 Esc 是否关闭窗口 | ✅ 即时 |
关于默认值:host.js 里的 SETTINGS_DEFAULTS 与 FloatWindow.cs 里的 WindowSettings
各有一份默认值。改默认值时两边要一起改。
[!NOTE]
写权限校验。 设置接口只接受SETTINGS_DEFAULTS里存在的键,其余字段一律丢弃;
越界的数字会被 clamp 到合法区间(例如opacity会被夹到0.6–1)。
所以手工编辑float-settings.json写坏了也不会让窗口崩,最差是回落到默认值。
没有独立的配置文件入口——设置一律通过 设置页 → 悬浮窗 修改。