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 aima­ble­ment sa page Wiki­pé­dia) d'un shell unix. En gros, il s'agit d'un rem­pla­çant poten­tiel pour votre véné­rable inter­pré­teur bash.

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

zsh a plu­sieurs atouts sur bash :
— Une auto­com­plé­tion avan­cée (incluant une cor­rec­tion ortho­gra­phique).
— Un his­to­rique par­ta­gé entre les dif­fé­rents shells.
— Et sur­tout, le sup­port de plu­gins per­met­tant une per­son­na­li­sa­tion TRÈS agréable de son outil de tra­vail.

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

 

Double tab pour obte­nir la doc. Notez la colo­ra­tion syn­taxique dans zsh.

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

Hé bien, tant qu'à tri­pa­touiller son inter­pré­teur, autant en pro­fi­ter pour consti­tuer un dos­sier .dot­files, c'est-à-dire un dos­sier conte­nant vos dif­fé­rents fichiers de confi­gu­ra­tion. Ensuite, ce dos­sier est mis sur votre ges­tion­naire de ver­sion favo­ri, et il n'y a plus qu'à le mettre sur vos dif­fé­rentes sta­tions de tra­vail. C'est très utile quand on appré­cie uti­li­ser le même envi­ron­ne­ment de tra­vail par­tout.

L'objectif de cet article est de vous pré­sen­ter rapi­de­ment com­ment ins­tal­ler zsh, le confi­gu­rer, et sau­ve­gar­der votre confi­gu­ra­tion dans un .dot­files.

Installation de zsh

Mise en place

Après l'installation du paquet zsh, l'interpréteur est ins­tal­lé, mais il n'est pas uti­li­sé par défaut par le sys­tème. Vous pou­vez cepen­dant l'utiliser en tapant la com­mande zsh dans votre shell, si vous sou­hai­tez tes­ter votre confi­gu­ra­tion avant d'en faire votre shell par défaut.

Pour faire de zsh votre inter­pré­teur par défaut, il faut uti­li­ser cette com­mande, puis relan­cer votre ses­sion pour que cela soit pris en compte :

Si la com­mande chsh n'est pas dis­po­nible de base, c'est qu'il vous faut ins­tal­ler le paquet util-linux-user.

Configuration

Comme bash, zsh est confi­gu­rable à par­tir d'un .zshrc. Si vous avez déjà un dos­sier .dot­files, je vous laisse sau­ter direc­te­ment à la par­tie de confi­gu­ra­tion du .zshrc, et sur­tout de ses plu­gins. Pour les autres, je vais vous mon­trer com­ment j'ai géré le mien. Atten­tion, je ne pré­tends pas déte­nir la meilleure des méthodes !

Le dossier .dotfiles

Création du dossier

Créez un dos­sier .dot­files dans votre home, et ini­tiez un dépôt dedans (pour git, cf ici).

Ensuite, il ne reste plus qu'à mettre les fichiers de confi­gu­ra­tion à l'intérieur et les faire suivre par votre ges­tion­naire.

Création d'un Makefile

L'idée, c'est qu'une fois que votre dos­sier est fait, vous n'ayez que le mini­mum à faire pour main­te­nir votre confi­gu­ra­tion à jour. Pour cela, le plus inté­res­sant que je connaisse reste de créer un Make­file, qui contien­dra toutes les com­mandes néces­saires.

Voi­ci un exemple avec le mien, qui gère les 4 fichiers de confi­gu­ra­tion de mon dos­sier :

Ain­si, make va suc­ces­si­ve­ment mettre à jour le dépôt, puis sour­cer les fichiers de confi­gu­ra­tion. Le make ins­tall est pré­sent uni­que­ment pour l'installation du dépôt sur vos autres machines, en per­met­tant l'ajout du ges­tion­naire de plu­gin de zsh (détails dans la par­tie sur Anti­gen) avant de copier les fichiers de confi­gu­ra­tion.

Les plus atten­tifs d'entre vous auront remar­qué qu'au lieu de créer des liens sym­bo­liques, je copie les fichiers de confi­gu­ra­tion. En fait, il m'est arri­vé que les liens sym­bo­liques ne marchent pas, et j'ai pré­fé­ré pal­lier ce sou­cis en copiant direc­te­ment 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, voi­ci mon dos­sier .dot­files, vous pou­vez jeter un œil à mon .zshrc si vous le sou­hai­tez.

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

En dehors de ça, la grande force de zsh, c'est sa cus­to­mi­sa­tion via des plu­gins. Cela est pos­sible grâce à 2 outils.

Antigen

Anti­gen est le ges­tion­naire de plu­gins pour zsh, l'équivalent de Vundle ou Plug pour Vim et Neo­vim.
Pour uti­li­ser Anti­gen, il faut copier le dépôt (dans le cadre de cet article, dans votre .dot­files, sinon, où vous vou­lez) :

Anti­gen peut être mis à jour avec cette com­mande :

Pour mettre à jour les plu­gins :

Oh-my-zsh

Seul, Anti­gen ne fait pas grand chose. C'est là qu'intervient oh-my-zsh, un dépôt pour gérer votre confi­gu­ra­tion. Cela contient un peu de tout, depuis des thèmes, jusqu'à des plu­gins fai­sant dire des "Chuck Nor­ris Facts" à une vache ! Il existe d'autres dépôts, comme prez­to, mais je n'ai pas encore eu l'occasion de com­pa­rer.

Le saviez-tu ?

Pour l'installer, c'est très simple, Anti­gen le fait pour vous. Idem pour l'installation des plu­gins, et leur mise à jour !
Pour cela, rien de plus simple, ren­dez vous dans votre .zshrc, et écri­vez :

Il ne vous res­te­ra plus qu'à cher­cher les plu­gins qui vous paraissent les plus inté­res­sants, le thème de vos rêves, et faire des liens ou copier les fichiers de confi­gu­ra­tion dans votre /​home !

Mer­ci aux relec­teurs : eorn, Nico M., et Nisaea



Pour continuer la lecture :


Commentaires

5 réponses à “Pimp my workstation : avoir le terminal le plus classe du bureau !”

  1. Avatar de Nisaea

    Bon ben tes­té et adop­té :] Pour l'instant tout va bien, j'ai pris le thème bira et j'aime beau­coup !

    1. Avatar de David Picard
      David Picard

      Content que l'article t'ai ser­vi ^^
      J'ai pas mal hési­té entre bira et ys, mais au final j'utilise ys pour une rai­son toute simple : ce thème laisse une ligne vide après chaque com­mande, ce qui me per­met de visua­li­ser plus faci­le­ment les dif­fé­rents blocs.

  2. Avatar de Bastien

    Bon­jour et mer­ci pour ce post,

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

    j'ai sui­vi à la lettre la façon dont vous l'avez ins­tal­lé mais rien n'y fait :

    bastien@bastien-VirtualBox:~/.dotfiles$ git clone https://​github​.com/​z​s​h​-​u​s​e​r​s​/​a​n​t​i​g​e​n​.​git

    bastien@bastien-VirtualBox:~/.dotfiles$ ls ‑alt
    total 64
    drwxrwxr‑x 8 bas­tien bas­tien 4096 oct. 17 10:38 .git
    drwxrwxr‑x 7 bas­tien bas­tien 4096 oct. 17 10:36 anti­gen
    drwxrwxr‑x 4 bas­tien bas­tien 4096 oct. 17 10:34 .
    ‑rw-rw‑r– 1 bas­tien bas­tien 371 oct. 17 10:34 .zshrc
    drwxr-xr‑x 39 bas­tien bas­tien 32768 oct. 17 10:28 ..
    ‑rw-rw‑r– 1 bas­tien bas­tien 330 oct. 17 10:20 Make­file
    ‑rw-rw‑r– 1 bas­tien bas­tien 0 oct. 17 08:52 .bash_​profile
    ‑rw-rw‑r– 1 bas­tien bas­tien 0 oct. 17 08:52 .aliases
    ‑rw‑r–r– 1 bas­tien bas­tien 5067 oct. 17 08:49 .bashrc

    bastien@bastien-VirtualBox:~/.dotfiles$ anti­gen
    anti­gen : com­mande introu­vable

    J'ai essayé de l'installer de manière clas­sique : sudo apt-get ins­tall zsh-anti­gen
    bastien@bastien-VirtualBox:~/.dotfiles$ which anti­gen
    bastien@bastien-VirtualBox:~/.dotfiles$

    Je suis tom­bé sur ce post par­lant d'un 'caveat' : https://​github​.com/​z​s​h​-​u​s​e​r​s​/​a​n​t​i​g​e​n​/​i​s​s​u​e​s​/​159
    ==> Caveats
    To acti­vate anti­gen, add the fol­lo­wing to your ~/.zshrc :

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

    J'ai ajou­té la ligne à mon ~/.zshrc, j'ai source le fichier mais tou­jours rien…

    Je suis à court d'idées :). Mer­ci d'avance !

    PS : Je suis actuel­le­ment sur machine vir­tuelle, mais j'ai le même pro­blème sur ma machine réelle

    Bas­tien

    1. Bon­jour Bas­tien,

      Exé­cutes-tu la com­mande depuis zsh ? Ton prompt res­semble beau­coup à un prompt bash. Si ce n'est pas le cas essaye d'ouvrir une ses­sion zsh en tapant juste zsh sans argu­ments, et vois si le pro­blème per­siste.

      Good luck ! o/​

      1. Avatar de Bastien

        J'ai cli­gné des yeux à l'emplacement de la com­mande : chsh ‑s /​bin/​zsh
        Autant pour moi 🙂 mer­ci

Laisser un commentaire