Articles

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

  1. Créez un dossier pour vos fichiers dot et configurez versioncontrol.

  2. 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).

  3. 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.

  4. Testez votre script d’installation sur une nouvelle machine virtuelle.

  5. Migrez toutes vos configurations d’outils actuelles vers votre référentiel dotfiles.

  6. Publiez vos fichiers dot sur GitHub.

Éditez cette page.

Sous licence CC BY-NC-SA.