XeFM supports mouse interaction in both Desktop mode (CoreGraphics backend on macOS) and Terminal mode (curses backend in supported terminals). You can click to move the cursor and switch panes, scroll with the wheel, right-click for a context menu, and — in Desktop mode — drag files out to other applications.
python -m xefm --backend guipython -m xefm (default terminal mode)If your terminal doesn’t support mouse events, XeFM automatically falls back to keyboard-only operation without errors. You can always use the Tab key to switch between panes.
The mouse moves the cursor and controls which pane is active.
Clicking a row is the mouse equivalent of arrowing the cursor onto it; press Enter (or double-click, in the contexts noted below) to open or navigate. Multi-selection is still done with Space (or +/* patterns).
Right-clicking a file or directory opens a context menu of common operations for that item.
┌─────────────────────────────────────────────────────────────┐
│ Left Pane │ Right Pane │
│ (Click here to focus) │ (Click here to focus) │
│ │ │
│ file1.txt │ document.pdf │
│ file2.txt │ image.png │
│ directory/ │ folder/ │
│ │ │
├─────────────────────────────────────────────────────────────┤
│ Log Pane │
└─────────────────────────────────────────────────────────────┘
Click anywhere within a pane’s boundaries to move focus and the cursor there.
You can scroll through file lists using your mouse wheel or trackpad in both left and right panes.
XeFM detects double-clicks (two clicks on the same row within the system threshold, roughly 0.5s on macOS) in the Directory Diff Viewer:
In the main file panes, a single click already moves the cursor and activates the pane, so opening is done with Enter (open file / enter directory / enter archive) and Backspace (go to the parent directory).
Double-click detection requires a terminal that reports mouse events (most modern terminals do); mouse reporting is enabled by default. Supported terminals include iTerm2, Terminal.app, GNOME Terminal, Konsole, Windows Terminal, and most other modern emulators.
In Desktop mode you can drag files out of XeFM and drop them onto other applications, Finder, or the Dock, using the native operating-system drag-and-drop system.
Space to select individual files+ to select files matching a pattern* to select all filesDuring a drag you’ll see:
Drag-and-drop uses native macOS drag modifiers, held while dragging:
+ cursor)+ cursor)The cursor updates automatically based on the modifier and the drop target.
You can also drop files from another application onto a XeFM pane. Dropping onto a directory row targets that directory; dropping on empty space or past the last row targets the pane’s current directory.
Drag doesn’t start — ensure you’re in Desktop mode, move the mouse past the threshold before releasing, and check the file isn’t a remote file, archive content, or the “..” marker.
Drop doesn’t work — the target application must accept file drops of that type; try holding Option or Command, and confirm you’re dropping on a valid target.
All mouse functionality has keyboard equivalents:
| Mouse Action | Keyboard Alternative |
|---|---|
| Click a pane / row | Tab to switch panes; arrow keys to move the cursor |
| Double-click to open | Enter |
| Double-click header (parent dir) | Backspace |
| Wheel scroll | Page Up / Page Down, arrow keys |
| Drag files out | Copy/move commands (C / M) |
The Tab key cycles between panes, so you can always use it if mouse support is unavailable or if you prefer keyboard navigation.
Full mouse support with all event types:
| Event Type | Supported | Description |
|---|---|---|
| Button Down | ✓ | Mouse button press |
| Button Up | ✓ | Mouse button release |
| Click | ✓ | Press and release on the same row |
| Move | ✓ | Cursor movement |
| Wheel | ✓ | Scroll wheel / trackpad |
| Drag | ✓ | Native file drag-and-drop |
Coordinate precision: text grid coordinates (column and row) plus sub-cell positioning (fractional position within a character cell), accurate to pixel level.
Basic mouse support, depending on the terminal:
| Event Type | Supported | Description |
|---|---|---|
| Button Down | ✓ | Mouse button press |
| Button Up | ✓ | Mouse button release |
| Click | ✓ | Button click |
| Move | terminal-dependent | Reported by some terminals only |
| Wheel | terminal-dependent | Reported by some terminals only |
| Drag | ✗ | Not available in terminal mode |
Coordinate precision: text grid coordinates only (column and row), character-level accuracy. Mouse support is automatically disabled — without error messages — if the terminal doesn’t report mouse events.
When XeFM is in a text input mode, mouse events are automatically ignored to prevent accidental disruption of your keyboard-based workflow. This ensures that mouse clicks don’t interfere while you’re typing.
search key (default F) in the text viewerProblem: Clicking doesn’t move the cursor or switch focus in Desktop mode
Solutions:
python -m xefm --backend guiProblem: Clicking doesn’t move the cursor or switch focus in Terminal mode
Solutions:
-xrm 'XTerm*VT100.allowMouseOps: true')set -g mouse on in .tmux.confProblem: You click but nothing happens
Solutions:
Problem: Clicking on one pane switches focus to the other pane
Solutions:
[ and ] keys if needed)