My cmux terminal config and themes setup
After trying the Kero terminal for a few days, I came back to cmux and audited how it handles configurations and themes so I can quickly restore everything if I ever reinstall or move to a new Mac.
Because cmux uses Ghostty as its underlying terminal rendering engine, terminal styling is separate from cmux app settings, and here's how it looks on my computer.
1. Terminal visual theme & fonts live inside the Ghostty config file:
~/Library/Application Support/com.mitchellh.ghostty/config.ghostty
This is also symlinked to ~/.config/ghostty/config. It uses the built-in GitHub Dark Default theme, Fira Code ligatures (+calt, +zero, +ss01), font thickening, a 50,000-line scrollback buffer, and clipboard auto-copy on select.
2. cmux app settings & shortcuts live in the main cmux config file:
~/.config/cmux/cmux.json
This configures preferredEditor: "code", commandPaletteSearchesAllSurfaces: true, matching sidebar background blending (matchTerminalBackground: true), minimal mode, pane split shortcuts (cmd + d), sidebar toggle (cmd + b), and agent notification hooks.
3. Active workspaces & open tabs live in the session state file:
~/Library/Application Support/cmux/session-com.cmuxterm.app.json
Here is the exact config.ghostty content for the terminal theme and font:
# Theme (GitHub Dark Default, built into Ghostty)
theme = GitHub Dark Default
font-family = "Fira Code"
font-size = 14
font-feature = +calt
font-feature = +zero
font-feature = +ss01
font-thicken = true
# Scrollback
scrollback-limit = 50000
# Window
window-padding-x = 20
window-padding-y = 12
window-padding-balance = true
window-inherit-working-directory = true
# Cursor
cursor-style = bar
cursor-style-blink = false
# Mouse & Clipboard
mouse-hide-while-typing = true
copy-on-select = clipboard
For quick CLI interaction, I added these productivity aliases to ~/.zshrc:
alias cm-diff="cmux diff --source unstaged"
alias cm-diff-staged="cmux diff --source staged"
alias cm-md="cmux markdown"
alias cm-browser="cmux browser open"
alias cm-jump="cmux jump-to-unread"
alias cm-status="cmux list-status"
Also, cmux automatically creates timestamped backups of cmux.json inside ~/.config/cmux/ whenever settings are saved (like cmux.json.bak.20260722T055253).
If I ever reinstall cmux or move to a new Mac, I just need to recreate the folders and restore those files:
mkdir -p ~/.config/cmux ~/.config/ghostty ~/Library/Application\ Support/com.mitchellh.ghostty
ln -sf "~/Library/Application Support/com.mitchellh.ghostty/config.ghostty" ~/.config/ghostty/config
Because these files sit in standard macOS user directories rather than inside the .app bundle, simply uninstalling cmux.app leaves all themes, sessions, and shortcuts completely safe and intact.