dsh-external-links
文件与数据 活跃维护

dsh-external-links

Lion-Li-git/dsh-external-links

作为桌面插件,可打开http/https/mailto/tel/file类外部链接,调用系统默认浏览器或对应应用打开,直接绕过损坏的shell.open-external桥接,无需额外配置即可正常唤起外部资源。

0
Stars 标星
0
Forks 分支
0
Watchers 关注
0
Open Issues
JavaScript
主要语言
MIT
开源协议
24 KB
仓库大小
23 天前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:Lion-Li-git/dsh-external-links
git clone https://github.com/Lion-Li-git/dsh-external-links.git
git clone git@github.com:Lion-Li-git/dsh-external-links.git
README.md main

dsh-external-links

DSH 桌面端(Deepseek Harness EAC,Windows WebView2 壳)外部链接修复插件。

点击应用里的 http/https 外链时,自动在系统默认浏览器中打开,而不是毫无反应。

为什么还需要它(v0.2.0)

  • DSH 桌面端 5.3.6 已修复壳层 shell.open-external 桥接(PR #251:cmd start
    → ShellExecuteW,实测返回 {ok:true})。
  • 但壳层只修好了"被调用时的打开动作",webview 里点击 <a target="_blank"> 外链
    仍没有原生接线(壳注入的 BRIDGE_JS 与 webui 框架都没有锚点点击拦截)——
    实测 5.3.6 停用本插件后点链接依旧打不开。
  • 本插件补上这层缺失的"接线":拦截链接点击后直连已修复的原生桥。
点击链接 / window.open()
   ↓(客户端拦截器,capture 阶段)
window.dshDesktop.openExternal(url)     → 原生 ShellExecuteW → 默认浏览器
window.dshDesktop.openPath(path)        → file:// 解码为路径后默认应用打开

功能

  • http:// / https:// → 默认浏览器(原生桥,5.3.6+);
  • file:// → 解码为 Windows 绝对路径 → openPath 默认应用打开;
  • 应用内链(同源、127.0.0.1/localhost、#hash、下载、javascript:)不受影响;
  • 右键复制、中键点击不被破坏;
  • 无壳层(普通浏览器直接打开 webui)→ 自动回退 window.open 新标签页;
  • v0.2.0 起无宿主路由:不再依赖 PowerShell / webServer(上游已修复的部分已去掉)。

安装

方式 A:cordis.patch.yml 直装(推荐 —— 可在「插件管理」里开关)

在 ~/.dsh/profiles/web-desktop/package.json 的 dependencies 中加入:

"dsh-external-links": "github:Lion-Li-git/dsh-external-links"

执行 pnpm install,并在该目录 cordis.patch.yml 末尾追加:

- insert:
    - id: dsh-external-links
      name: 'dsh-external-links'

重启 DSH 桌面端。之后插件会像内置插件一样出现在设置 → 插件 列表,可直接开关
(停用 = 写入 disabled: true,下次启动不再加载)。

方式 B:bundle 安装(dsh plugin add,快捷但不可在插件管理页开关)

dsh plugin --profile web-desktop add github:Lion-Li-git/dsh-external-links

说明:bundle 方式(dsh.profile.bundles)安装的第三方插件,当前官方版本
在插件管理页不支持停用/移除(会提示"请在插件市场卸载")——这是上游对
所有市场/bundle 插件的一致限制,不是本插件的特例。想用开关就选方式 A。

验证

  • 重启后打开任意会话,点击消息里的外链 → 应在默认浏览器打开;
  • 应用内导航、设置页、下载等不受影响;
  • 停用插件后重启,链接会回到"点了没反应"(说明确实由本插件接线)。

版本历史

  • 0.1.0:壳层桥接损坏期方案 —— 自带 PowerShell 宿主路由(Start-Process)绕开 cmd start bug。
  • 0.2.0:适配 5.3.6 —— 桥接已修复,去掉宿主路由,改为直连 shell.open-external。

兼容性

  • 目标:DSH 桌面端 ≥ 5.3.6 Windows 版(dsh-eac-shell.exe);
  • 5.3.6 之前的版本请用 0.1.0(原生桥在那之前是坏的);
  • 纯客户端实现,无框架依赖、无需 PowerShell;
  • 插件装在用户 profile(~/.dsh),DSH 桌面端版本更新不会覆盖它。

License

MIT