My development environment for macOS and Linux, managed with GNU Stow for easy deployment across machines.
Feel free to use as inspiration, but make sure you understand what each config does before copying. When in doubt, Google it or ask AI.
| Tool | Location | Description |
|---|---|---|
| Neovim | ~/.config/nvim |
Text editor with LSP, treesitter, fzf, DAP |
| Tmux | ~/.tmux.conf |
Terminal multiplexer |
| Kitty | ~/.config/kitty |
GPU-accelerated terminal |
| Ghostty | ~/.config/ghostty |
Fast native terminal |
| Vim | ~/.vimrc |
Basic Vim config with essential plugins |
| Zsh | ~/.zshrc |
Shell with Zinit plugin manager |
| Starship | ~/.config/starship.toml |
Cross-shell prompt |
| Git | ~/.gitconfig |
Git config with delta and sensible defaults |
| Delta | ~/.config/delta |
Syntax-highlighted git diffs with Catppuccin theme |
| Catppuccin Mocha | — | Colorscheme across all tools |
| JetBrainsMono Nerd Font | — | Monospace font with icons |
| GNU Stow | ~/.dotfiles |
Dotfiles manager |
| Tool | Location | Replaces | Description |
|---|---|---|---|
| eza | ~/.zshrc |
ls |
Better ls with icons and git status |
| bat | ~/.config/bat |
cat |
Better cat with syntax highlighting |
| zoxide | ~/.zshrc |
cd |
Smart cd that learns your habits |
| fzf | ~/.zshrc |
— | Fuzzy finder for files, history, dirs |
| fd | ~/.zshrc |
find |
Better find |
| ripgrep | ~/.zshrc |
grep |
Better grep |
| tldr | ~/.zshrc |
man |
Simplified man pages |
| yazi | ~/.config/yazi |
— | Terminal file manager |
| btop | ~/.config/btop |
top |
System monitor |
| fastfetch | ~/.config/fastfetch |
— | System info display |
| lazygit | ~/.zshrc |
— | Terminal UI for git |
| delta | ~/.gitconfig |
— | Better git diff pager |
This repo uses GNU Stow to symlink dotfiles into the appropriate locations.
Warning
This will overwrite your existing configuration files. A backup is created automatically during installation.
# macOS
xcode-select --install # gcc, make, git, python3
brew install git stow neovim tmux starship node python go \
ripgrep fzf fd eza zoxide bat yazi btop fastfetch tlrc lazygit git-delta
brew install --cask kitty ghostty font-jetbrains-mono-nerd-font
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # rust
# Linux (Ubuntu/Debian)
sudo apt update && sudo apt install -y git stow neovim tmux nodejs python3 python3-pip golang \
ripgrep fzf fd-find eza zoxide bat yazi btop fastfetch tlrc lazygit gcc make
curl -sS https://starship.rs/install.sh | sh # starship
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # rust
cargo install git-delta # delta
# Kitty: https://sw.kovidgoyal.net/kitty/
# Ghostty: https://ghostty.org/download
# Font: https://www.nerdfonts.com/font-downloads (JetBrainsMono Nerd Font)Note
If you encounter errors during installation, refer to the package's documentation.
node, gcc, make, python3, go, rustc, and ripgrep are required for Neovim LSP servers and DAP debuggers.
git clone https://github.com/3p5ilon/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./install.shgit clone https://github.com/3p5ilon/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
# Backup existing configs
mkdir -p ~/dotfiles-backup
cp ~/.zshrc ~/.vimrc ~/.tmux.conf ~/.gitconfig ~/.gitignore_global ~/dotfiles-backup/ 2>/dev/null
cp -r ~/.config/nvim ~/.config/kitty ~/.config/ghostty ~/dotfiles-backup/ 2>/dev/null
cp -r ~/.config/bat ~/.config/btop ~/.config/fastfetch ~/.config/yazi ~/.config/delta ~/dotfiles-backup/ 2>/dev/null
cp ~/.config/starship.toml ~/dotfiles-backup/ 2>/dev/null
# Remove originals
rm -rf ~/.config/nvim ~/.config/kitty ~/.config/ghostty \
~/.config/bat ~/.config/btop ~/.config/fastfetch ~/.config/yazi ~/.config/delta \
~/.tmux.conf ~/.zshrc ~/.vimrc ~/.gitconfig ~/.gitignore_global \
~/.config/starship.toml
# Create symlinks
stow -vt ~ */
# Install TPM and tmux plugins
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
~/.tmux/plugins/tpm/bin/install_plugins- Neovim: Open
nvim— plugins auto-install via lazy.nvim, then wait for Mason to finish - Tmux: Plugins are installed automatically via TPM — if missing, press
Ctrl-a + Iinside tmux - Shell: Restart your terminal or run
source ~/.zshrc— Zinit will auto-install all Zsh plugins on first run - Git: Update
[user]and[github]ingit/.gitconfigwith your own details
stow -vt ~ nvim # stow a package
stow -Dvt ~ nvim # remove symlinks
ls -la ~/.config/nvim # verify: should point to ~/.dotfiles/nvim/.config/nvimMIT




