sulfide2085/dsh-custom-context-menu0

dsh-custom-context-menu

DSH Web 自定义右键菜单:全局拦截 contextmenu,提供可扩展菜单框架,并内置“打开工作区文件夹”功能

包名
dsh-custom-context-menu
版本
0.4.0
许可证
MIT
最近更新
2026年8月16日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:sulfide2085/dsh-custom-context-menu

快速使用:注册菜单项

在浏览器控制台(F12)或其他插件中:

window.dshContextMenu.register((target, event) => {
  const row = target.closest("[data-session-row]");
  if (row === null) return null; // 不处理,交给下一个 provider

  return [
    { type: "label", text: row.dataset.title },
    { label: "复制标题", onClick: () => navigator.clipboard.writeText(row.dataset.title) },
    { type: "separator" },
    { label: "删除会话", danger: true, onClick: () => { /* ... */ } }
  ];
});

菜单项模型

形式说明
"字符串"简写 item,label 即字符串
{ label, onClick?, disabled?, danger?, hint? }常规项;onClick(item, ctx)ctx{ target, x, y }
{ type: "separator" }分隔线(连续分隔线自动压缩,首尾丢弃)
{ type: "label", text }只读分组标题

完整 API(window.dshContextMenu

成员说明
register(provider)注册 (target, event) => items[] | null,返回注销函数;多个 provider 依次询问,第一个非空结果胜出
setEnabled(bool) / enabled全局开关;关闭后完全放行浏览器原生右键菜单
open(x, y, items)命令式在视口坐标弹菜单(不经过拦截器)
close() / isOpen / itemCount关闭 / 状态查询
debug()诊断各部件状态,便于排障