Voilà maintenant près d’un an que ma machine de travail tourne sous Ubuntu 18.04, principalement pour la compatibilité avec les outils tel qu’Ansible ou Vagrant par exemple … Après pas mal de recherches sur les différents terminaux disponibles (hyper, terminus, kitty, terminator et j’en passe) je n’ai jamais réellement trouvé mon bonheur.
Jusqu’à ce que je tombe sur une vidéo de cocadmin sur tmux les fonctions disponibles dans ce multiplexeur me rappelle immédiatement iTerm2 que j’ai l’habitude d’utiliser sur mon Macbook. Après quelques heures de recherche et d’installation je suis passé de ça :

à ça :

Alors si vous voulez vous aussi avoir un terminal sympa à regarder et surtout super utile à ouvrir tous les matins, suivez le guide.
Nous allons simplement utiliser le gnome terminal, celui installé par défaut avec votre distribution et le customiser à notre envie.
Dans un premier temps nous allons procéder à l’installation d’ohmyzsh, cette suite est un framework qui viendra s’installer en plus sur votre terminal classique.
Puis nous installerons le multiplexeur tmux qui vous permettra de scinder vos terminaux en plusieurs partie et aussi détacher ou rattacher vos différentes sessions à la manière de screen.
Enfin nous verrons aussi l’installation du plugin powerline qui vous permet de prendre en compte la « statusbar » de tmux.
Installation et configuration de ohmyzsh
Par défaut le terminal Linux lance le shell (votre interpréteur de commande) bash, nous allons le remplacer par zsh, qui bénéficie des avantages suivants :
- Auto-complétion avancée
- Correction orthographique des commandes saisies
- Support avancé de Git
- Historique partagé entre les différents Shells ouverts.
Tout d’abord il faudra faire l’installation des paquets nécessaire à l’installation :
sudo apt install git curl zsh
zsh
Après avoir lancé ces commandes vous tomberez dans un menu de configuration de zsh, dans ce menu appuyer sur la touche Enter pour ignorer l’étape de configuration de zsh (nous y reviendrons plus tard avec l’installation du framework)

Afin que le terminal soit un peu plus élégant nous allons supprimer le menu des options et la scrolling bar de l’affichage, pour cela aller dans Edit > Préférences et désactiver les options suivantes :


Fermez et ouvrez de nouveau votre terminal il devrait ressembler à quelque chose comme ça

Une fois les pré-requis en place nous allons maintenant rentrer dans le dur ! Dans un premier temps nous allons procéder à l’installation de ohmyzsh pour cela :
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Choisissez de faire zsh votre shell par défaut, et entrez votre mot de passe, à partir de maintenant à l’ouverture de votre terminal (CTRL + ALT + T) vous serez en shell zsh par défaut, ceci nécessite quand même une logout / login de votre session.
Oh my Zsh est livré avec une panoplie de plugins, n’hésitez pas à aller parcourir le github de tout les plugins disponibles à l’heure actuelle.
ZSH Agnoster theme
Le thème par défaut ‘robbyrussell’ de ohmyzsh est assez minimaliste nous allons le changer pour le thème ‘agnoster’, il est optimisé pour les utilisateurs des produits suivants :
- Solarized
- Git
- Unicode-compatible fonts and terminals
Voici ce qu’il montrera lors de votre navigation en zsh
- If the previous command failed (✘)
- User @ Hostname (if user is not DEFAULT_USER, which can then be set in your profile)
- Git status
- Branch () or detached head (➦)
- Current branch / SHA1 in detached head state
- Dirty working directory (±, color change)
- Working directory
- Elevated (root) privileges (⚡)

Dans un premier temps nous allons changer les couleurs de notre terminal, pour ce faire il faudra faire un Shift + Click droit dans votre terminal et Préférences

Agnoster nécessite une police powerline, c’est-à-dire capable d’afficher des caractères spéciaux (chemin d’arborescence par exemple) si vous n’installer pas de police de ce genre alors votre thème se présentera ainsi :

Pour installer les polices powerline la ligne de commande suivante est disponible :
sudo apt-get install fonts-powerline
nano ~/.zshrc
Modifier votre fichier .zshrc modifier la ligne ZSH_THEME= »agnoster », puis redémarrer simplement votre terminal, vous pourrez vous apercevoir de l’activation en visualisant votre prompt

Installation et configuration de tmux
Passons à l’installation de tmux qui je le rappelle est un multiplexeur, il présente donc les avantages suivants :
- Gestion des multi-sessions de terminaux
- Scission en plusieurs terminaux d’un seul terminal, vertical ou horizontal
- Reprise de session détaché suite à un plantage terminal ou une rupture réseau par exemple
Pour l’installation tmux est en général disponible dans votre gestionnaire de paquets et un simple
sudo apt install tmux
tmux
Voilà votre première session tmux lancée, vous pouvez vous en rendre compte par la statusbar en bas de votre terminal qui viens d’apparaitre, elle n’est pas bien jolie pour le moment mais nous nous en occuperons dans un moment. Chose à savoir, l’ensemble des raccourcis tmux doivent être précédé le la combinaison de commandes CTRL + B. Voici une liste des raccourcis utiles :
- , : Renommer le titre de sa session
- c : Créer une nouvelle fenêtre dans la session tmux active
- n : Basculer entre les différentes fenêtres de la session
- X : Choisir une fenêtre spécifique (ou X est le numéro de la fenêtre)
- w : Afficher la liste des fenêtres disponibles
- t : Afficher l’heure dans une fenêtre
- & : Supprimer la fenêtre courante
- d : détaché la fenêtre courante
Puis pour la manipulation des Panes (panneaux disponibles dans votre fenêtre de terminal)
- % : Scinder verticalement
- » : Scinder horizontalement
- ESPACE : Changer l’affichage courant
- o : Basculer d’un pane à l’autre
- ; : Basculer au dernier pane utilisé
- q : Afficher le numéro des panes durant un court instant
- x : Supprimer le pane courant
Pour le moment tmux n’est pas lancé par défaut à l’ouverture de votre terminal pour remédier à ça il faudra modifier votre fichier ~/.zshrc et de rajouter le plugin tmux à la liste de vos plugin ainsi que al directive de démarrage automatique
ZSH_TMUX_AUTOSTART='true'
plugins=(
...
tmux
...
)
Redémarrer ensuite votre terminal et vous devriez directement vous retrouver dans votre session tmux

Installation Powerline
Enfin afin de rendre la statusbar beaucoup plus fonctionnelle et plus jolie nous allons installer Powerline une statusline pour vim et plusieurs applications telle que zsh,bash,tmux, Awesome et d’autres … Nous allons passer par python-pip
sudo apt install python-pip
pip install powerline-status
Une fois ces commandes faite pour activer la statusline dans tmux il faudra créer le fichier ~/.tmux.conf avec le contenu suivant, en prenant soin de renommer votre utilisateur bien entendu.
Même chose pour la statusbar de vim il faudra rajouter les lignes suivantes à la fin du fichier /etc/vim/vimrc
Enfin pour bash rajouter la ligne suivante à votre bashrc

Votre super terminal est maintenant en place, il faudra une courte période d’adaptation, je vous garantis que si vous persévérez dans l’utilisation vous ne le regretterez pas. Si vous avez des difficultés à mettre tout ça en place n’hésitez pas à poster un commentaire j’essaierai de vous aider du mieux possible, vous pouvez aussi simplement me laisser un com’ ici ça fait toujours plaisir de voir qu’un billet a servi.
A+
2 réflexions sur « ohmyzsh + tmux + powerline : un terminal pour les gouverner tous »