Expect users to have a 5-button “gamer” mouse: left, middle (wheel click), right, and the two thumb buttons (browser back/forward, buttons 4 and 5 in X/Wayland terms, MouseEvent.button 3 and 4 in the DOM).

What that should mean in Moonkale (to design with 024):

  • Thumb buttons = navigation history: back/forward through the documents and graph positions visited (the editor stack and the graph camera), like a browser — the most common use of these buttons and what people already expect.
  • Middle click on a file, a symbol or a graph node: open in a new tab / new split without switching focus (the browser convention).
  • Double left click / right click on a symbol: the actions of 024 (definition, graph focus); the context menu should list them so a two-button user is not locked out.
  • Wheel + modifiers: Ctrl for zoom (graph, editor font later), Shift for horizontal scroll — already true in the graph.
  • Bindings should be configurable next to the keybindings (Settings → Keybindings; a mouse section in the settings file), and the defaults must not conflict with the webview’s own handling of buttons 3/4 (WebKitGTK maps them to history navigation of the page — Moonkale has to preventDefault them or the app “navigates back” out of itself; check on desktop, web and Android).

Not implemented — documented for later, together with 024.