🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

工作区右键菜单 Homeless-Attila/dsh-open-workspace-folder

DeepSeek Harness
Homeless-Attila15 天前有提交已提供中文文档扫描:未发现敏感能力

右键工作区即可打开文件夹、定位路径或就地改名

30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/21 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Homeless-Attila/dsh-open-workspace-folder
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · market
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
L4 · 真实安装等级说明 →
数据截至 2026/10/21·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 15 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

写入剪贴板(不计风险)
查看扫描证据(共 1 处,展示前 1 条)
  • 写入剪贴板
    client.js:402
    await navigator.clipboard.writeText(text)
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DSH Desktop 工作区右键菜单:打开本地文件夹、在资源管理器中定位、就地重命名 | 在 DSH Desktop 里右键工作区,即可打开、定位或重命名

README

由 DeepSeek 最新模型翻译生成
dsh-open-workspace-folder 在 DSH Desktop 的工作区列表里右键任意工作区,直接打开对应的本地文件夹,或就地改名。 在工作区上右键 一个很小的 DSH 客户端插件,无网络请求,无子进程。打开文件夹复用 DSH 自带的 Session Remote session.openWorkspacePath(),所以 Windows 上用资源管理器、macOS 上用 Finder、 Linux 上用 xdg-open 打开路径,行为和 DSH 的「Open In」按钮一致;改名复用 DSH 的 workspace.rename 命令,和侧栏自己的重命名完全等价。 功能 - 打开工作区文件夹:在系统文件管理器中打开工作区根目录(回车键同样触发)。 - 在资源管理器中定位:调用 action: 'reveal',在文件管理器中定位该目录。 - 重命名工作区:菜单内直接改名,走 DSH 自带的 workspace.rename 命令,与侧栏自己的重命名是同一套逻辑(重启后仍然生效,其他窗口同步看到);名称为空或与已有工作区重名时会在菜单内提示,不会静默失败。 - 复制路径:复制工作区绝对路径到剪贴板。 - 菜单跟随 DSH 主题(明/暗),支持 Esc 关闭、方向键导航、点击外部关闭。 - 所有图标为内联 SVG;无外部字体、图片、CDN 或网络请求。
展开完整文档(README 剩余 1 节)
dsh-open-workspace-folder

在 DSH Desktop 的工作区列表里右键任意工作区,直接打开对应的本地文件夹,或就地改名。

在工作区上右键

一个很小的 DSH 客户端插件,无网络请求,无子进程。打开文件夹复用 DSH 自带的 Session Remote
session.openWorkspacePath(),所以 Windows 上用资源管理器、macOS 上用 Finder、
Linux 上用 xdg-open 打开路径,行为和 DSH 的「Open In」按钮一致;改名复用 DSH 的 workspace.rename 命令,和侧栏自己的重命名完全等价。

功能

- 打开工作区文件夹:在系统文件管理器中打开工作区根目录(回车键同样触发)。
- 在资源管理器中定位:调用 action: 'reveal',在文件管理器中定位该目录。
- 重命名工作区:菜单内直接改名,走 DSH 自带的 workspace.rename 命令,与侧栏自己的重命名是同一套逻辑(重启后仍然生效,其他窗口同步看到);名称为空或与已有工作区重名时会在菜单内提示,不会静默失败。
- 复制路径:复制工作区绝对路径到剪贴板。
- 菜单跟随 DSH 主题(明/暗),支持 Esc 关闭、方向键导航、点击外部关闭。
- 所有图标为内联 SVG;无外部字体、图片、CDN 或网络请求。

安装

要求 DSH Desktop 已安装,且 dsh 命令在 PATH 中。

从本地克隆安装

git clone https://github.com/Homeless-Attila/dsh-open-workspace-folder.git
dsh plugin --profile desktop add .\dsh-open-workspace-folder

直接从 GitHub 安装

dsh plugin --profile desktop add github:Homeless-Attila/dsh-open-workspace-folder

这条命令会:

1. 把插件目录作为 link: 依赖(或 git 依赖)写进 desktop profile;
2. 因为包声明了 dsh.bundle.patch,自动把 dsh-open-workspace-folder 追加到 dsh.profile.bundles;
3. 校验 bundle patch 可组合。

安装后需要完全退出并重新启动 DSH Desktop,让新的客户端 bundle 加载。

目前尚未发布到 npm。发布后即可直接
dsh plugin --profile desktop add dsh-open-workspace-folder。
如果以 link: 方式安装,移动插件目录后需要重新执行一次 add <新路径>。

使用

1. 在左侧工作区树中找到一个工作区。
2. 右键该工作区行。
3. 选择「打开工作区文件夹」,或「重命名工作区」后输入新名称,Enter 保存、Esc 取消。

如果当前 DSH 运行在普通浏览器里、宿主端不允许打开本地路径,菜单会显示「当前窗口不支持打开本地文件夹」,复制路径与重命名仍然可用。

重命名有两条约束:名称不能为空,且不能和已有工作区重名(侧栏本身也如此)。
两种错误都会显示在菜单底部,菜单保持打开,方便直接改名重试。

卸载

dsh plugin --profile desktop remove dsh-open-workspace-folder

然后重启 DSH Desktop。

结构

dsh-open-workspace-folder/
package.json # dsh.bundle.patch + dsh.client (platform: web)
cordis.patch.yml # 挂载一行 host 插件 index.js # host half:空实现,不注册路由、不启动进程 client.js # 全部功能:右键菜单 + Session Remote + 重命名 test/smoke.test.mjs # 冒烟测试:bundle 能注册、导出正确、无网络调用 docs/preview.png # 右键菜单截图 README.md LICENSE

实现要点

- client.js 是一个标准 DSH 客户端 bundle:
window.__ModuleLoader__.load({ id, factory }),React 从模块表 require('react') 取得。
- 通过 ctx.get('slots') 向 shell.overlay 注册一个菜单组件;组件从 shell.overlay 的 useWorkspaces 属性订阅工作区快照。
- 捕获阶段监听 contextmenu,只处理带 data-row-key="workspace:<id>" 和 aria-expanded 的工作区 treeitem;会话行(带 aria-selected)和 data-row-key="workspace:" 的「未分组」伪工作区会被忽略。
通过 span[class$="_title"] 的文本兜底匹配实时工作区列表,拿到 workspace.path。
- 打开动作使用宿主已有的 Session Remote:

const remote = ctx.get('remote')
await remote.session.openWorkspacePath({ path })
await remote.session.openWorkspacePath({ path, action: 'reveal' })

不需要 host RPC,也不需要自己拼 explorer.exe 命令行。
- 重命名使用宿主已有的工作区服务,不新建通道:

const remote = ctx.get('remote')
const result = await remote.workspace.rename({ workspaceId, title })
// { ok: true, value: { workspace } } | { ok: false, error: { code, message } }
客户端服务版 ctx.get('workspaces').rename(workspaceId, title) 更直接,失败时抛出 workspace rename failed: : <message>。插件优先用它,退化到 remote.workspace.rename。常见错误码:workspace/name-conflict(重名)、gateway/bad-request(名称为空)。
- 客户端模块额外导出 Cordis 服务注入:

js
exports.inject = ['remote', 'remote.session']

注意它和 package.json 里的 dsh.client.inject(模块依赖图)是两套机制,只配置后者时运行时仍会报 cannot get property "remote.session" without inject。

已知限制

- 桌面端没有客户端 HMR 插槽,安装或改代码后必须完全重启 DSH Desktop;仅刷新窗口不够。
- 菜单依赖工作区行的 DOM 结构(data-row-key / aria-expanded)。DSH 前端若改动这些标记,需要同步调整 client.js。

开发校验 powershell
npm run check # node --check 两个 bundle
npm test # node --test:bundle 注册、导出、无网络调用

开发时另做过一轮隔离测试页验证(菜单注册、定位/打开/复制、Esc 关闭、会话行忽略、「未分组」忽略、宿主不允许打开时禁用打开项等),并在独立 desktop profile Web 运行时按 1440×900 实测右键、打开、定位与复制路径,均无报错。

License

MIT
预览分享卡片长什么样 ↓Homeless-Attila/dsh-open-workspace-folder
分享 · DeepSeek Harness Hub
Homeless-Attila/dsh-open-workspace-folder

右键工作区即可打开文件夹、定位路径或就地改名

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部