My personal configuration files managed with GNU Stow.
- Neovim: LazyVim configuration with Rose Pine theme and modern LSP setup
- Ghostty: Terminal emulator with Rose Pine Moon theme and transparency
- Git: Global git configuration with aliases and settings
- Zsh: Shell configuration with Prezto framework
- Bat: Syntax highlighting for
catcommand - EditorConfig: Consistent coding styles across editors
-
Install dependencies:
brew bundle install
-
Stow all configurations:
make stow
-
Install Prezto (if not already installed):
git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
The included Makefile provides convenient commands for managing your dotfiles:
make stow- Install all dotfiles by creating symlinksmake unstow- Remove all symlinksmake restow- Refresh all symlinks (unstow + stow)make dry-run- Preview changes without applying themmake clean- Remove broken symlinks from home directory
If you prefer manual control over individual packages:
# Install individual packages
stow -t ~ nvim
stow -t ~ ghostty
stow -t ~ git
# Or install everything at once
stow -t ~ */
# Remove a specific package
stow -t ~ -D nvimEach directory represents a "package" that gets symlinked to your home directory:
dotfiles/
├── nvim/.config/nvim/ → ~/.config/nvim/
├── ghostty/.config/ghostty/ → ~/.config/ghostty/
├── git/.gitconfig → ~/.gitconfig
├── zsh/.zpreztorc → ~/.zpreztorc
├── bat/.config/bat/ → ~/.config/bat/
├── editorconfig/.editorconfig → ~/.editorconfig
└── Makefile # Convenience commands
- macOS (tested on latest versions)
- Homebrew
- GNU Stow (installed via
brew bundle install) - Zsh shell
The Neovim configuration uses LazyVim as a base. Customize by editing files in nvim/.config/nvim/lua/:
plugins/plugins.lua- Add or modify pluginsconfig/options.lua- Vim options and settingsconfig/keymaps.lua- Custom key mappings
Theme and appearance settings are in ghostty/.config/ghostty/config. The Rose Pine Moon theme provides a cohesive look with Neovim.
Global git settings are in git/.gitconfig. Add your personal information:
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"If stow reports conflicts, you may have existing files. Either:
- Back up and remove conflicting files
- Use
make cleanto remove broken symlinks - Use
make restowto refresh everything
- Ensure LazyVim plugins are installed:
:Lazy sync - Check for errors:
:checkhealth - Update plugins:
:Lazy update
- ThePrimeagen's 0 to LSP : Neovim RC From Scratch
- LazyVim - Neovim configuration framework
- Rose Pine - Color scheme
- mathias
- alrra
- paulmillr
This project is licensed under the MIT License.