Skip to content

Make Ghostty terminal config easy to discover, edit, and understand #2094

@austinywang

Description

@austinywang

Problem

Configuring the terminal appearance and behavior in cmux is confusing for users. cmux uses Ghostty under the hood, so terminal settings (font, theme, keybindings, cursor, etc.) live in Ghostty's config file — but users don't know:

  • Where the config file is (XDG path vs Application Support path — see "Ghostty Settings" menu opens wrong config file #1476)
  • What settings are available and which ones affect cmux
  • How to edit it (open in TextEdit? VS Code? Terminal editor?)
  • That cmux has its own managed config block for themes (# cmux themes start / # cmux themes end)

This creates a confusing split-brain: some settings are in cmux Settings UI, some are in a Ghostty config file, and users don't know which is which.

Proposed solution

1. CLI commands for agents and power users

Add CLI commands so Claude Code and other agents can programmatically manage terminal config:

# Open the Ghostty config in the default editor
cmux config open

# Open in a specific editor
cmux config open --editor textedit
cmux config open --editor code

# Show the resolved config file path
cmux config path

# Get/set individual values
cmux config get font-family
cmux config set font-family "JetBrains Mono"
cmux config set font-size 14
cmux config set theme "Catppuccin Mocha"

# List available themes
cmux config list-themes

# Apply a theme (writes to cmux-managed block)
cmux config set-theme "Dracula"

This lets agents like Claude write terminal themes and font settings without needing to know the config file location or format.

2. Settings UI improvements

  • Add a "Terminal" or "Appearance" section in cmux > Settings that surfaces the most common Ghostty settings:
  • Add an "Open Ghostty Config" button in Settings that opens the correct config file (fixing "Ghostty Settings" menu opens wrong config file #1476) in the user's preferred editor
  • Add an "Open in TextEdit" / "Open in VS Code" option for users who don't have a terminal editor preference
  • Show the config file path in the UI so users know where it lives

3. User guidance / discoverability

  • Add a brief "How terminal settings work" explainer in Settings (or a link to docs) explaining:
    • cmux uses Ghostty for terminal rendering
    • Most appearance settings go in the Ghostty config file
    • cmux manages a theme block within that file
    • Link to Ghostty's config reference for advanced settings
  • Consider a first-run setup wizard or banner for new users pointing them to terminal customization

Related issues

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions