For AI agents: the complete documentation index is available at /en/llms.txt, the full documentation bundle is available at /en/llms-full.txt, and this page is available as Markdown at /en/designs/mouse-selection.md.
  • English
  • Mouse behavior varies by view

    “Mouse” in a terminal really has two semantics, and Hunea switches between them by view:

    Mode (concept)Who owns click / dragTypical scenes
    App captureHunea handles clicks, drag selection, list row picksMain conversation, composer, and lists that need click-to-select
    Terminal nativeSelection returns to the terminal emulatorFull-screen layers that are more “read / preview”

    The main UI defaults to app capture. Reasons are straightforward:

    • A click should place the composer cursor at that character
    • Dragging on the transcript should produce a semantic selection — body text, not left chrome, indent, or status margins
    • Lists should move the cursor on click without accidentally becoming “half a garbled terminal selection ready to paste”

    So main-UI selection is computed by Hunea: hit testing and copy range are separate — left prompts and visual indent can still be easy to click, but copy does not take the decoration with it. Whether a finished selection auto-writes the clipboard is controlled by copy_on_mouse_selection_release (default off). Middle-click can also copy the current selection. Whole-message copy goes through /copy — a different path from screen drag-select.

    Full-screen layers are not all-or-nothing. Hunea picks mouse mode by whether the layer needs click navigation or reading/copying right now:

    • Lists that need row clicks and wheel-as-navigation (e.g. /tree, /copy, message history, /prompt list state)
      Stay under app capture, with alternate scroll so the wheel reliably pages/moves instead of being eaten by the terminal.
    • Content preview already open (tree node preview, copy preview, prompt preview, …)
      Mouse capture is turned off so native selection returns to the emulator, while alternate scroll stays so the wheel still pages.
      In other words: preview is more like “a read-only text view” where your terminal’s usual drag-to-copy habits work.
    • Layers that are reading-first (transcript overlay, session preview, …)
      Same bias: native selection + alternate scroll.

    One-line summary:

    When interaction matters, the mouse belongs to Hunea; when reading and drag-select matter — e.g. Space previews and the Ctrl+T detail view — the mouse belongs to the terminal.

    That is why some views feel like a normal terminal for selection, while others refuse to drag-select yet happily accept list clicks.