Dotfiles
De nombreux programmes sont configurés à l’aide de fichiers en texte brut appelés « dotfiles » (car les noms de fichiers commencent par un .
, par exemple ~/.gitconfig
, de sorte qu’ils soient cachés dans le répertoire listant ls
par défaut).
Beaucoup d’outils que vous utilisez ont probablement beaucoup de paramètres qui peuvent être ajustés assez finement. Souvent, les outils sont personnalisés avec des langages spécialisés, par exemple Vimscript pour Vim ou le propre langage du shell pour un shell.
La personnalisation et l’adaptation de vos outils à votre flux de travail préféré vous rendront plus productif. Nous vous conseillons d’investir du temps dans la personnalisation de votre outil vous-même plutôt que de cloner les fichiers dot de quelqu’un d’autre depuis GitHub.
Vous avez probablement déjà configuré des fichiers dot. Quelques endroits à regarder:
~/.bashrc
~/.emacs
~/.vim
~/.gitconfig
Certains programmes ne placent pas directement les fichiers dans votre dossier personnel et les placent plutôt dans un dossier sous ~/.config
.
Les fichiers DOT ne sont pas exclusifs aux applications en ligne de commande, par exemple, le lecteur vidéo MPV peut être configuré pour éditer des fichiers sous ~/.config/mpv
Vous pouvez en apprendre davantage sur les paramètres de votre outil en lisant la documentation en ligne ou les pages man. Un autre excellent moyen est de rechercher sur Internet des articles de blog sur des programmes spécifiques, où les auteurs vous parleront de leurs personnalisations préférées. Une autre façon d’en savoir plus sur les personnalisations est de parcourir les fichiers dot des autres: vous pouvez trouver des tonnes de fichiers dot sur GitHub – voir le plus populaire ici (nous vous conseillons de ne pas copier aveuglément les configurations).
Organisation
Comment devez-vous organiser vos fichiers dot ? Ils doivent être dans leur propre dossier, sous contrôle de version, et mis en place par un lien symbolique à l’aide d’un script. Cela a les avantages de:
- Installation facile: si vous vous connectez à une nouvelle machine, l’application de vos personnalisations ne prendra qu’une minute
- Portabilité: vos outils fonctionneront de la même manière partout
- Synchronisation: vous pouvez mettre à jour vos fichiers dot n’importe où et les garder tous synchronisés
- Suivi des modifications: vous allez probablement maintenir vos dotfilespour toute votre carrière de programmation, et l’historique des versions est agréable d’avoir des projets de longue durée
cd ~/srcmkdir dotfilescd dotfilesgit inittouch bashrc# create a bashrc with some settings, e.g.:# PS1='\w > 'touch installchmod +x install# insert the following into the install script:# #!/usr/bin/env bash# BASEDIR=$(dirname $0)# cd $BASEDIR## ln -s ${PWD}/bashrc ~/.bashrcgit add bashrc installgit commit -m 'Initial commit'
Personnalisations spécifiques à la machine
La plupart du temps, vous voudrez la même configuration sur toutes les machines, mais parfois, vous voudrez un petit delta sur un machine. Voici quelques façons de gérer cette situation :
Branche par machine
Utilisez le contrôle de version pour gérer une branche par machine. Cette approche est fondamentalement simple mais peut être assez lourde.
Instructions If
Si le fichier de configuration le prend en charge, utilisez l’équivalent des instructions if pour appliquer des personnalisations spécifiques à la machine. Par exemple, votre shell pourrait avoir quelque chose comme :
if ]; then {do_something else}; fi# Darwin is the architecture name for macOS systemsif ]; then {do_something}; fi# You can also make it machine specificif ]; then {do_something}; fi
Includes
Si le fichier de configuration le prend en charge, utilisez includes. Par exemple, un ~/.gitconfig
peut avoir un paramètre:
path = ~/.gitconfig_local
Puis sur chaque machine, ~/.gitconfig_local
peut contenir des paramètres spécifiques à la machine. Vous pouvez même les suivre dans un référentiel séparé pour des paramètres spécifiques à la machine.
Cette idée est également utile si vous souhaitez que différents programmes partagent certaines configurations. Par exemple, si vous voulez que les bash
et zsh
partagent le même ensemble d’alias, vous pouvez les écrire sous .aliases
et avoir le bloc suivant dans les deux.
# Test if ~/.aliases exists and source itif ; then source ~/.aliasesfi
Ressources
- Les fichiers dot de vos instructeurs : Anish, Jon, Jose
- GitHub fait des fichiers dot : frameworks, utilitaires, exemples et tutoriels de fichiers dot
- Shell startupscripts : une explication des différents fichiers de configuration utilisés pour votre shell
Exercices
-
Créez un dossier pour vos fichiers dot et configurez versioncontrol.
-
Ajoutez une configuration pour au moins un programme, par ex. votre shell, avec une personnalisation (pour commencer, cela peut être quelque chose d’aussi simple que de personnaliser votre invite shell en définissant
$PS1
). -
Configurez une méthode pour installer vos fichiers dot rapidement (et sans effort manuel) sur une nouvelle machine. Cela peut être aussi simple qu’un script shell qui appelle
ln -s
pour chaque fichier, ou vous pouvez utiliser une fonctionnalité spécialisée. -
Testez votre script d’installation sur une nouvelle machine virtuelle.
-
Migrez toutes vos configurations d’outils actuelles vers votre référentiel dotfiles.
-
Publiez vos fichiers dot sur GitHub.
Éditez cette page.
Sous licence CC BY-NC-SA.