前言¶
在 DSH(DeepSeek Harness)里写提示、贴图、给智能体喂上下文时,截图往往要切到系统工具或第三方软件,再拖文件或找路径。流程一断,对话节奏就慢下来。下面介绍社区插件 dsh-screenshot(维护者 huhuai-ni):在 DSH 桌面端运行期间注册全局热键,支持整屏、当前窗口或微信式拖框选区,截图落盘后还可自动进剪贴板,便于在输入框里直接 Ctrl+V。
这是什么¶
dsh-screenshot 是 DSH 生态里的客户端类插件,仓库 huhuai-ni/dsh-screenshot,社区目录页见 SkillHub 条目。它解决的是:在 Windows 上、不离开 DSH 工作流的前提下,用自定义快捷键完成截屏、浏览最近截图,并通过插件工具在对话或自动化里引用路径。
插件以当前 DSH 进程权限运行;安装前建议自行查看源码与 MIT 许可证。SkillHub 为独立社区目录,与 DeepSeek / 幻方无官方从属关系。
核心功能¶
已核实能力如下(以仓库 README 为准):
- 全局快捷键:默认
Ctrl+Alt+S,可在设置里修改;支持Ctrl/Alt/Shift/Win组合,示例写法包括F9、PrintScreen、Ctrl+Shift+F12等。 - 三种范围:
region(默认,拖框选区)、full(整屏)、window(当前前台窗口)。区域模式下按热键后屏幕冻结、整屏变暗、十字光标拖框,框内保持原色并显示尺寸,松手保存框内 PNG;中途 Esc 取消。 - 保存与浏览:截图存到可配置目录(默认
图片/dsh-shot);设置页提供截图墙,可查看最近图片。 - 剪贴板:区域选完松手后,除保存 PNG 外,图片同时写入剪贴板,可在 DSH 输入框直接粘贴。
- 插件工具:
shot_capture(立刻截图并返回路径)、shot_latest(最近一张)、shot_list(最近 N 张)、shot_hotkey(查看或修改快捷键)。
平台与运行条件:仅 Windows(Win32 热键注册 + System.Drawing 抓屏)。快捷键仅在 DSH 运行期间有效;退出 DSH 后热键 unregister。
安装与启用¶
官方安装命令:
dsh plugin --profile desktop add dsh-screenshot
安装后打开 DSH:设置 → 插件 → 截屏,修改快捷键、选择范围(region / full / window)、选择保存目录,点击 保存并注册 使热键生效。
典型用法¶
框选截图并粘贴到对话¶
- 确保 DSH 桌面端已启动且插件已保存并注册热键。
- 按配置的全局快捷键(默认
Ctrl+Alt+S)。 - 在
region模式下拖框选区,松手;若仅需整屏或当前窗口,在设置里改为full或window。 - 回到 DSH 输入框,Ctrl+V 粘贴剪贴板中的图。
通过工具立即截图¶
在支持 DSH 插件工具的场景下,可调用 shot_capture 立即截图并拿到文件路径;需要最近文件时用 shot_latest 或 shot_list。
设置页还通过 /api/shot/* 改配置、触发立即截图与读图(实现细节见 README「原理」一节)。
实现要点与维护者踩坑(供排查参考)¶
后端在插件启动时拉起隐藏 PowerShell,用 Win32 RegisterHotKey 注册热键;触发后执行 scripts/capture.ps1,经 System.Drawing 输出 PNG。README 中记录的两点值得留意:
- PowerShell 5.1 下脚本第一行不宜是中文注释(无 BOM UTF-8 可能导致
param(解析失败),应把param(放在首行。 - 热键回调不宜依赖 PowerShell 的
$form.add_Pressed事件;维护者改为 C# 内GetMessage循环直接截图。中文乱码问题通过脚本改为 UTF-8 with BOM 修复;覆盖层失去焦点时通过OnDeactivate关闭,避免 invisible 窗口占用后续热键。
适用场景与注意¶
适合:在 Windows 上使用 DSH 桌面端、需要频繁截屏并贴回对话或保存到固定目录的开发者;希望用全局热键而不是每次打开单独截屏软件的用户。
注意:
- 非 Windows 环境无法使用本插件。
- 依赖 DSH 常驻;长时间不用时可关闭 DSH,热键即失效。
- README 早期「限制」一节曾写区域截取在路线图中;后续版本说明已加入微信式拖框与剪贴板粘贴,以当前 README 功能描述为准。
- 安装插件等同于信任其 PowerShell / Win32 行为,请从 GitHub 核对
scripts/与cordis.patch.yml后再在生产环境启用。
结尾¶
dsh-screenshot 把「热键 → 选区 → 存盘 → 剪贴板 → 粘贴进 DSH」串成一条短路径,并暴露 shot_* 工具供自动化使用。进一步了解可访问 SkillHub 插件页 与 GitHub 仓库。