- Главная
- Плагины
- Улучшения UI
- Remu-desktop-shortcuts
Remu-desktop-shortcuts
khaliljar/remu-desktop-shortcuts
Adds configurable shortcuts to DSH Desktop, including Developer Tools in supported editions; ideas and contributions are welcome.
Установка
dsh plugin --profile web add github:khaliljar/remu-desktop-shortcutsREADME
Remu Desktop Shortcuts
给 官方 DeepSeek Harness Desktop 和 社区版 dsh-desktop 用的快捷键小插件:把「我又想伸手拿鼠标了」的时刻,变成一个自己喜欢的组合键。
最新加入的是「会话轮切板」——按住一个键,像 Alt+Tab 一样把这次打开过的会话横排摊开,边看边选,松开手才真正切过去。它不是系统热键,也不会抢你的 Alt+Tab,只在 DSH Desktop 窗口里工作。
**适用范围:Desktop 内容页。**普通浏览器中的 DSH Web 暂不支持;它也不是系统全局热键。下面的功能和安装说明针对本仓库的 0.4.6 代码;安装前请看下载到的
package.json版本。官方和社区版的行为不完全相同,详情见兼容与实测。
0.4.6 这次更新了什么
- **新增「会话轮切板」:**按住
Alt连按一个你录制的普通键(例如Alt+Q),把本次启动后打开的会话横排成卡片;松手才切换,中途可按Esc反悔。Shift+Alt+Q反向,Ctrl+Alt+Q固定板可用键盘或鼠标完整操作。仅 DSH NEXT + Windows 启用。 - **一次录制、三个派生键:**只要录一次
Alt + 普通键,插件据此生成正向、反向、固定三个组合。如果任何一个已被占用,一个都不保存,原键位保持不变。 - **移除候选不等于删除会话:**卡片上的
×或Delete只把这张卡从本次候选里拿掉,绝不归档真实会话;重新访问该会话会自动回列。 - **实际验证:**轮切板已在 Windows DSH NEXT 环境实际按
Alt+Q完成轮切确认;本地 31 项自动化测试全部通过。其他系统与其余动作尚未逐项实测。
为什么要做这个
我每天同时开着好几个会话:一个在写代码,一个在查资料,一个在等长任务跑完。DSH 的侧栏能点,会话速切也能连按轮换,但轮换是盲的——你按下去只知道「切了」,不知道切到的是哪个,切错了还得再按几次绕回来。那种「明明是我自己的东西,却要靠记忆去摸」的感觉,很别扭。
我想要的其实只有一件事:把选择权还给眼睛。摊开、看、再决定。就像 Windows 的 Alt+Tab——它之所以好用,不是因为它能切换,而是因为它在切换之前先让你看见。
灵感也正来自这里:Alt+Tab 的交互模型几乎是被验证过的最舒服的切换方式之一,按住键不放反复扫,松手确认,中途反悔按 Esc。但有一个关键差别——系统的 Alt+Tab 我不能、也不该去接管。所以我做的是一个「长得像、但只活在自己应用里」的版本:它不去碰系统热键,也不在你的桌面到处铺东西,只在 DSH 的窗口里,为你自己的会话服务。
顺带一提,做这个东西时最花时间的不是画卡片,而是那句「松开 Alt 才提交」。DSH NEXT 的原生快捷键桥只转发按下、不转发松开。要么老老实实确认松开这件事能不能被可靠观测,要么就只能偷偷改成「按回车确认」——后者看起来一样能用,但它已经不是你想要的那个东西了。我把证据查清楚、把不可靠的情形(焦点在内嵌网页里)改成拒绝打开,才算敢把它交出来。
会话轮切板
只在 DSH NEXT 的 Windows Desktop 上注册。其他环境(官方 Desktop、社区版、macOS/Linux、普通 Web)连动作都不会出现,不会给你留下按了没反应的键位。
只录一次:Alt + 一个普通键
在 设置 → 自定义快捷键 的最下方,点 + 录制轮切键,按住 Alt 再按一个普通键(例如 Alt+Q)。插件会据此派生三个组合:
| 组合 | 作用 |
|---|---|
Alt+Q | 打开临时板;按住 Alt 反复按,高亮向右移动 |
Shift+Alt+Q | 高亮向左移动(反向) |
Ctrl+Alt+Q | 固定板(松开 Alt 也不消失),Enter 或点卡片打开 |
保存是一次性的、原子的:插件先检查派生出的三个组合有没有被别的动作占用,只要有一个冲突或本身不合法,就一个都不写,并在设置页说明冲突,原来的键位保持不变。这比「先保存一半、剩下的让你自己收拾」诚实。
临时板:松开 Alt 才真的切过去
- 第一次按下时,高亮的是上一个访问过的会话,此时不会发生任何跳转。
- 按住
Alt继续按基础键,高亮在候选之间移动;Shift+Alt+基础键反向。 - 松开
Alt才提交:高亮的会话被打开,板随即关闭。 Esc取消;窗口失焦同样取消(不会「猜」你想去哪);长按不会触发自动重复。
这里有一个硬性前提:只有真的能观察到
Alt松开,才允许做「松手即切换」。DSH NEXT 的原生快捷键桥只转发按下、不转发松开,所以插件监听的是页面自己的keyup。如果焦点落在内嵌网页(iframe / webview)里,这条通道不可靠——此时插件拒绝打开并给出提示,而不是改用计时器去猜。这就是为什么它宁可不响应,也不假装成功。
固定板:用键盘或鼠标都能干净退出
Ctrl+Alt+基础键 打开固定板后,松不松 Alt 都不影响它显示。可以继续用基础键/反向键或 ←/→ 移动、Enter 打开、点击卡片打开、Esc 取消、点击板外区域取消。再次按下 Ctrl+Alt+基础键 是「取消」,不会悄悄提交当前高亮。
板上有什么,以及「当前会话」的位置
每张卡片显示会话标题、工作区名称和「当前」标记。当前正在看的会话固定是第一张,但它不在移动环里:高亮永远不会落在它上面,因为「切到自己」是没有意义的动作。
候选来自本次 DSH 启动后真正打开过的会话(跨工作区),沿用插件原有的过滤:不含子 Agent、不含已归档、不含从未开始的空白草稿。候选不足两个时不弹板,只留一句轻提示,不替你猜。
移除候选 ≠ 删除会话
卡片右上角的 ×(或按住 Alt 时按 Delete)只是把这张卡片从本次启动的候选里拿掉,绝不会归档或删除真实会话。被拿掉的会话在你之后重新访问它时会自动回到候选里;仅仅重渲染页面不会让它立刻弹回来。重启 DSH 后这份临时移除记录清零。
已知边界
- 只在 NEXT + Windows 上启用,其他组合未实测,也未做兼容处理。
- 打开板时焦点若在输入框里,取消会把焦点还回去;提交则不会(你已经换了会话)。
- 板上不显示消息摘要:插件没有低成本可信来源去取「最近一句」,而全库扫消息代价太大,所以退化为标题 + 工作区。
- 真机按键在 Windows DSH NEXT 上已确认可用;多屏、输入法干扰、以及按键与 DSH 自身方向键处理同时生效时的观感尚未逐一验证。
我平时用社区版 dsh-desktop,最喜欢增强模式:窗口上方那条有点突兀的灰色终于不见了。但随着灰条一起消失的,还有顺手打开 DevTools 的入口;连 Ctrl+Shift+I 也调不出来。于是我请 GPT 帮忙写了第一版插件——那时它只做一件事:让我能用自己设的快捷键打开开发者工具。
后来我又发现,每天真正在意的都是些很小的动作。浏览器可以 Ctrl+数字 切标签页,我也想这样切 DSH 的功能页;从功能页回到聊天时,总要再拿鼠标点一下输入框,我也想一步到位。于是有了会话速切、正文聚焦、返回上一个会话……它们不是凭空设计的功能清单,而是我用着用着,确实想要的东西。
当然,不用鼠标、只用键盘完成一串操作,真的很有一点 hack 感。这也是我想把这个小插件分享出来的原因。如果你也有「这里明明很适合加个快捷键」的瞬间,欢迎来聊。
能做什么
除下方特别注明的固定编号键外,可录制动作默认都不绑定键位:你自己选择,冲突时由 DSH 的快捷键服务校验,不改 Enter 发送行为,也不抢系统级快捷键。
| 动作 | 实际效果 | 说明 |
|---|---|---|
| 返回会话 | 从功能页回到当前会话,不创建新会话。 | 官方、社区 Desktop 均提供。 |
| 返回会话并聚焦输入框 | 回到当前会话,让光标进入消息输入框,省一次鼠标点击。 | 需要已有会话及可用的输入框。 |
| 聚焦会话内容(方向键滚动) | 将焦点从输入框移到当前会话正文的滚动区,随后可用方向键正常滚动。 | 不切换会话,也不改正文。 |
| 速切最近会话(连按轮换) | 按一次切到下一会话;约 1.8 秒内连按,在当前可见的普通会话中继续轮换。 | 列表也可能包括可见但尚未访问的会话;不跳到归档会话或子 Agent 会话。 |
| 返回上一个会话(往返切换) | 类似 cd -:在最近访问过的两个会话间往返。 | 本次页面加载后先访问至少两个会话;重新加载会重置这份临时访问记录。 |
会话轮切板(Alt+K / 反向 / 固定) | 按住 Alt 连按基础键,把本次打开过的会话横排摊开;松开 Alt 才切到高亮那个。 | 只需录一次 Alt + 普通键。仅 DSH NEXT + Windows,详见上文会话轮切板。 |
| 切换到功能页 1~9 | 为每个编号分别录制快捷键;1~8 对应左侧当前功能页顺序,9 对应最后一个功能页。 | 目标页尚未出现时不会乱跳;官方 Desktop 也可用录制方式配置。 |
| 开发者工具 | 用自己录制的键切换 DevTools。 | 社区 Stable 2.0.18 使用旧桥,DSH NEXT 2.0.22-next 使用其受控桌面指令;NEXT 的自定义录制和按键打开 DevTools 已在 Windows 实机确认。无桥的官方 Desktop 不显示此动作,请用应用菜单。 |
另外:社区 Stable 2.0.18 / Windows 保留固定 Ctrl+1~8(按左侧功能页顺序)、Ctrl+9(最后一个功能页),无需录制;与已有绑定冲突时不接管。DSH NEXT 与官方原生 Desktop 不提供这组固定键,可以给上表中的九个功能页动作分别录制键位。系统 Alt+Tab 不受影响。
安装与第一次使用
推荐:在 Desktop 中安装
- 打开你实际使用的 DSH Desktop,在侧栏进入 插件 → 添加插件;也可以点「添加插件」旁的箭头,选 安装第三方插件。如果这里显示不可用,先确认当前 Desktop 使用了可管理插件的 Profile。
- 在安装框里填入本仓库地址:
https://github.com/KhalilJar/Remu-desktop-shortcuts.git,点击 安装。它接受 Git 地址,不需要把单独的client.js复制到 DSH 的安装目录。 - 安装成功后点击 立即启用;在已安装插件中确认
kana-desktop-shortcuts已启用。如果界面提示需要重启,就按提示重启 Desktop。 - 打开 设置 → 自定义快捷键,选择动作,点击 + 录制快捷键;按下希望使用的组合键,确认没有冲突提示。关闭设置后,回到 Desktop 内容页实际按一次试试。除了社区 Stable Windows 的固定
Ctrl+数字,本插件不会替你预设键位。
**版本提醒:**请以实际下载到的
package.json和安装器显示的版本为准。0.4.6 起包含「会话轮切板」;0.4.5 起包含 DSH NEXT DevTools 适配及录制控件修复;若仍是 0.4.3,则有其他 Desktop 快捷键动作,但 NEXT 不显示 DevTools 动作。仅更新 README 文字不会更新你已安装的插件。
Desktop 安装器拉取 Git 仓库失败?使用本地目录
在仓库页面用 Code → Download ZIP 下载并解压,或者在装有 Git 的终端执行:
git clone https://github.com/KhalilJar/Remu-desktop-shortcuts.git
这条命令把仓库下载到当前目录下的 Remu-desktop-shortcuts 文件夹。然后回到上面的 添加插件,填入解压/克隆后的完整目录绝对路径——即同时包含 package.json 和 cordis.patch.yml 的文件夹,不是其中某一个文件。安装源或 GitHub 连接失败时,本地目录方式不需要由 DSH 再去下载该仓库;若安装器报告依赖脚本需要授权,请先看清具体包名和风险,不要盲点批准。安装本地旧版也不会凭空获得 0.4.5 的 NEXT DevTools 与录制控件修复。
如果你习惯命令行,Desktop 自带的「打开 DSH 终端」也提供 dsh plugin add <Git 地址或本地绝对路径>;先用图形界面更容易看见安装失败原因和启用状态。不要把普通终端里的另一套 DSH CLI 当作当前 Desktop Profile 的安装器。
升级或排查
- **设置页没出现:**确认装在正在使用的 Desktop Profile、插件已启用,并按安装器提示重载/重启;不要只看“安装成功”。普通 DSH Web 不会出现此页。
- **提示“快捷键配置不可读取”:**先检查插件版本。0.4.0/0.4.1 的新增功能页动作 ID 曾与官方原生 Desktop 的校验规则不兼容;0.4.2 起已修复。不要为排查直接清空键位或点“恢复默认”。
- **键位保存了但按下没反应:**先关闭设置或菜单,让 DSH 主窗口获得焦点;检查冲突提示,以及组合键是否被操作系统抢先处理。独立 DevTools 窗口、其他应用或内嵌网页不是本插件的热键作用范围。
- **从社区 Stable 2.0.18 升到 DSH NEXT 2.0.22-next 后键位不见了:**有用户实测插件键位与 DSH 内置键位一起恢复默认,重新绑定后可用。旧版快捷键实际使用 Electron 页面
localStorage;NEXT 改用原生 Desktop 的keybindings.json,且该产品未提供 Stable/Beta 数据迁移。**这不证明旧数据已被删除。**保留原六个动作 ID 不等于跨产品自动搬运键位;请在 NEXT 中检查并重新录制,别直接复制旧存储或清空新配置。 - **从社区版切到官方版后键位不见了:**不同 Desktop/Profiles 的快捷键存储也不一定相同,需要在各自环境检查并录制。插件不主动迁移或清除旧绑定;若曾在 0.4.0/0.4.1 给新增九个功能页动作录过键,因 ID 已修正,这九项需要重新录制。
- **更新插件:**在插件页核对当前版本和来源;第三方 Git/本地安装不保证自动获得新代码。按插件管理器的升级提示操作,必要时先记下自己的键位,再卸载旧包、安装新版并启用;不同 Profile 要分别处理。
兼容与实测
这不是「所有 DSH、所有系统、所有组合键都保证生效」的承诺。以下是已经观察到的范围,不是仅凭单元测试推测:
| 环境 | 已有证据 | 尚未保证 |
|---|---|---|
| 社区版 Windows Desktop 增强模式 | 早期版本的原六项与固定 Ctrl+1 获用户实际按键确认。 | 新版所有组合键并未逐一复测。 |
| 社区版 Windows Desktop 兼容模式 | 0.4.1 起用户确认设置页出现、原有“返回并聚焦输入框”键位生效。 | DevTools 与所有固定编号键尚未逐一实测。 |
| 社区版 Windows Desktop 扩展模式 | 用户截图确认设置页及旧绑定可见,并反馈已测试键位生效。 | 每个动作和固定编号键未逐一实测。 |
| DSH NEXT 2.0.22-next / Windows | 0.4.3 的普通动作用户重新录制后可用;0.4.5 的“开发者工具”已在插件设置页持续录制、保存/修改,关闭设置后按键实际打开 DevTools;同一动作也出现在 DSH 自带快捷键弹窗。0.4.6 的会话轮切板已实际按下并完成轮切。 | 其他键位未逐一复测;旧 Stable 的固定 Ctrl+数字 不会在 NEXT 接管。 |
| 官方 Windows DSH Desktop 0.2.1-rc.5 | 0.4.2 起用户确认配置可读、录制可用,录制的“返回并聚焦输入框”从功能页触发成功。 | 官方原生环境不显示社区 DevTools 动作;九个功能页动作尚未逐一实测。 |
| macOS / Linux Desktop | 按相应环境的桥接与快捷键校验能力尝试降级。 | 暂无真机验证;允许的组合和实际送达可能不同。 |
| 普通 DSH Web | 本版刻意不启用。 | 不要在浏览器里寻找这个设置页。 |
本地 0.4.6 通过 31 项单元测试,其中「会话轮切板」在 NEXT 2.0.22-next / Windows 已获用户实机按键确认;这不等于其他模式、系统或全部键位都已验收。插件依赖 DSH 的 shortcuts、settings.section、shell.overlay、会话、布局、工作区等客户端服务和部分页面结构;未来版本若改动这些接口,仍可能需要适配。
万一以后官方也做了同样的功能?
我当然也担心「好不容易做出来,官方更新就有了」。但仓库里的代码不会被 DSH 更新自动改写;真正要留意的是接口变动可能让插件失效,或内置快捷键与自己的设置发生冲突。遇到重叠功能,可以优先用更稳定的内置实现,移除冲突绑定,或关闭本插件;不必为了“证明插件有用”硬撑。
如果官方后来真的做了,那说明这些小麻烦也被更多人看见了。至少我已经把每天真实想用的操作做成了一个可以分享、改进、选择是否启用的东西;这件事本身就不算白做。
反馈与一起完善
欢迎在 Issues 提你日常想要、但还没有快捷键的动作,也欢迎提交 Pull Request。遇到问题时请附上:官方/社区版、DSH 与插件版本、操作系统、所用模式、录制的组合键、预期与实际现象;能给复现步骤更好。请勿上传账号凭据、会话正文或私有配置。
想参与本地验证:在仓库根目录安装 Node.js 后运行 node --test test/client.test.mjs(--test 使用 Node 自带测试运行器;若你的终端不允许子进程,可直接运行 node test/client.test.mjs);node --check client.js 只检查语法,不改你的键位。测试通过不等于你那台机器上的按键一定能触发,最有价值的反馈仍然来自真实使用。
Похожие плагины
dsh-web (dsh-task-board)
zhu1090093659/dsh-web
dsh-web (dsh-web-all)
zhu1090093659/dsh-web
dsh-TUI
ccch1mneyyy/dsh-tui
dsh-web-ui (dsh-task-board)
zhu1090093659/dsh-web-ui