diff options
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 43 |
1 files changed, 43 insertions, 0 deletions
@@ -66,6 +66,10 @@ list of what's deliberately not implemented (and why), see read-only response views), standard vi navigation (`j`/`k`, `g`/`G`, `ctrl+u`/`ctrl+d`) already works - that's the underlying TUI library's default, not something layered on top. +- **Mouse support**: wheel scroll anywhere there's something to + scroll, right-click for a context menu on the history/rules/scope + lists. Coexists with tmux's own mouse mode the same way any other + mouse-aware terminal app does. See [Mouse](#mouse) below. ## Install / build @@ -225,6 +229,9 @@ below is enough to get going. | `s` | target scope (what gets recorded) | | `q` | quit | +Also mouse-driven - wheel to scroll, right-click a row for a context +menu of the same actions. See [Mouse](#mouse) below. + ### Detail view `tab` switches request/response, `p` toggles pretty-printed JSON on the @@ -417,6 +424,42 @@ Repeater and Intruder always record regardless of scope - a request you deliberately resend or fuzz is something you clearly want to see the result of, not noise scope exists to cut. +### Mouse + +This is a real terminal application (any terminal, not just tmux - the +name is a naming convention, not a runtime dependency) with genuine +mouse support, not just a keyboard-only TUI: + +- **Wheel** scrolls whatever's focused - the history/rules/scope + tables, a Detail/Comparer/Decoder-output pane, or a Repeater/ + Intruder text editor. +- **Right-click** a row in the history, rules, or scope list opens a + context menu of the same actions the keyboard shortcuts already do + (view/repeater/intruder/flag/delete for history, edit/enable-disable/ + delete for rules and scope). Click an item, or navigate with + `j`/`k`/arrows and `enter`; `esc` or right-clicking again dismisses + it without doing anything. + +One honest limitation, not an oversight: the menu always acts on the +row that's currently *selected*, not necessarily the exact row your +cursor happens to be over when you right-click. The underlying table +widget doesn't expose its own scroll position, so there's no reliable +way to map a click's screen coordinates back to a specific row without +reaching into that library's private internals - which this +deliberately doesn't do, rather than risk silently selecting the wrong +one. Scroll or navigate to the row you want first; wheel scroll and +keyboard navigation both work exactly as you'd expect. + +If you're running inside tmux, its own mouse mode needs to be on too +(`set -g mouse on` in `.tmux.conf`) for mouse events to reach mitmux at +all - tmux forwards them to whichever pane is focused once that's set, +the same way it does for nvim or any other mouse-aware terminal app, +nothing mitmux-specific to configure. If you ever want to select and +copy on-screen text with the mouse instead (which an app with mouse +mode on normally intercepts), most terminal emulators let you hold +Shift while click-dragging to fall back to the terminal's own native +selection. + ## Architecture `mitmuxd` owns the proxy listener and the SQLite database; `mitmux` is |