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

设置快捷按钮 REALOIYO/dsh-settings-button

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

一个齿轮按钮,直接打开 DeepSeek HarnessDSH 的设置面板 ——…

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · browser
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 10 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DeepSeek Harness 的齿轮按钮,一键打开设置对话框,桌面端和手机通过局域网都能用。

README

由 DeepSeek 最新模型翻译生成
dsh-settings-button 一个齿轮按钮,直接打开 DeepSeek Harness(DSH) 的设置面板 —— 桌面端、手机端、局域网访问都一次点击直达。 为什么需要它 DSH 默认没有独立的设置按钮。桌面端可以按快捷键,但在手机上通过局域网访问 Web GUI 时没有键盘,想进设置只能:点开左下角的账号菜单 → 再点菜单里的「设置」。每次两步。 这个插件把齿轮放在手机号旁边,点一下直接打开设置。 功能 - 齿轮位于侧边栏账号行右侧,紧挨手机号 - 一次点击直达设置面板 - 桌面端与移动端行为一致 - 纯前端状态,局域网设备同样可用 - 收起侧边栏(rail 模式)下自动缩为图标 - 不挤占同区域其他插件的控件 安装 从 GitHub 直接安装(本包尚未发布到 npm): dsh plugin add github:REALOIYO/dsh-settings-button 或在 DSH profile 目录(通常是 ~/.dsh/profiles/desktop)中: pnpm add github:REALOIYO/dsh-settings-button 然后确认它出现在 package.json 的 dsh.profile.bundles 数组里 —— 不在该数组中宿主不会加载它。重启 DSH 生效。
展开完整文档(README 剩余 1 节)
dsh-settings-button

一个齿轮按钮,直接打开 DeepSeek Harness(DSH) 的设置面板 —— 桌面端、手机端、局域网访问都一次点击直达。

为什么需要它

DSH 默认没有独立的设置按钮。桌面端可以按快捷键,但在手机上通过局域网访问 Web GUI 时没有键盘,想进设置只能:点开左下角的账号菜单 → 再点菜单里的「设置」。每次两步。

这个插件把齿轮放在手机号旁边,点一下直接打开设置。

功能

- 齿轮位于侧边栏账号行右侧,紧挨手机号
- 一次点击直达设置面板
- 桌面端与移动端行为一致
- 纯前端状态,局域网设备同样可用
- 收起侧边栏(rail 模式)下自动缩为图标
- 不挤占同区域其他插件的控件

安装

从 GitHub 直接安装(本包尚未发布到 npm):

dsh plugin add github:REALOIYO/dsh-settings-button

或在 DSH profile 目录(通常是 ~/.dsh/profiles/desktop)中:

pnpm add github:REALOIYO/dsh-settings-button

然后确认它出现在 package.json 的 dsh.profile.bundles 数组里 —— 不在该数组中宿主不会加载它。重启 DSH 生效。

发布到 npm 之后,上面的命令可以简写为 dsh plugin add dsh-settings-button。

卸载

pnpm remove dsh-settings-button

并从 dsh.profile.bundles 中移除对应条目,重启 DSH。

工作原理

设置面板的状态由一个私有 store 持有,插件无法直接访问。可用的入口有两个:

1. 宿主在 shortcuts 服务上注册的 settings.open 命令
2. settings.launcher slot 传给组件的 openSettings prop —— 但该 slot 是 single,已被账号菜单占用

本插件走第 1 条:ShortcutsService 没有转发 invoke,但它的 registry 字段在运行时只是一个普通属性,因此 ctx.shortcuts.registry.invoke('settings.open', { modal }) 可以直达 actions.open()。若宿主将来收紧该字段,会自动回退到驱动账号菜单的方式,按钮不会彻底失效。
设置面板的外壳把展开状态存在一个私有 store 里。入口有两个:宿主提供的 settings.open 命令,以及传给 settings.launcher 的 openSettings prop —— 但这个槽位是 single,已经被账号菜单占用了。本插件走命令这条路:ShortcutsService 不转发 invoke,不过它的 registry 字段在运行时就是个普通属性,所以 ctx.shortcuts.registry.invoke('settings.open', { modal }) 能直接调到 actions.open()。万一宿主哪天把这个字段收紧了,按钮会退回去驱动账号菜单,而不是直接坏掉。

兼容性 / Compatibility

- 面向 DSH 0.2.1-rc.3 开发 / Built against DSH 0.2.1-rc.3
- 与 0.2.1-rc.2 及更早版本兼容(定位逻辑带逐级回落) / Works on 0.2.1-rc.2 and earlier too — the locator falls back step by step
- 不绑定键盘快捷键,局域网设备可用 / No keyboard shortcut involved

定位策略 / How the row is located

0.2.1-rc.3 给侧边栏新增了一个「更多」按钮,它同样带 aria-label + aria-haspopup="menu",且在文档顺序上排在账号行之前。
旧版用 document.querySelector('button[aria-haspopup="menu"][aria-label]') 取全局首个匹配,于是齿轮被挂到了「更多」旁边。

0.2.1-rc.3 added a sidebar More button that carries the same
aria-label + aria-haspopup="menu" pair and appears *earlier in document
order. The old locator took the first global match, so the gear got portalled
next to More instead of into the account row.

v1.0.1 起改为三级定位,每级都做了作用域收敛:

Since v1.0.1 the locator is three-tiered, each tier scoped:

| 顺序 | 选择器 | 唯一性依据 |
| 1 | button[data-signed-out] | 账号行无条件渲染该属性(登录时为字符串 "false"),「更多」按钮没有 |
| 2 | [class="settingsArea"] button[aria-haspopup="menu"] | 限定在 sidebar.settings 槽位容器内 |
| 3 | 全局 aria-haspopup 匹配,但排除 footerActions 内的元素 | 兼容旧宿主 |

第 2 级用了 [class="settingsArea"] 属性子串匹配,因为该 class 由 CSS Module 编译带哈希前缀(实际为 wtg9ga_settingsArea)。子串匹配在宿主改变命名时仍有效,但它确实是一个类名依赖 —— 与「完全不依赖类名」的旧表述不同,特此更正。

Tier 2 relies on a [class="settingsArea"] substring match because the class
is CSS-Module-hashed (actually wtg9ga_settingsArea). It survives renames, but it
is a class-name dependency — correcting the earlier "no class-name dependency" claim.

许可 / License

MIT
预览分享卡片长什么样 ↓REALOIYO/dsh-settings-button
分享 · DeepSeek Harness Hub
REALOIYO/dsh-settings-button

一个齿轮按钮,直接打开 DeepSeek HarnessDSH 的设置面板 ——…

这是你的仓库?认领条目

回到顶部