⚠️ Important: This dotfiles repository requires GNU Stow to manage symlinks properly.
Before using these dotfiles, you must install GNU Stow on your system. Follow the installation instructions for your Linux distribution below.
sudo pacman -S stowsudo apt update
sudo apt install stowFedora:
sudo dnf install stowAdd to your configuration.nix:
environment.systemPackages = with pkgs; [
stow
];If stow isn't available in your package manager:
# Download and compile from source
wget https://ftp.gnu.org/gnu/stow/stow-latest.tar.gz
tar -xzf stow-latest.tar.gz
cd stow-*
./configure
make
sudo make installgit clone https://github.com/yourusername/dotfiles.git ~/code/dotfiles
cd ~/code/dotfiles# Stow individual packages
stow -t ~ vim
stow -t ~ git
stow -t ~ zsh
stow -t ~ alacritty
# Or stow everything at once
stow -t ~ */# Check if symlinks were created correctly
ls -la ~ | grep -E '\->'dotfiles/
├── alacritty/
│ └── .config/
│ └── alacritty/
│ └── alacritty.toml
├── git/
│ └── .gitconfig
├── nvim/
│ └── .config/
│ └── nvim/
│ ├── init.lua
│ └── lua/
├── tmux/
│ └── .tmux.conf
├── vim/
│ └── .vimrc
└── zsh/
├── .zshrc
└── .zprofile
# Move existing config to dotfiles
mkdir -p ~/code/dotfiles/newapp/.config/
mv ~/.config/newapp ~/code/dotfiles/newapp/.config/
# Stow the new configuration
cd ~/code/dotfiles
stow -t ~ newapp# Unstow (removes symlinks)
stow -t ~ -D vim
# This will remove the symlinks but keep the files in dotfiles/# Restow (useful after adding new files)
stow -t ~ -R vimstow -t ~ -n vim- 🔗 Symlink Management: Creates and manages symbolic links automatically
- 🏠 Clean Home: Keeps your home directory organized
- 📦 Modular: Install only the configurations you need
- 🔄 Version Control: Easy to track changes with git
- 🚀 Portable: Works across different machines and distros
- Always backup your existing configurations before stowing
- Use
stow -n(dry run) to preview changes before applying - The
-t ~flag is required since dotfiles aren't in your home directory - If you get "existing file" conflicts, move or backup the conflicting files first
# If you get "existing file" errors, backup and remove conflicts
mv ~/.vimrc ~/.vimrc.backup
stow -t ~ vimstow --versionwhich stow
stow --helpThis project is licensed under the MIT License - see the LICENSE file for details.
Happy dotfiling! 🎉