dsh-session-ctxmenu
Right-click a session (or project) row in the DSH web sidebar to open that row's built-in ellipsis menu — Rename / Fork / Archive for sessions, Rename / Delete for projects — instead of clicking the tiny dots button that only appears on hover.
How it works
One capture-phase contextmenu listener. When the right-click lands inside a
[role="treeitem"] row that owns an ellipsis menu anchor, the native browser
menu is suppressed and the anchor button is clicked programmatically, so the
official DSH menu opens for exactly that row. Nothing is re-implemented: same
items, same handlers, same anchor position. Rows without a menu (blank
new-session rows, search results) and clicks outside rows keep the native
behavior.
Install (into the web profile)
cd /home/sheece/dsh-plugins/dsh-session-ctxmenu
npm pack --pack-destination ~/.dsh/plugin-tarballs
Then in ~/.dsh/profiles/web/package.json add the tarball to dependencies
and dsh-session-ctxmenu to dsh.profile.bundles, run pnpm install in the
profile directory, and restart dsh web (the profile reloads patches at
startup).
Test
node --test test/client.test.mjs
中文说明 / Chinese
在 DSH Web 侧边栏中右键点击会话(或项目)行,即可直接打开该行内置的省略号 菜单 —— 会话为「重命名 / 分叉 / 归档」,项目为「重命名 / 删除」—— 不必再去找只在悬停时才出现的小圆点按钮。
实现方式:一个捕获阶段的 contextmenu 监听器。当右键落在带省略号菜单锚点的
[role="treeitem"] 行内时,抑制浏览器原生菜单并以编程方式点击锚点按钮,
官方 DSH 菜单随即针对该行打开。没有任何菜单被重新实现:条目、处理器、
锚点位置完全一致。没有菜单的行(空白新建会话行、搜索结果)与行外点击
保持原生行为。插件本身不含界面文案,菜单语言随 DSH 界面语言自动为中文。
No comments yet. Be the first to write one.