Skip to main content

Terminals

This repo is designed around a tmux-first workflow, but you still need a solid terminal emulator and a few CLI UX defaults.

Terminal emulatorโ€‹

Default terminal emulator config:

Ghostty 1.4โ€‹

Native Ghostty shells enable ssh-env and ssh-terminfo. Running ssh uses Ghostty's +ssh integration to install its bundled terminfo on the remote host and forward terminal environment variables. Successful installs are cached per host and port; failed installs fall back to xterm-256color. Environment forwarding depends on the remote server's AcceptEnv settings.

Tmux panes keep their own xterm-256color identity and ordinary ssh. Ghostty's native shell integration is injected into the shell it launches, not every shell inside tmux. Do not alias ssh globally to ghostty +ssh: that wrapper selects xterm-ghostty, which describes Ghostty rather than tmux.

These 1.4 improvements work through the defaults:

  • Compressed scrollback with a 50 MB limit per Ghostty terminal. Tmux's separate 10,000-line history stays unchanged.
  • Kitty graphics animation and relative placements, plus faster image handling. Tmux already enables passthrough; applications still need to support it.
  • Kitty clipboard support for images and other formats. Reads and writes follow the existing clipboard-read and clipboard-write settings.

The explicit copy-on-select = clipboard still copies selections to the system clipboard on macOS. Cmd+Up and Cmd+Down jump between native shell prompts; Cmd+Home and Cmd+End scroll to the ends of the history. Configuration help is available with ghostty +explain-config <key>.

See the Ghostty 1.4.0 release notes.

Bat (better cat)โ€‹

Themes are pulled via externals into:

  • ~/.config/bat/themes

See home/.chezmoiexternal.toml.

Yazi (terminal file manager)โ€‹

This keeps the config as small override files. Yazi ships its default config internally, so the managed config only records the local preferences: natural sorting, visible dotfiles, size linemode, a larger scrolloff, and wrapped previews.

The theme uses Yazi's flavor system instead of copying a full theme file. Chezmoi installs the Catppuccin Frappe and Latte flavors via home/.chezmoiexternal.toml, then theme.toml selects Frappe for dark mode and Latte for light mode.

Tombi reads the inline $schema entries in the rendered Yazi TOML files, so TOML LSP hover, completion, and validation work without adding editor-only files to ~/.config/yazi.

Git TUIsโ€‹

Two terminal git clients are configured; pick whichever fits the task (the git identity and git skill cover the underlying workflow):

A PR-focused dashboard, gh-dash, is configured separately under home/dot_config/exact_gh-dash/ (one config plus shared settings).

System monitor (btop)โ€‹

Nextโ€‹