mpmux by Mighty Painting
~/mpmux/docs ❯ less reference/config/contents ↓

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:

  1. --config <path> on the command line
  2. $XDG_CONFIG_HOME/mpmux/config.toml
  3. ~/.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.