🏠 Production-ready terminal configuration for homelab infrastructure management and development work.
- Tmux configuration with Catppuccin theme and homelab-optimized keybindings
- Zsh configuration with modern shell enhancements and completions
- SSH configuration for secure homelab host management
- Ghostty terminal configuration with optimized settings
- Tmux cheatsheet for quick reference
- Persistent window naming - manual tmux window names that stick when switching
- Session persistence - automatic save/restore of tmux sessions
- Vim-style navigation - consistent keybindings across all tools
- Quick access shortcuts - prefix-based commands for common tasks
- Modern shell - zsh with zinit plugin manager, completions, and productivity tools
- Plugin management - automatic TPM installation and plugin support
- Infrastructure focus - optimized for server management workflows
git clone https://github.com/UncertainMeow/dotfiles.git
cd dotfiles
./install.sh
The install script will:
- Back up your existing configurations with timestamps
- Install tmux plugin manager (TPM) automatically
- Set up all configuration files with proper permissions
- Provide clear next steps for completing the setup
If you prefer to install manually:
# Create directories
mkdir -p ~/.config/ghostty ~/.ssh ~/.tmux/plugins
# Install TPM (tmux plugin manager)
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
# Copy configurations
cp .tmux.conf ~/
cp .tmux-cheatsheet.txt ~/
cp ssh_config ~/.ssh/config
cp ghostty_config ~/.config/ghostty/config
# Set permissions
chmod 644 ~/.ssh/config ~/.tmux.conf
- Start tmux:
tmux
- Install plugins: Press
Ctrl-a + I
to install tmux plugins - View cheatsheet: Press
Ctrl-a + C
for quick reference - Test SSH config: Verify your homelab hosts are accessible
All tmux commands use the Ctrl-a prefix:
Ctrl-a + c
- New window in current directoryCtrl-a + C
- Show cheatsheet popupCtrl-a + s
- Save sessionCtrl-a + d
- Detach session safely
Ctrl-a + h/j/k/l
- Navigate panes (vim-style)Ctrl-a + H/J/K/L
- Resize panesCtrl-a + |
- Split horizontallyCtrl-a + -
- Split vertically
Ctrl-a + S
- New sessionCtrl-a + K
- Kill session- Outside tmux:
tmux a
to reattach
File | Purpose | Location |
---|---|---|
.tmux.conf |
Tmux configuration with plugins and persistent naming | ~/ |
.zshrc |
Zsh shell configuration with modern features | ~/ |
.zprofile |
Zsh profile with PATH and environment setup | ~/ |
.tmux-cheatsheet.txt |
Quick reference guide | ~/ |
ssh_config |
SSH client configuration | ~/.ssh/config |
ghostty_config |
Terminal emulator settings | ~/.config/ghostty/config |
- Primary: macOS (tested and optimized)
- Secondary: Linux (should work with minimal adjustments)
- Requirements: Git, tmux, modern terminal emulator
Tmux window names reverting?
- Reload config with
Ctrl-a + r
- Rename windows with
Ctrl-a + ,
- names should now persist when switching
Tmux plugins not working?
- Run
Ctrl-a + I
to install plugins - Check
~/.tmux/plugins/tpm
exists
Shell completion errors?
- Start a fresh terminal session after installation
- Existing sessions may show
compdef
errors that resolve in new terminals
SSH connections failing?
- Verify SSH config syntax:
ssh -F ~/.ssh/config -T <hostname>
- Check host key fingerprints match your homelab
Permission issues?
- SSH config:
chmod 644 ~/.ssh/config
- Tmux config:
chmod 644 ~/.tmux.conf