Gérer ses dotfiles avec GNU Stow
💡 Sujet
Gérer ses fichiers de configuration (dotfiles) peut vite devenir chaotique.
Copier les fichiers manuellement empêche un suivi Git propre, et les liens symboliques manuels (ln -s) sont fastidieux à maintenir.
GNU Stow est un gestionnaire de liens symboliques qui permet de garder un dossier de dotfiles propre (pour Git) tout en déployant les configurations dans le système via des symlinks automatiques.
⚙️ Le concept
Stow considère chaque sous-dossier de ton dépôt comme un paquet.
Il crée des liens symboliques ("symlinks") depuis ce paquet vers le répertoire parent (généralement ton $HOME), en respectant l'arborescence interne.
Structure recommandée
Imagine que ton dépôt ~/dotfiles ressemble à ceci :
~/dotfiles/
├── git/
│ └── .gitconfig
├── nvim/
│ └── .config/
│ └── nvim/
│ └── init.lua
└── zsh/
└── .zshrc🚀 Utilisation
Pour "installer" ta configuration zsh et nvim, il suffit de se placer dans le dossier et de lancer stow :
cd ~/dotfiles
# Crée les liens symboliques pour le dossier 'zsh' vers le dossier parent (HOME)
stow zsh
# Idem pour nvim
stow nvimRésultat
Stow va créer automatiquement les liens suivants dans ton Home directory :
~/.zshrc➡️ pointe vers~/dotfiles/zsh/.zshrc~/.config/nvim/init.lua➡️ pointe vers~/dotfiles/nvim/.config/nvim/init.lua
🛠️ Commandes utiles
-
Simuler l'action (Dry run) : Pour voir ce qui va se passer sans rien modifier (très utile pour vérifier l'arborescence) :
stow -n -v zsh(
-n: no act,-v: verbose) -
Supprimer les liens (Uninstall) : Si tu veux retirer une configuration :
stow -D zsh -
Forcer la cible : Par défaut, la cible est le répertoire parent. Pour cibler explicitement le Home :
stow -t ~ zsh
🧩 Résumé
- ✅ Propreté : Tes fichiers restent groupés par outil dans ton dépôt Git.
- ✅ Symlinks automatiques : Plus besoin de faire des
ln -smanuels et risqués. - ✅ Modularité : Tu peux installer (
stow) ou désinstaller (stow -D) chaque outil indépendamment. - 💡 Idéal pour synchroniser ses configurations entre plusieurs machines.