Personal dotfiles for vim and tmux with cross-platform compatibility. Features server detection, Dvorak-optimized tmux bindings, Vundle plugin management, and intelligent terminal adaptation for both local development and Ubuntu servers.
- π₯οΈ Cross-platform (macOS + Ubuntu server)
- πΉ Dvorak keyboard optimized tmux navigation
- π¨ Smart color scheme adaptation (true color vs 256-color)
- π¦ Automated Vundle plugin management
- π§ One-command installation with backups
- π²οΈ Terminal capability detection (fonts, colors, SSH)
- π Session management script with intelligent fallbacks
Run the installation script to create symlinks to your home directory:
./install.shThis will:
- Create symlinks for vim configuration (
~/.vimrc) - Create symlinks for tmux configuration (
~/.tmux.conf) - Backup any existing configuration files
After installing the dotfiles, you need to install Vundle and the vim plugins:
# Clone Vundle into the bundle directory
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
# Install plugins
vim +PluginInstall +qallAlternative one-liner:
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim && vim +PluginInstall +qallvim/- Vim configuration filestmux/- Tmux configuration filesinstall.sh- Installation script
- Prefix:
Ctrl+a(instead of defaultCtrl+b) - Split panes:
|(horizontal) and-(vertical) - Reload config:
Prefix + y - Navigate panes:
r(left),t(down),n(up),s(right) - Dvorak optimized - Resize panes:
R,T,N,S(repeatable) - Window navigation:
Alt + 1-9(direct window selection)
The repository includes load_tmux.sh - a convenient script for managing tmux sessions.
For bash (~/.bashrc):
# Add this line to your ~/.bashrc
alias tmux-load="~/Code/personal/dotfiles/tmux/load_tmux.sh"For zsh (~/.zshrc):
# Add this line to your ~/.zshrc
alias tmux-load="~/Code/personal/dotfiles/tmux/load_tmux.sh"Then reload your shell: source ~/.bashrc or source ~/.zshrc
tmux-load # Attach to 'main' session or first available
tmux-load work # Attach to or create 'work' session
tmux-load --list # List all available sessions
tmux-load --help # Show helpFeatures:
- Auto-attaches to existing sessions or creates new ones
- Intelligent fallback (tries default β any session β create new)
- Lists available sessions with details
- Prevents nested tmux sessions
The vim configuration uses Vundle and includes these plugins:
- Vundle - Plugin manager
- ack.vim - Text searching
- ctrlp.vim - Fuzzy file finder
- ALE - Asynchronous linting
- tagbar - Code outline viewer
- vim-airline - Status line enhancement
- vim-bundler - Ruby Bundler support
- vim-fugitive - Git integration
- vim-rails - Ruby on Rails support
- bufexplorer - Buffer navigation
- ayu-vim - Color theme
- typescript-vim - TypeScript syntax
The vim configuration automatically detects server environments (SSH, no DISPLAY, etc.) and uses:
- Conservative 256-color support (no true colors)
- ASCII-only airline symbols (no powerline fonts needed)
- Server-friendly color schemes (desert, slate, darkblue)
Ubuntu/Debian dependencies:
# Install vim and git
sudo apt update
sudo apt install vim git curl
# Optional: Install ack for ack.vim plugin
sudo apt install ack-grepFor better visual experience on local terminals:
Font Requirements:
# Install a powerline font (choose one)
brew install --cask font-monaco-for-powerline
# or
brew install --cask font-meslo-lg-nerd-font
# or
brew install --cask font-fira-code-nerd-fontTerminal Color Support:
iTerm2 (recommended):
- Preferences β Profiles β Colors β Color Presets β choose a 256-color theme
- Enable "Report terminal type as: xterm-256color"
Terminal.app:
- Preferences β Profiles β Advanced β Declare terminal as: xterm-256color
Test color support:
# Test 256 color support
curl -s https://gist.githubusercontent.com/HaleTom/89ffe32783f89f403bba96bd7bcd1263/raw/ | bash
# Check environment detection
echo "DISPLAY: $DISPLAY"
echo "SSH_CLIENT: $SSH_CLIENT"
echo "TERM: $TERM"After installation, you may need to:
- Restart your terminal
- Source your tmux config:
tmux source ~/.tmux.conf - Install any additional dependencies for vim plugins (e.g.,
ackcommand for ack.vim) - Set your terminal font to a powerline-compatible font for proper icons