L'une des choses auxquelles on tient quand on configure notre système d'exploitation lors d'une nouvelle installation, c'est de le configurer le plus rapidement possible de la façon dont on a l'habitude de l'utiliser.
Essentiellement sur Windows ça se résume pas mal à réinstaller les applications habituelles (Firefox, Nanazip, 1Password, WSL, Jetbrains Toolbox, Docker, les différents drivers, Steam, Playnite, Tidal, etc...), éventuellement d'installer un logiciel pour configurer les services et le paramétrage de Windows (typiquement pour retirer les logiciels/services qui ne sont pas réellement utilisé dans un usage standard de Windows, avec WinPilot par exemple ou Win11Debloat).
Bref tout mis bout à bout, il faut bien au minimum une demi-journée, et jusqu'à deux-trois jours pour tout remettre en place en fonction du temps pour faire les backups avant de faire une (ré-)install, puis le re-paramétrage complet des différents logiciels (à moins d'utiliser des versions portables de différents logiciels pour pouvoir exporter les configurations) et de sa vitesse de connexion à internet ainsi que la puissance de son PC.
Sur Linux c'est différent puisque le système est bien plus paramétrable (et surtout bien plus facilement), que ce soit au niveau visuel et/ou technique. Par exemple en fonction de son gestionnaire de fenêtres, il est possible de configurer tout l'aspect visuel de son OS et le comportement de la plupart des applications avec quelques fichiers de configuration. Par exemple de mon côté je peux exporter le paramétrage de mon gestionnaire de fenêtre, de ma barre des tâches, de mon écran de verrouillage, de mon gestionnaire d'application, etc...
Mais le truc un peu embêtant c'est qu'avant que je connaisse l'application dont je vais vous parler, je devais copier/coller les fichiers de configuration d'un dossier à l'autre au moment de la réinstallation et si je faisais des modifications, penser à porter les modifications dans le fichier correspondant au sein de mon repo git pour sauvegarder de manière distante toutes les modifications.
Grâce à «Stow» cela devient plus simple, ce logiciel va simplement créer un lien symbolique de manière récursive et dynamique par rapport à un dossier cible.
Premièrement pour installer Stow, cela est simple, il suffit d'exécuter la commande suivante :
# Avec Debian/Ubuntu
sudo apt install stow
# Avec Arch/EndeavourOS/Manjaro
sudo pacman -S stow
# Avec Homebrew
brew install stow
Pour l'utiliser de manière simple et direct, disons qu'on a l'arborescence suivante :
Le dossier .dotfiles
est le repo contenant tous les fichiers de configuration des différentes applications (au sens large) que j'utilise habituellement sous Linux. Les autres fichiers/dossiers sont à la racine de notre répertoire /home/NOTRE_USERNAME
.
/.dotfiles/.zshrc
~ et un ~/.zshrc
, vous devez supprimer le ~/.zshrc
avant de passer à la suitePour synchroniser la configuration de vos applications avec votre repo, vous devez suivre les commandes suivantes :
cd
cd .dotfiles
stow .
La commande stow .
va créer un lien symbolique dans le dossier parent dans lequel vous vous situez. Par exemple cela veut dire qu'on va passer de cela :
À ceci :
À noter que si vous créez un nouveau dossier dans un des niveaux d'arborescence de votre repo, il peut être nécessaire de relancer la commande stow .
pour que le lien symbolique du question se créer au niveau de votre dossier personnel.
Grâce à Stow, il est désormais possible de remettre en quelque minutes la configuration complète pour un utilisateur. Perso je l'utilise pour mettre en place rapidement mon desktop (avec hyprland, hyprlock, kitty, waybar, neovim, fish, btop, etc...)
À votre tour d'utiliser cet outil fantastique !