fyisgod/dsh-selection-tools ↗★ 0
dsh-selection-tools
在Windows任意应用中划词并调用Agent翻译解释 适合需要全局划词翻译、且希望在置顶浮窗中流式查看结果的用户。
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:fyisgod/dsh-selection-tools说明文档
阅读完整 README ↗使用
- 任意应用里选中文字(拖选 / 双击选词)——这一步不碰剪贴板。
- 选区右下角弹出菜单(大约几十毫秒后就可见;
DSH_SELECTION_MENU_DECIDE_MS说明见下),点 解释 或 翻译(Esc 可收起)。 - 回答窗口先显示「正在读取选区…」,随即流式显示结果(带着选区所在的上下文一起问);生成中可 停止,完成后可 复制 或 关闭(✕);标题栏可拖动,四条边与四个角都能用鼠标拖着改大小(指针会变成对应的双箭头)。取不到选中的文字时会显示「失败 · 未能读取选中的文字」,而不是"点了没反应"。
翻译方向自动判定:源文本含中日韩字符 → 译成英文;否则译成中文。
开关与配置(环境变量)
| 变量 | 默认 | 说明 |
|---|---|---|
DSH_SELECTION_DISABLE_SYSTEM | 未设置 | 设为 1 关闭系统级划词(保留页内划词,伴生进程不再启动)。 |
DSH_SELECTION_HOOK | 1 | 伴生进程侧开关:0 = 只起浮层不做全局手势检测。 |
DSH_SELECTION_POLL_MS | 40 | 鼠标轮询间隔(毫秒)。 |
DSH_SELECTION_MAX_TEXT | 12000 | 单次划词字符上限。 |
DSH_SELECTION_MENU_DECIDE_MS | 280 | 手势落下后给 UIA 的决策窗口:这么长时间内读到"有没有选中文字"就按它办(有选区 → 弹;这一点上确实没有选区 → 不弹),超时/读不到就照弹(0 = 手势一到就弹,不做任何过滤)。 |
DSH_SELECTION_TEXT_SOURCE | auto | 选区文字从哪来:auto = UIA 优先、读不到才用剪贴板;uia = 只用 UIA(读不到就报错,绝不碰剪贴板);clipboard = 直接用剪贴板(某个应用 UIA 读得不准时的逃生舱)。 |
DSH_SELECTION_MENU_PROBE_RETRIES | 3 | 菜单弹出时 UIA 预读的重试次数(Chromium/WebView2 冷启动第一次必失败,重试同时替后面的解析把无障碍树焐热)。 |
DSH_SELECTION_CLICK_PROBE_RETRIES | 1 | 点菜单项时补读 UIA 的重试次数;再多只是拖延剪贴板兜底。 |
DSH_SELECTION_CLIPBOARD_OWNER | 1 | 取词时是否核对"这次剪贴板写入不是别的进程写的";0 = 退回老行为(只看序号变化)——核对误伤了某个应用、取不到词时才关。 |
DSH_SELECTION_MENU_TIMEOUT_MS | 3600 | 划词菜单的显示时限(毫秒)。 |
DSH_SELECTION_CONTEXT | 1 | UI Automation 开关;0 = 关掉"读选区 + 读段落"(菜单不再过滤手势,选区只能走剪贴板兜底,等于退回老行为)。 |
DSH_SELECTION_CONTEXT_TIMEOUT_MS | 1800 | 单次 UIA 读取的时间预算;超时直接丢掉 worker。 |
DSH_SELECTION_LOCALE | 由插件传入 | 回答语言提示(zh/en)。 |
DSH_SELECTION_DSH_ORIGIN | http://127.0.0.1:3080 | 伴生进程调用 DSH 路由的地址(插件自动传对)。 |