Lorsque vous travaillez avec des environnements basés sur Unix, la majorité de votre temps sera consacrée à travailler dans un terminal. Un bon terminal nous fera nous sentir bien et améliorera notre productivité. C'est là que Oh My Zsh entre en jeu.
Oh My Zsh est un framework open source pour la gestion de la configuration Zsh et est piloté par la communauté. Il est livré avec des tonnes de fonctions utiles au travers des plugins, des assistants, des thèmes. Ces fonctions que vous ajouterez à Zsh vous rendront votre terminal plus ergonomique et sexy.
Zsh doit être installé. La version 4.3.9 ferait l'affaire, mais de préférence utilisez la version 5.0.8 ou plus récente.
chsh -s /bin/zsh
Puis déconnectez-vous, et reconnectez-vous pour avoir Zsh comme shell par défaut.
Vous pouvez aussi lancer le shell manuellement dans bash
zsh
Et pour activer les modifications du fichier de configuration ~/.zhrc dans le terminal actif avec une instance Zsh
source ~/.zshrc
Curl ou Wget et Git doivent-être installés. Git doit être en v2.4.11 ou supérieure.
Pour l'installation de ces applications exécutez dans un terminal
sudo apt install curl wget git
Installez Oh My Zsh via une des lignes de commande avec curl ou wget comme indiqué.
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
ou
sh -c "$(wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"
Une fois que vous avez installé Oh My Zsh, une sauvegarde de votre fichier .zhrc existant sera effectuée. Ensuite, un nouveau fichier .zshrc sera créé avec les configurations.
Ainsi, si vous décidez de supprimer Oh My Zsh à l'aide du programme de désinstallation, l'ancien fichier .zshrc sera automatiquement restauré.
Pour ajouter des extensions il suffit de copier l'extension dans le répertoire ~/.oh-my-zsh/custom/plugins.
Exemple avec git pour l'assistant zsh-autosuggestions
git clone https://raw.githubusercontent.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions
Exemple avec le plugins
git clone https://raw.githubusercontent.com/zsh-users/zsh-syntax-highlighting.git ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting
Vous pouvez aussi télécharger d'autres extensions sur (en) External plugins
Pour ajouter des thèmes il suffit de copier le thème dans le répertoire ~/.oh-my-zsh/custom/themes.
Vous pouvez aussi télécharger d'autres thèmes sur (en) External themes
Tous les paramètres de configuration sont placés dans le fichier .zshrc. C'est là que vous devez modifier les paramètres de Oh My Zsh pour activer les nouveaux plugins ou modifier les thèmes en fonction des besoins.
Pour valider une extension, un plugin en anglais, il faut éditer le fichier de configuration Zsh .zhrc de votre compte utilisateur en tapant la commande suivante par exemple
nano ~/.zshrc
Modifier
# Which plugins would you like to load? # Standard plugins can be found in $ZSH/plugins/ # Custom plugins may be added to $ZSH_CUSTOM/plugins/ # Example format: plugins=(rails git textmate ruby lighthouse) # Add wisely, as too many plugins slow down shell startup. plugins=( git zsh-autosuggestions zsh-syntax-highlighting «votre plugin» )
Pour voir la liste des extensions disponibles
ls ~/.oh-my-zsh/plugins
Pour valider un thème il faut éditer le fichier de configuration Zsh .zhrc de votre compte utilisateur en tapant la commande suivante par exemple
nano ~/.zshrc
Modifier
ZSH_THEME="votre thème"
Pour voir la liste des thèmes disponibles
ls ~/.oh-my-zsh/themes
Vous pouvez aussi randomiser les thèmes à afficher à partir du répertoire ~/.oh-my-zsh/themes. Pour cela vous devez modifier la variable *ZSH_THEME* du fichier .zhrc comme suit.
ZSH_THEME="random"
Pour tester ouvrez plusieurs terminaux avec par exemple le raccourcis clavier CTRL + ALT + T
Vous pouvez limiter le choix des thèmes à une sélection. Pour cela il vous faudra modifier la variable ZSH_THEME_RANDOM_CANDIDATES du fichier .zhrc
ZSH_THEME_RANDOM_CANDIDATES=( "<nom premier thème>" "<nom second thème>" )
Vous pouvez créer votre thème. Pour cela il vous suffit de copier et modifier un thème existant.
Par exemple avec le theme jonathan
cp ~/.oh-my-zsh/themes/jonathan.zsh-theme ~/.oh-my-zsh/themes/montheme.zsh-theme
Modifier
# Finally, the prompt. PROMPT='${PR_SET_CHARSET}${PR_STITLE}${(e)PR_TITLEBAR}\ ${PR_CYAN}${PR_ULCORNER}${PR_HBAR}${PR_GREY}(\ ${PR_GREEN}%${PR_PWDLEN}<...<%~%<<\ ${PR_GREY})$(ruby_prompt_info)${PR_CYAN}${PR_HBAR}${PR_HBAR}${(e)PR_FILLBAR}${PR_HBAR}${PR_GREY}(\ ${PR_CYAN}%(!.%SROOT%s.%n)${PR_GREY}@${PR_GREEN}%m:%l\ ${PR_GREY})${PR_CYAN}${PR_HBAR}${PR_URCORNER}\ ${PR_CYAN}${PR_LLCORNER}${PR_BLUE}${PR_HBAR}(\ ${PR_YELLOW}%D{%H:%M:%S}\ ${PR_LIGHT_BLUE}%{$reset_color%}$(git_prompt_info)$(git_prompt_status)${PR_BLUE})${PR_CYAN}${PR_HBAR}\ ${PR_HBAR}\ >${PR_NO_COLOUR} ' # display exitcode on the right when > 0 return_code="%(?..%{$fg[red]%}%? ↵ %{$reset_color%})" RPROMPT=' $return_code${PR_CYAN}${PR_HBAR}${PR_BLUE}${PR_HBAR}\ (${PR_YELLOW}%D{%a,%b%d}${PR_BLUE})${PR_HBAR}${PR_CYAN}${PR_LRCORNER}${PR_NO_COLOUR}'
en
# Finally, the prompt. PROMPT='${PR_SET_CHARSET}${PR_STITLE}${(e)PR_TITLEBAR}\ ${PR_CYAN}${PR_ULCORNER}${PR_HBAR}${PR_BLUE}(${PR_NO_COLOUR}🌍\ ${PR_GREY}%${PR_PWDLEN}<...<%~%<<\ ${PR_BLUE})$(ruby_prompt_info)${PR_CYAN}${PR_HBAR}${PR_HBAR}${(e)PR_FILLBAR} \ ${PR_CYAN}%(!.%SROOT%s.%n)${PR_GREY}@${PR_GREEN}%m:%l\ ${PR_CYAN} ${PR_URCORNER}\ ${PR_CYAN}${PR_LLCORNER}${PR_HBAR}${PR_BLUE}(\ ${PR_YELLOW}%D{%H:%M:%S}\ ${PR_LIGHT_BLUE}%{$reset_color%}$(git_prompt_info)$(git_prompt_status)${PR_BLUE})${PR_CYAN}${PR_HBAR}\ ${PR_HBAR}\ ${PR_RED}❱${PR_NO_COLOUR} 👽 ' # display exitcode on the right when > 0 return_code="%(?..%{$fg[red]%}%? ↵ %{$reset_color%})" RPROMPT=' $return_code${PR_CYAN}${PR_HBAR}${PR_HBAR}\ ${PR_BLUE}(${PR_YELLOW}%D{%A %d %b}${PR_BLUE})${PR_CYAN}${PR_HBAR}${PR_LRCORNER}${PR_NO_COLOUR}'
Et vous obtenez un terminal plus francisé et sexy
Vous pouvez aussi partir d'un fichier vide en suivant le tutoriel (en) Writing ZSH Themes: A Quickref