Keys and gestures#
Every shortcut mpmux handles itself. All other keys go to the program in the active pane.
On macOS the configurable shortcuts use Cmd (see the last column); the fixed
ones accept Cmd or Ctrl where noted. Change the configurable ones in the
[keybindings] section of the config file.
Window, tabs, and panes#
| Action | Linux, Android | macOS | Config name |
|---|---|---|---|
| Command palette | Ctrl+Shift+P | Cmd+Shift+P | command-palette |
| New tab | Ctrl+Shift+T | Cmd+Shift+T | new-tab |
| Split right | Ctrl+Shift+O | Cmd+Shift+O | split-pane-right |
| Split down | Ctrl+Shift+E | Cmd+Shift+E | split-pane-down |
| Focus the pane to the left / right / above / below | Ctrl+Alt+Arrow | Cmd+Alt+Arrow | focus-split-left, -right, -up, -down |
| Maximize the active pane, or restore | Ctrl+Shift+Return | Cmd+Shift+Return | toggle-pane-maximize |
| Overview | Ctrl+Alt+O | Cmd+Alt+O | toggle-overview |
| Previous prompt or mark | Ctrl+Shift+PageUp | Cmd+Up | jump-to-previous-prompt |
| Next prompt or mark | Ctrl+Shift+PageDown | Cmd+Down | jump-to-next-prompt |
| Message sidebar | Ctrl+Shift+F12 | Cmd+Shift+M | toggle-message-sidebar |
Fixed shortcuts:
| Action | Keys |
|---|---|
| Copy the selection | Ctrl+Shift+C; on macOS Cmd+C |
| Paste | Ctrl+Shift+V; on macOS Cmd+V |
| Larger text | Ctrl+= or Ctrl+Numpad + |
| Smaller text | Ctrl+- or Ctrl+Numpad - |
| Pie menu | Ctrl+Alt+X; on macOS Cmd+Alt+X |
Tabs have no switching shortcut yet: click the tab, or use the command
palette. Close a pane by ending its shell (exit, Ctrl+D).
Set enable-host-shortcuts = false in [host-ui] to send the configurable
shortcuts to the terminal instead. Copy, paste, text size, and the pie menu
(Ctrl+Alt+X, on macOS Cmd+Alt+X) keep working, so the command palette stays one step away under
More in the pie menu.
Mouse#
| Action | How |
|---|---|
| Select text | Drag. Hold Shift in programs that use the mouse themselves (editors, htop). |
| Select past the edge | Drag beyond the top or bottom: the pane scrolls. |
| Scroll | Wheel or touchpad, in the direction your desktop sets (natural or traditional). Speed: mouse-scroll-multiplier-* in [host-ui]; mouse-scroll-invert = true turns it around. |
| Resize panes | Drag the line between two panes. |
| Insert file paths | Drop files from the file manager onto a pane. |
| Look at an image closer | Click an inline image; Escape closes it. |
| Scroll map | Drag in it to move block by block; Shift+drag scrolls freely. |
Command palette#
| Key | Action |
|---|---|
| Type | Filter the actions |
| Up / Down | Move the selection |
| Enter | Run the selected action |
| Escape | Close |
Overview#
| Key | Action |
|---|---|
| Type | Search names, titles, and screen text |
| 1 – 9 | Open one of the first nine cards (while the search box is not focused) |
| Arrow keys | Move the selection |
| Enter | Open the selected card |
| Shift+F10 | The selected card's pie menu |
| Ctrl+= / Ctrl+- | Zoom in / out |
| Escape | Close the overview |
| Ctrl+scroll, pinch | Zoom |
| Scroll, drag the canvas | Pan |
| Click or drag the minimap | Jump |
The Viewer#
While the Viewer has the keys (click or tap it):
| Key | Action |
|---|---|
| ← / → | The previous or next object |
| Backspace | Back, after a link in a document was followed |
| Ctrl + / Ctrl − | Larger or smaller text, and page zoom (a pinch on touch screens) |
| Enter | In the address field: load the address |
Double-click (or double-tap) a picture, a document or a table to give it the whole window: the terminal and a split dock's second panel fold away. Double-click again to bring them back. When a script or a link brought the Viewer up (a todo's Show in the Viewer, a chart from an agent), closing that object (✕) returns to what the dock showed before: the todos, another panel, or no dock at all.
Side panels#
A script's side panel (the todos, the run monitor), while it has the keys:
| Key | Action |
|---|---|
| ↑ / ↓ | Move the selection |
| Enter | Open the selected item |
| Ctrl + / Ctrl − | Larger or smaller (a pinch on touch screens). Each panel keeps its own size, also side by side in a split dock; a new one starts at the size you gave one last |
A panel you hide stays hidden while its script updates it (the run monitor
reports each step); /todos-sidebar shows the todos again.
Each script's panel is its own: the dock menu (☰) lists them, and Split Panel there shows a second one below the first (beside it with the dock at the top or bottom), so the todos and the run monitor are on screen together. Drag the bar between them to share the room; ⌄ on the lower one folds it away again. The keys go to the half you last clicked or tapped.
A page in the Viewer (the Linux desktop) has its own menu on a right-click. A Wasm canvas takes the keys when you tap or click it, and gives them to its guest; tap the terminal to take them back.
Dialogs and pickers#
| Key | Action |
|---|---|
| Enter | Confirm (the primary button) |
| Escape | Cancel |
| Up / Down | Move in a list |
| Tab | Next field |
Touch screens#
| Action | Gesture |
|---|---|
| Pie menu | Touch and hold a pane |
| Command palette | Swipe with two fingers |
| Open the overview | Swipe up with three fingers |
| Close the overview | Swipe down with three fingers |
| Scroll | Drag with one finger |
| Zoom the overview | Pinch |
| Larger or smaller Viewer or side panel | Pinch on it |
| Viewer full screen, and back | Double-tap a picture, document or table in it |
In the pie menu, slide toward an entry and lift; lift in the middle to close it without a choice. The entries are listed in chapter 5.
The mpmux keyboard (Android)#
Esc, Tab, Ctrl, Alt, and the arrow keys. Ctrl and Alt stay pressed for the next key (Ctrl, then C sends Ctrl+C). The microphone key starts voice input. Choose the keyboard, hide it, or change its height under Keyboard in the pie menu.
Writing key names in the config#
A binding is modifiers and one key, joined with -: ctrl-shift-p,
cmd-alt-left, alt-f5.
- Modifiers:
ctrl(control),shift,alt,cmd(logo,meta,super,command). - Keys:
a–z,0–9,f1–f12,up,down,left,right,pageup,pagedown,home,end,insert,delete,escape,tab,enter(return),comma,equals,minus,left-bracket,right-bracket.
mpmux reports a binding it cannot read when it loads the config, and keeps the default for it.