Didacticiel :
Pimp my workstation: avoir le terminal le plus classe du bureau !

Mise en place de zsh et d'un dossier .dotfiles


 

Introduction

Qu'est-ce que c'est que zsh ?

Il s'agit (comme nous indique aimablement sa page Wikipédia) d'un shell unix. En gros, il s'agit d'un remplaçant potentiel pour votre vénérable interpréteur bash.

Mais pourquoi se casser le beignet à installer zsh, alors que j'ai déjà bash ?

zsh a plusieurs atouts sur bash :
- Une autocomplétion avancée (incluant une correction orthographique).
- Un historique partagé entre les différents shells.
- Et surtout, le support de plugins permettant une personnalisation TRÈS agréable de son outil de travail.

Mon ancien bash à gauche, mon shell actuel à droite.

 

Double tab pour obtenir la doc. Notez la coloration syntaxique dans zsh.

Et du coup, c'est quoi le rapport avec un dossier .dotfiles ?

Hé bien, tant qu'à tripatouiller son interpréteur, autant en profiter pour constituer un dossier .dotfiles, c'est-à-dire un dossier contenant vos différents fichiers de configuration. Ensuite, ce dossier est mis sur votre gestionnaire de version favori, et il n'y a plus qu'à le mettre sur vos différentes stations de travail. C'est très utile quand on apprécie utiliser le même environnement de travail partout.

L'objectif de cet article est de vous présenter rapidement comment installer zsh, le configurer, et sauvegarder votre configuration dans un .dotfiles.

Installation de zsh

Mise en place

Après l'installation du paquet zsh, l'interpréteur est installé, mais il n'est pas utilisé par défaut par le système. Vous pouvez cependant l'utiliser en tapant la commande zsh dans votre shell, si vous souhaitez tester votre configuration avant d'en faire votre shell par défaut.

Pour faire de zsh votre interpréteur par défaut, il faut utiliser cette commande, puis relancer votre session pour que cela soit pris en compte :

Si la commande chsh n'est pas disponible de base, c'est qu'il vous faut installer le paquet util-linux-user.

Configuration

Comme bash, zsh est configurable à partir d'un .zshrc. Si vous avez déjà un dossier .dotfiles, je vous laisse sauter directement à la partie de configuration du .zshrc, et surtout de ses plugins. Pour les autres, je vais vous montrer comment j'ai géré le mien. Attention, je ne prétends pas détenir la meilleure des méthodes !

Le dossier .dotfiles

Création du dossier

Créez un dossier .dotfiles dans votre home, et initiez un dépôt dedans (pour git, cf ici).

Ensuite, il ne reste plus qu'à mettre les fichiers de configuration à l'intérieur et les faire suivre par votre gestionnaire.

Création d'un Makefile

L'idée, c'est qu'une fois que votre dossier est fait, vous n'ayez que le minimum à faire pour maintenir votre configuration à jour. Pour cela, le plus intéressant que je connaisse reste de créer un Makefile, qui contiendra toutes les commandes nécessaires.

Voici un exemple avec le mien, qui gère les 4 fichiers de configuration de mon dossier :

Ainsi, make va successivement mettre à jour le dépôt, puis sourcer les fichiers de configuration. Le make install est présent uniquement pour l'installation du dépôt sur vos autres machines, en permettant l'ajout du gestionnaire de plugin de zsh (détails dans la partie sur Antigen) avant de copier les fichiers de configuration.

Les plus attentifs d'entre vous auront remarqué qu'au lieu de créer des liens symboliques, je copie les fichiers de configuration. En fait, il m'est arrivé que les liens symboliques ne marchent pas, et j'ai préféré pallier ce soucis en copiant directement les fichiers. C'est moins propre et occupe un peu plus de place, mais bon, j'assume, tout le monde à le droit à son coté sombre et déviant !

La configuration de zsh

Le zshrc

Comme exemple, voici mon dossier .dotfiles, vous pouvez jeter un œil à mon .zshrc si vous le souhaitez.

Les alias : si ce n'est pas déjà fait, je vous conseille de mettre vos alias dans un fichier .aliases, et de pointer vers ce fichier grâce à cette commande dans votre .zshrc :

En dehors de ça, la grande force de zsh, c'est sa customisation via des plugins. Cela est possible grâce à 2 outils.

Antigen

Antigen est le gestionnaire de plugins pour zsh, l'équivalent de Vundle ou Plug pour Vim et Neovim.
Pour utiliser Antigen, il faut copier le dépôt (dans le cadre de cet article, dans votre .dotfiles, sinon, où vous voulez) :

Antigen peut être mis à jour avec cette commande :

Pour mettre à jour les plugins :

Oh-my-zsh

Seul, Antigen ne fait pas grand chose. C'est là qu'intervient oh-my-zsh, un dépôt pour gérer votre configuration. Cela contient un peu de tout, depuis des thèmes, jusqu'à des plugins faisant dire des "Chuck Norris Facts" à une vache ! Il existe d'autres dépôts, comme prezto, mais je n'ai pas encore eu l'occasion de comparer.

Le saviez-tu?

Pour l'installer, c'est très simple, Antigen le fait pour vous. Idem pour l'installation des plugins, et leur mise à jour !
Pour cela, rien de plus simple, rendez vous dans votre .zshrc, et écrivez :

Il ne vous restera plus qu'à chercher les plugins qui vous paraissent les plus intéressants, le thème de vos rêves, et faire des liens ou copier les fichiers de configuration dans votre /home!

Merci aux relecteurs : eorn, Nico M., et Nisaea

  • À propos de
  • Issu du master Bioinfo de Rennes, actuellement en thèse à l'INRA de St-Gilles sur la précision de la prédiction génomique chez la poule pondeuse. Gros addict de Python, mon péché mignon c'est l'Answer Set Programming.

5 commentaires sur “Pimp my workstation: avoir le terminal le plus classe du bureau !

  1. Bon ben testé et adopté :] Pour l'instant tout va bien, j'ai pris le thème bira et j'aime beaucoup!

    • Content que l'article t'ai servi ^^
      J'ai pas mal hésité entre bira et ys, mais au final j'utilise ys pour une raison toute simple: ce thème laisse une ligne vide après chaque commande, ce qui me permet de visualiser plus facilement les différents blocs.

  2. Bonjour et merci pour ce post,

    j'ai besoin d'un coup de main sur l'installation d'antigen.

    j'ai suivi à la lettre la façon dont vous l'avez installé mais rien n'y fait :

    bastien@bastien-VirtualBox:~/.dotfiles$ git clone https://github.com/zsh-users/antigen.git

    bastien@bastien-VirtualBox:~/.dotfiles$ ls -alt
    total 64
    drwxrwxr-x 8 bastien bastien 4096 oct. 17 10:38 .git
    drwxrwxr-x 7 bastien bastien 4096 oct. 17 10:36 antigen
    drwxrwxr-x 4 bastien bastien 4096 oct. 17 10:34 .
    -rw-rw-r-- 1 bastien bastien 371 oct. 17 10:34 .zshrc
    drwxr-xr-x 39 bastien bastien 32768 oct. 17 10:28 ..
    -rw-rw-r-- 1 bastien bastien 330 oct. 17 10:20 Makefile
    -rw-rw-r-- 1 bastien bastien 0 oct. 17 08:52 .bash_profile
    -rw-rw-r-- 1 bastien bastien 0 oct. 17 08:52 .aliases
    -rw-r--r-- 1 bastien bastien 5067 oct. 17 08:49 .bashrc

    bastien@bastien-VirtualBox:~/.dotfiles$ antigen
    antigen : commande introuvable

    J'ai essayé de l'installer de manière classique : sudo apt-get install zsh-antigen
    bastien@bastien-VirtualBox:~/.dotfiles$ which antigen
    bastien@bastien-VirtualBox:~/.dotfiles$

    Je suis tombé sur ce post parlant d'un 'caveat' : https://github.com/zsh-users/antigen/issues/159
    ==> Caveats
    To activate antigen, add the following to your ~/.zshrc:

    source $(brew --prefix)/share/antigen.zsh

    J'ai ajouté la ligne à mon ~/.zshrc, j'ai source le fichier mais toujours rien...

    Je suis à court d'idées :). Merci d'avance !

    PS : Je suis actuellement sur machine virtuelle, mais j'ai le même problème sur ma machine réelle

    Bastien

    • Bonjour Bastien,

      Exécutes-tu la commande depuis zsh? Ton prompt ressemble beaucoup à un prompt bash. Si ce n'est pas le cas essaye d'ouvrir une session zsh en tapant juste zsh sans arguments, et vois si le problème persiste.

      Good luck! o/

      • J'ai cligné des yeux à l'emplacement de la commande : chsh -s /bin/zsh
        Autant pour moi 🙂 merci

Laisser un commentaire