fyisgod/dsh-selection-tools ↗★ 0

dsh-selection-tools

DSH plugin: select text in any Windows app to explain or translate it with DeepSeek Harness's own agent, answered in a native always-on-top overlay (draggable, resizable). · DeepSeek Harness 划词工具:任意应用里选中文字即在锚点右下角弹出菜单,用 Harness 自己的 agent 解释/翻译(自动带上选区所在的上下文段落),结果落在零依赖的原生置顶浮窗里(可拖动/缩放)。 适合需要全局划词翻译、且希望在置顶浮窗中流式查看结果的用户。

Package
dsh-selection-tools
Compatibility
Unverified
Version
0.8.2
License
MIT
Last updated
Sep 15, 2026

Install

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:fyisgod/dsh-selection-tools

使用

  1. 任意应用里选中文字(拖选 / 双击选词)——这一步不碰剪贴板。
  2. 选区右下角弹出菜单(大约几十毫秒后就可见;DSH_SELECTION_MENU_DECIDE_MS 说明见下),点 解释 或 翻译(Esc 可收起)。
  3. 回答窗口先显示「正在读取选区…」,随即流式显示结果(带着选区所在的上下文一起问);生成中可 停止,完成后可 复制 或 关闭(✕);标题栏可拖动,四条边与四个角都能用鼠标拖着改大小(指针会变成对应的双箭头)。取不到选中的文字时会显示「失败 · 未能读取选中的文字」,而不是"点了没反应"。

翻译方向自动判定:源文本含中日韩字符 → 译成英文;否则译成中文。

开关与配置(环境变量)

变量默认说明
DSH_SELECTION_DISABLE_SYSTEM未设置设为 1 关闭系统级划词(保留页内划词,伴生进程不再启动)。
DSH_SELECTION_HOOK1伴生进程侧开关:0 = 只起浮层不做全局手势检测。
DSH_SELECTION_POLL_MS40鼠标轮询间隔(毫秒)。
DSH_SELECTION_MAX_TEXT12000单次划词字符上限。
DSH_SELECTION_MENU_DECIDE_MS280手势落下后给 UIA 的决策窗口:这么长时间内读到"有没有选中文字"就按它办(有选区 → 弹;这一点上确实没有选区 → 不弹),超时/读不到就照弹(0 = 手势一到就弹,不做任何过滤)。
DSH_SELECTION_TEXT_SOURCEauto选区文字从哪来:auto = UIA 优先、读不到才用剪贴板;uia = 只用 UIA(读不到就报错,绝不碰剪贴板);clipboard = 直接用剪贴板(某个应用 UIA 读得不准时的逃生舱)。
DSH_SELECTION_MENU_PROBE_RETRIES3菜单弹出时 UIA 预读的重试次数(Chromium/WebView2 冷启动第一次必失败,重试同时替后面的解析把无障碍树焐热)。
DSH_SELECTION_CLICK_PROBE_RETRIES1点菜单项时补读 UIA 的重试次数;再多只是拖延剪贴板兜底。
DSH_SELECTION_CLIPBOARD_OWNER1取词时是否核对"这次剪贴板写入不是别的进程写的";0 = 退回老行为(只看序号变化)——核对误伤了某个应用、取不到词时才关。
DSH_SELECTION_MENU_TIMEOUT_MS3600划词菜单的显示时限(毫秒)。
DSH_SELECTION_CONTEXT1UI Automation 开关;0 = 关掉"读选区 + 读段落"(菜单不再过滤手势,选区只能走剪贴板兜底,等于退回老行为)。
DSH_SELECTION_CONTEXT_TIMEOUT_MS1800单次 UIA 读取的时间预算;超时直接丢掉 worker。
DSH_SELECTION_LOCALE由插件传入回答语言提示(zh/en)。
DSH_SELECTION_DSH_ORIGINhttp://127.0.0.1:3080伴生进程调用 DSH 路由的地址(插件自动传对)。