Skip to content
dsh.fish
Bundle

dsh-session-ctxmenu

Right-click a session/project row in the DSH sidebar to open its built-in ellipsis menu (Rename / Fork / Archive) instead of hunting for the dots button.

Source
afterrealism
stars
1 stars
License
MIT
Updated
Updated 18 hours ago

Readme

# 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)

```sh
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

```sh
node --test test/client.test.mjs
```

## 中文说明 / Chinese

在 DSH Web 侧边栏中右键点击会话(或项目)行,即可直接打开该行内置的省略号
菜单 —— 会话为「重命名 / 分叉 / 归档」,项目为「重命名 / 删除」——
不必再去找只在悬停时才出现的小圆点按钮。

实现方式:一个捕获阶段的 `contextmenu` 监听器。当右键落在带省略号菜单锚点的
`[role="treeitem"]` 行内时,抑制浏览器原生菜单并以编程方式点击锚点按钮,
官方 DSH 菜单随即针对该行打开。没有任何菜单被重新实现:条目、处理器、
锚点位置完全一致。没有菜单的行(空白新建会话行、搜索结果)与行外点击
保持原生行为。插件本身不含界面文案,菜单语言随 DSH 界面语言自动为中文。

Install

dsh plugin --profile web add github:afterrealism/dsh-session-ctxmenu#e1ac6ff47d56ce01e61014a2dec397b96c6c0679

Profile: web

Source