Personal development environment configuration files for macOS.
- Neovim - Modern vim configuration with LSP, syntax highlighting, and plugins
- Tmux - Terminal multiplexer configuration
- Zsh - Shell configuration with aliases and functions
- Kitty - GPU-accelerated terminal emulator configuration
- macOS (tested on Darwin 24.x)
- Homebrew package manager
- Git
git clone https://github.com/YOUR_USERNAME/dotfiles.git ~/dotfiles
cd ~/dotfiles# Install Neovim
brew install neovim
# Install Tmux
brew install tmux
# Install Kitty terminal
brew install --cask kitty
# Install Zsh (usually pre-installed on macOS)
brew install zsh
# Install Oh My Zsh (optional but recommended)
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"Run these commands to create symbolic links from your home directory to the dotfiles:
# Zsh configuration
ln -sf ~/dotfiles/.zshrc ~/.zshrc
# Tmux configuration
ln -sf ~/dotfiles/.tmux.conf ~/.tmux.conf
# Neovim configuration
mkdir -p ~/.config
ln -sf ~/dotfiles/nvim ~/.config/nvim
# Kitty terminal configuration
ln -sf ~/dotfiles/kitty ~/.config/kitty# Copy the example environment file
cp .env.example .env
# Edit .env with your actual values
# IMPORTANT: Never commit the .env file!
vim .envLaunch Neovim and it will automatically install plugins via Lazy.nvim:
nvim
# Wait for plugins to install automatically
# Or run :Lazy to see plugin managerdotfiles/
├── .zshrc # Zsh shell configuration
├── .tmux.conf # Tmux configuration
├── nvim/ # Neovim configuration directory
│ ├── init.lua # Main Neovim config
│ ├── lua/ # Lua configuration modules
│ │ ├── config/ # Core configuration
│ │ └── plugins/ # Plugin configurations
│ └── lazy-lock.json # Plugin version lock file
├── kitty/ # Kitty terminal configuration
│ └── kitty.conf # Main Kitty config
├── .env.example # Environment variables template
└── .gitignore # Git ignore patterns
Edit .zshrc and add your SSH aliases in the designated section:
alias ssh-myserver="ssh user@hostname"All sensitive configuration should be stored in .env (never committed). See .env.example for available options.
Plugins are managed by Lazy.nvim. To add new plugins:
- Create a new file in
nvim/lua/plugins/ - Define your plugin configuration
- Restart Neovim
To update your dotfiles:
cd ~/dotfiles
git pull origin mainTo update Neovim plugins:
nvim
:Lazy updateIf symlinks aren't working, ensure:
- The dotfiles directory exists at
~/dotfiles - Remove any existing config files before creating symlinks
- Use absolute paths if relative paths don't work
If Neovim plugins aren't loading:
# Clear Neovim cache
rm -rf ~/.local/share/nvim
rm -rf ~/.local/state/nvim
rm -rf ~/.cache/nvim
# Restart Neovim
nvimIf Tmux config isn't loading:
# Reload Tmux configuration
tmux source-file ~/.tmux.confThis repository has been cleaned of sensitive information. However:
- Never commit
.envfiles - Keep API keys and passwords in environment variables
- Review changes before committing
- Use
.env.exampleas a template
MIT
Your Name Here