For AI agents: the complete documentation index is available at /llms.txt, the full documentation bundle is available at /llms-full.txt, and this page is available as Markdown at /designs/mouse-selection.md.
  • 简体中文
  • 鼠标行为因界面而异

    终端里的「鼠标」其实有两套语义,Hunea 会按当前界面在两套之间切换:

    模式(概念)鼠标点选 / 拖拽归谁典型场景
    应用捕获Hunea 自己处理点击、拖拽选区、列表点选主对话区、composer,以及需要点行切换的列表
    终端原生把选区能力还给终端模拟器偏「阅读 / 预览」的全屏层

    默认主界面走应用捕获。原因很直接:

    • 需要鼠标点一下,就把 composer 光标落到对应位置
    • 需要在 transcript 上拖出一块语义选区,复制的是正文,而不是左侧装饰、缩进、状态行边距
    • 需要在列表里点行移动光标,但不误触成「终端选中半行乱码再粘贴」

    所以主界面的选区是 Hunea 自己算的:命中范围和复制范围是分开的,左边的提示符、视觉缩进可以更好点中,但复制时不会把这些装饰一起带上。选区结束后是否自动写入剪贴板,由 copy_on_mouse_selection_release 控制,默认关闭;中键也可以触发复制当前选区。消息级整段拷贝则走 /copy,和屏幕拖选是两条路径。

    但全屏层不能一刀切。Hunea 按「这一层此刻更需要点选,还是更需要读和拷」来切鼠标模式:

    • 需要点行、需要滚轮当导航的列表(例如 /tree/copy、消息历史、/prompt 的列表态)
      继续由应用捕获鼠标,并打开 alternate scroll,让滚轮稳定变成翻页/移动,而不是被终端占用。
    • 已经进入内容预览(例如树节点预览、copy 预览、prompt 预览)
      关闭鼠标捕获,把原生选区还给终端模拟器,同时保留 alternate scroll,滚轮仍可翻页。
      也就是说:预览页更像「打开了一份只读文本」,你可以直接用终端习惯去划词复制。
    • 本身就以阅读为主的层(例如 transcript overlay、会话预览)
      同样偏向原生选区 + alternate scroll。

    一句话总结:

    要交互时,鼠标归 Hunea;要阅读和划词时,比如 space 预览界面和 Ctrl + t 进入的详情界面,鼠标归终端。

    这就是你会感觉「有的界面能像普通终端一样拖选,有的界面拖不动、却能点选列表」的原因。