Synology : Prompt Zsh avancé avec Oh-My-Zsh! + Theme Thorpora

Theme thorpora : Prompt Zsh avancé avec Oh-My-Zsh!L'objectif de ce billet est d'installer et configurer Zsh afin notamment de disposer d'un prompt Zsh avancé avec Oh-My-Zsh! Chaque utilisateur disposera de sa propre configuration, avec une configuration globale partagée. Cet article propose également un thème compatible avec Oh My Zsh (non fournit de base), fonctionnant sur notre NAS Synology. A noter que la configuration fonctionne également très bien avec Putty.

Prompt Zsh avancé avec Oh-My-Zsh!

Zsh ne se présente plus, c'est depuis des années le shell le plus avancé. Oh My Zsh ! est en revanche moins connus. Il s'agit d'un petit outil communautaire et open source dont le but est de mieux gérer les configurations Zsh, avec une organisation par plugins et par thèmes. Son installation est extrêmement simple et se fait via un wget.

Installer le package Zsh

L'installation du package Zsh se fait de manière classique depuis les IHM. Une fois installé, par principe, afin de vérifier que tout fonctionne bien, connectez vous en ssh et changez de shell en tapant simplement zsh. Comme vous le constaterez immédiatement, le prompt ne fait pas rêver... Mais rassurez vous cela va changer ! L'un des intérêts de passer à Zsh est notamment de disposer d'un prompt coloré et paramétrable à souhait !

Création d'un répertoire partagé etc

L'idée est d'installer Oh My Zsh ! qu'une seule fois de telle sorte que tous les utilisateurs puisse l'exploiter. Ces derniers disposant de leur propre configuration .zshrc, chacun pourra utiliser Oh My Zsh (ou pas) et charger les plugins et thèmes qu'ils souhaitent. Une façon élégante de mettre en place ce système est de créer un répertoire partagé etc qui contiendra les éléments communs : Panneau de configuration > dossier partagé > créer. Les utilisateurs n'ont besoin que des droits de lecture sur ce répertoire.

Installer Oh My Zsh !

Comme présenté sur le site officiel, une commande suffit. Si une configuration de Zsh existe déjà elle sera renommée.

whoami
root
pwd
/root
sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
Resolving raw.githubusercontent.com... 23.235.43.133
Connecting to raw.githubusercontent.com|23.235.43.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 4236 (4.1K) [text/plain]
...
mv .oh-my-zsh /volume1/etc/

Nous y sommes presque : il n'y a plus qu'a configurer le .zshrc de chaque utilisateur.

Fichier de configuration .zshrc

Normalement vous disposez dès à présent d'un prompt Zsh avancé avec Oh-My-Zsh! Cette configuration par défaut, utilisant le thème du créateur de l'outil, doit cependant être mise à jour :

  • vous devez au moins mettre à jour le nouveau chemin pour accéder à Oh My Zsh.
  • vous pouvez choisir un thème parmi ceux disponibles dans .oh-my-zsh/themes/
  • vous pouvez charger les plugins de votre choix parmi ceux disponibles dans .oh-my-zsh/plugins/

Vous trouverez ci-après une configuration encore plus complète (alias et complétion avancée). L'objectif de cet article n'est pas d'expliquer comment fonctionne Zsh mais sachez tout de même que ce système de complétion est vraiment très poussée et mérite d'être exploitée au maximum !

Télécharger la configuration utilisateur .zshrc : zshrc.7z

Oh My Zsh propose un système pour charger tout autre élément personnalisé depuis un autre répertoire. N'ayant pas de besoin spécifique je préfère personnellement tout mettre dans le .zshrc.

UPDATE

Finalement j'ai préféré forker le projet oh-my-zsh et y ajouter ma config perso directement : https://github.com/ylacaute/oh-my-zsh. De nombreuses options ne sont plus utiles dans la configuration proposées ci-dessus. Je vous conseille donc plutôt d'aller faire un tour sur github.

Thème thorpora

Si aucun thème ne convient, je vous propose celui-ci : thorpora.zsh-theme. Une bonne partie de cette configuration est à l'origine l’œuvre d'un guru de zsh, il y a bien des années. Depuis, plusieurs éléments ont été modifiés. Voici les éléments les plus notables du thème :

  • prompt élégant très customisé en couleur (couleurs paramétrables par l'utilisateur)
  • complétion sur git, repris en partie de Oh My Zsh !
  • précision du code de retour de la dernière commande si en échec
  • distinction du prompt en mode root pour encore plus marquer le coup !

Télécharger le thème Thorpora : thorpora.zsh-theme-v1.0

Voici quelques captures d'écran du thème :

Prompt Zsh avancé avec Oh-My-Zsh!

Thème thorpora : prompt élégant très customisé en couleur

Zsh root : Prompt Zsh avancé avec Oh-My-Zsh!

Thème thorpora : distinction plus forte du prompt en mode root

Zsh return code : Prompt Zsh avancé avec Oh-My-Zsh!

Thème thorpora : précision du code de retour de la dernière commande si en échec

Zsh git : Prompt Zsh avancé avec Oh-My-Zsh!

Thème thorpora : complétion sur git

Faire de Zsh le shell par défaut

Zsh est certainement le shell le plus avancé techniquement, pour autant, il est reste déconseillé d'en faire le shell par défaut pour les comptes administrateurs et en particulier le compte root. Cela permet notamment d'assurer la possibilité de toujours pouvoir se connecter même dans le cadre d'un quelque compte problème de chargement du système. En revanche, il est tout de même plus agréable pour les utilisateurs de se connecter directement avec Zsh. Pour plus de sécurité, il n'est pas utile de changer le fichier /etc/passwd (laissez donc le shell /bin/sh pour les utilisateurs). L'idée est simplement de laisser les utilisateurs le soin de gérer leur configuration via le fichier .profile, ce dernier tentera de lancer un zsh si c'est possible :

whoami
foobaruser
pwd
/volume1/homes/foorbaruser
echo "[ -x /usr/local/bin/zsh ] && exec /usr/local/bin/zsh" >> .profile

Cette configuration de prompt Zsh avancé avec Oh-My-Zsh! vous fera définitivement aimer le mode console 🙂 Je pense mettre prochainement les configs sur github, vos commentaires et avis sont les bienvenus !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *