Config file reference#
mpmux reads its settings from a TOML file. Every setting is optional; a missing one keeps its default.
Where the file is#
mpmux looks in this order and uses the first file it finds:
--config <path>on the command line$XDG_CONFIG_HOME/mpmux/config.toml~/.config/mpmux/config.toml
On Android the app keeps its config in its own data directory.
Write a file with every setting at its default, then edit it:
mpmux --write-default-config ~/.config/mpmux/config.toml
Reloading and mistakes#
After an edit, choose Reload Config in the command palette, or run
mpmux-cli reload-config. Most settings apply at once.
mpmux never stops over a bad setting. A value it cannot use (wrong type, out
of range, unknown key) is skipped with a warning, and the default stays in
effect. Show Runtime Options in the command palette, or
mpmux-cli show-options, shows what is in effect.
mpmux writes to the file itself in one case: the overview stores its layout
mode, card order, and card positions in [overview]. It keeps all your
other settings; if the file does not parse, it leaves it alone and shows a
message instead.
[terminal]#
| Setting | Default | Allowed | What it does |
|---|---|---|---|
scrollback-lines |
100000 |
more than 0 | Lines each pane keeps for scrolling back. |
inline-image-display-scale |
1.0 (Android 0.65) |
0.10 – 1.0 | Shrinks inline images, for example on small screens. |
inline-image-preview-enabled |
true |
true, false |
Click an inline image to see it large. |
[host-ui]#
The window around the terminals.
Look#
| Setting | Default | Allowed | What it does |
|---|---|---|---|
show-tab-bar |
true |
true, false |
Show the tab bar. |
show-active-pane-border |
true |
true, false |
Outline the pane with keyboard focus. |
active-pane-border-color |
"#9edfff33" |
#RRGGBB or #RRGGBBAA |
Its color. |
active-pane-border-width |
1.0 |
0 or more | Its width in pixels. |
active-pane-tint-color |
"#00000000" |
color | A tint over the active pane; transparent by default. |
inactive-pane-dim-color |
"#08111d" |
color | The color other panes are dimmed with. |
inactive-pane-dim-opacity |
0.3 |
0 – 1 | How strongly; 0 turns dimming off. |
pane-maximize-animation-secs |
0.5 |
0 or more | Length of the maximize animation; 0 turns it off. |
dialog-scale |
1.0 |
more than 0 | Size of dialogs and the palette. |
dialog-vertical-margin-fraction |
0.08 |
0.05 – 0.30 | Space above and below dialogs, as part of the window height. |
scroll-map |
false |
true, false |
The outline of the scrollback that appears while scrolling (experimental). |
Messages#
| Setting | Default | Allowed | What it does |
|---|---|---|---|
toast-font-size |
16.0 |
14 or more | Text size of messages (toasts). |
toast-placement |
"center" |
left, center, right |
Where messages appear. While a dialog is open they move to the right. |
status-message-duration-secs |
5.0 |
0 or more | How long a message stays. |
message-history-limit |
32 |
more than 0 | Messages kept for the message sidebar and mpmux-cli show-messages. |
message-sidebar-default-open |
false |
true, false |
Open the message sidebar at start. |
dock-position |
"right" |
left, right, top, bottom |
The window edge the sidebar (dock) sits at. Moving the dock with its menu or by dragging its title saves it here. |
show-status-bar-messages |
true |
true, false |
Show messages at all. |
always-show-status-bar |
false |
true, false |
Keep the status bar visible without a message. |
Input#
| Setting | Default | Allowed | What it does |
|---|---|---|---|
enable-host-shortcuts |
true |
true, false |
false sends the configurable shortcuts to the terminal. See keys. |
mouse-scroll-multiplier-precision |
3.0 |
0.01 – 10000 | Scroll speed for touchpads. |
mouse-scroll-multiplier-discrete |
3.0 |
0.01 – 10000 | Lines a mouse wheel step scrolls. |
mouse-scroll-invert |
false |
true, false |
Scroll the other way than the desktop does. By default the terminal, the sidebar and the lists scroll as your desktop sets up the wheel and the touchpad (natural or traditional scrolling). |
max-pane-nesting-level |
4 |
1 – 4 | How deep splits can nest. |
mpmux-keyboard-height-portrait-ratio |
0.33 |
0.15 – 0.45 | Height of the mpmux keyboard (Android), as part of the screen, upright. |
mpmux-keyboard-height-landscape-ratio |
0.33 |
0.15 – 0.45 | The same, sideways. The pie menu's Keyboard → Height writes these. |
Diagnostics#
| Setting | Default | Allowed | What it does |
|---|---|---|---|
verbose-level |
0 |
0 – 4 | Log detail. mpmux-cli set-verbose-level changes it at runtime. |
[keybindings]#
| Setting | Linux, Android | macOS |
|---|---|---|
command-palette |
ctrl-shift-p |
cmd-shift-p |
new-tab |
ctrl-shift-t |
cmd-shift-t |
split-pane-right |
ctrl-shift-o |
cmd-shift-o |
split-pane-down |
ctrl-shift-e |
cmd-shift-e |
focus-split-left |
ctrl-alt-left |
cmd-alt-left |
focus-split-right |
ctrl-alt-right |
cmd-alt-right |
focus-split-up |
ctrl-alt-up |
cmd-alt-up |
focus-split-down |
ctrl-alt-down |
cmd-alt-down |
toggle-pane-maximize |
ctrl-shift-return |
cmd-shift-return |
toggle-overview |
ctrl-alt-o |
cmd-alt-o |
jump-to-previous-prompt |
ctrl-shift-pageup |
cmd-up |
jump-to-next-prompt |
ctrl-shift-pagedown |
cmd-down |
toggle-message-sidebar |
ctrl-shift-f12 |
cmd-shift-m |
How to write keys: keys and gestures.
[overview]#
| Setting | Default | Allowed | What it does |
|---|---|---|---|
max-zoom |
12.0 |
0.45 – 40 | How far the overview zooms in. High values redraw slowly. |
layout-mode |
"auto" |
auto, manual |
Cards in a grid, or where you put them. The overview's layout switch writes it. |
order |
— | list | Card order in auto layout. Written by the overview. |
positions |
— | table | Card positions in manual layout. Written by the overview. |
[voice]#
| Setting | Default | Allowed | What it does |
|---|---|---|---|
engine |
"auto" |
auto, whistle, system |
Who transcribes. auto is Whistle (on-device) when the app carries it, otherwise the Android system recognizer. system is Android only. |
language |
"auto" |
auto or a tag like en, de-DE |
The language you speak. auto detects it. Whistle knows en, de, fr, es, it, nl, pl. |
keywords |
terminal words | list, up to 64 | Words and names the recognizer should favour, e.g. project or tool names. |
save-recordings |
false |
true, false |
Keep each Whistle recording for inspection: the audio as Whistle heard it, the trimmed speech, and a JSON report with the transcript and the microphone's format and levels. Desktop: ~/.local/state/mpmux/voice/; the newest 20 are kept. |
final-pass |
"auto" |
auto, whistle, parakeet |
Who transcribes the finished recording (Linux and Android). auto uses Parakeet once its model is installed (command palette: Download Parakeet Voice Model), else Whistle. Whistle always writes the live text. |
pane-keywords |
true |
true, false |
Whistle also favours the file names, commands and other words on the active pane. They stay on the device; the system recognizer never gets them. |
On the desktop, MPMUX_VOICE_INPUT=<name> records from the first input
whose name contains <name> instead of the default microphone.
[voice]
language = "de"
keywords = ["mpmux", "kubectl", "Grafana"]
A complete example#
[terminal]
scrollback-lines = 50000
[host-ui]
toast-placement = "right"
inactive-pane-dim-opacity = 0.15
pane-maximize-animation-secs = 0.25
scroll-map = true
[keybindings]
split-pane-right = "alt-equals"
split-pane-down = "alt-minus"
toggle-overview = "alt-o"
[overview]
max-zoom = 16.0
Other files#
| File | What it holds |
|---|---|
~/.config/mpmux/pie-menus.json |
Pie menu entries, loaded with --pie-menus. mpmux --write-default-pie-menus <path> writes the built-in menus as a start. |
~/.config/mpmux/profiles.toml |
Session hosts for mpmux-cli tui. See mpmux-cli. |
~/.config/mpmux/auth/ |
Admin token, auth store, saved device credentials. Secret. |
~/.config/mpmux/iroh/ |
Iroh keys of the session host and of this client. Secret. |