GuideSeptember 16, 20256 min read

Syncing iTerm2, Alacritty, and Terminal Emulator Configs

Your terminal environment is more than just a shell. Here's how to sync every terminal tool — from emulators to multiplexers to keyboard remappers — across all your machines.

The Terminal Stack

A developer’s terminal environment is built from layers of tools that each store their own configuration. Your terminal emulator defines appearance and keybindings. Your multiplexer manages sessions and panes. Your keyboard remapper customizes input. Each tool has its own config file in a different location.

ConfigSync has dedicated modules for each layer of the terminal stack. Add the ones you use, push once, and all of them restore together on a new machine.

iTerm2 (macOS)

iTerm2 stores all preferences, profiles, color schemes, and keybindings in a single plist file. This includes everything: font choices, window arrangements, triggers, profile-specific settings, and custom keyboard shortcuts.

Add iTerm2 module
configsync add module iterm2

ConfigSync tracks the iTerm2 preferences plist, which captures every setting in the application. On a new Mac, pulling your ConfigSync snapshot and restarting iTerm2 gives you the exact same terminal you had before — same profiles, same colors, same hotkey window configuration.

What gets tracked
# iTerm2 preferences (all settings, profiles, colors) ~/Library/Preferences/com.googlecode.iterm2.plist
Tip: iTerm2 also supports loading preferences from a custom folder via Settings > General > Preferences. But ConfigSync handles the sync automatically, so you do not need to configure that.

Alacritty

Alacritty is a GPU-accelerated terminal emulator that works on macOS, Linux, and Windows. Its configuration lives in a single TOML file (or YAML in older versions):

Add Alacritty module
configsync add module alacritty
What gets tracked
# Modern Alacritty (0.13+) ~/.config/alacritty/alacritty.toml # Legacy Alacritty ~/.config/alacritty/alacritty.yml

Because Alacritty is cross-platform, the same config file works everywhere. Font names and sizes, color schemes, keybindings, and window opacity all carry over between macOS and Linux with no platform-specific adjustments needed.

tmux

tmux is the standard terminal multiplexer for managing sessions, windows, and panes. Its configuration can grow complex with custom keybindings, status bar theming, and plugin manager setup:

Add tmux module
configsync add module tmux
Example .tmux.conf
# Change prefix to Ctrl-a unbind C-b set -g prefix C-a bind C-a send-prefix # Split panes with | and - bind | split-window -h -c "#{pane_current_path}" bind - split-window -v -c "#{pane_current_path}" # Vim-style pane navigation bind h select-pane -L bind j select-pane -D bind k select-pane -U bind l select-pane -R # TPM plugins (install on first use: prefix + I) set -g @plugin 'tmux-plugins/tpm' set -g @plugin 'tmux-plugins/tmux-sensible' set -g @plugin 'catppuccin/tmux'

Like Neovim plugins, tmux plugins managed by TPM install on first use. ConfigSync syncs the config, and TPM handles downloading the actual plugins.

Karabiner-Elements (macOS Keyboard)

Karabiner-Elements remaps keys on macOS. If you use Caps Lock as Escape, remap modifier keys, or have complex key sequences, the config is essential:

Add Karabiner module
configsync add module karabiner
What gets tracked
~/.config/karabiner/karabiner.json

This single JSON file contains all your key remappings, complex modifications, and device-specific rules. Losing it means reconfiguring every remap from memory. With ConfigSync, it restores instantly on any new Mac.

bat (cat Replacement)

bat is a cat replacement with syntax highlighting and git integration. Its configuration file sets the default theme, pager behavior, and display options:

Add bat module
configsync add module bat
Example bat config
# ~/.config/bat/config --theme="Catppuccin Mocha" --style="numbers,changes,header" --pager="less -FR" --map-syntax "*.conf:INI" --map-syntax ".ignore:Git Ignore"

Sync Your Entire Terminal Stack

Here is how to sync every terminal tool in one setup:

ToolModuleConfig File
iTerm2iterm2com.googlecode.iterm2.plist
Alacrittyalacrittyalacritty.toml
tmuxtmux.tmux.conf
Karabinerkarabinerkarabiner.json
batbat~/.config/bat/config
Complete terminal setup
# Add all your terminal tools configsync add module iterm2 configsync add module alacritty configsync add module tmux configsync add module karabiner configsync add module bat # Push everything configsync push -m "terminal stack" # New machine: one command configsync pull --install

One push captures your entire terminal stack. One pull on a new machine restores it all. Your terminal looks and works exactly the same on every machine, down to the keybindings, color scheme, and status bar layout.

Ready to try ConfigSync?

Sync your entire dev environment across machines in minutes. Free forever for up to 3 devices.