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
mousesection 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 topreventDefaultthem or the app “navigates back” out of itself; check on desktop, web and Android).
Not implemented — documented for later, together with 024.