{{tag>console shell zsh }}
----
====== Oh My Zsh ======
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|Zsh]] et est piloté par la communauté. Il est livré avec des tonnes de fonctions utiles au travers des [[https://github.com/ohmyzsh/ohmyzsh/wiki/Plugins|plugins]], des assistants, des [[https://github.com/ohmyzsh/ohmyzsh/wiki/Themes|thèmes]]. Ces fonctions que vous ajouterez à Zsh vous rendront votre terminal plus ergonomique et sexy.
====== Installation ======
===== Prérequis =====
[[zsh|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.
N'oubliez pas de définir votre shell par défaut à [[zsh|Zsh]].
chsh -s /bin/zsh
Puis déconnectez-vous, et reconnectez-vous pour avoir [[zsh|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|Zsh]]
source ~/.zshrc
[[curl|Curl]] ou [[wget|Wget]] et [[git|Git]] doivent-être installés.
[[git|Git]] doit être en v2.4.11 ou supérieure.
Pour [[tutoriel:comment_installer_un_paquet|l'installation de ces applications]] exécutez dans un [[terminal|terminal]]
sudo apt install curl wget git
===== Installation de Oh My Zsh =====
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é.
====== Installation des extensions ======
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)** [[https://github.com/ohmyzsh/ohmyzsh/wiki|External plugins]]
====== Installation des thèmes ======
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)** [[https://github.com/ohmyzsh/ohmyzsh/wiki/External-themes|External themes]]
====== Configurations ======
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.
===== Configuration des paramètres Oh My Zsh =====
===== Configuration des extensions Oh My Zsh =====
Pour valider une extension, un plugin en anglais, il faut [[tutoriel:comment_modifier_un_fichier|éditer]] le fichier de configuration [[zsh|Zsh]] **.zhrc** de votre compte utilisateur en tapant la commande suivante par exemple
nano ~/.zshrc
==== Activer une extension ====
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»
)
==== Trouver les extensions ====
Pour voir la liste des extensions disponibles
ls ~/.oh-my-zsh/plugins
===== Configuration des thèmes Oh My Zsh =====
Pour valider un thème il faut [[tutoriel:comment_modifier_un_fichier|éditer]] le fichier de configuration [[zsh|Zsh]] **.zhrc** de votre compte utilisateur en tapant la commande suivante par exemple
nano ~/.zshrc
==== Activer un thème ====
Modifier
ZSH_THEME="votre thème"
==== Trouver les thèmes ====
Pour voir la liste des thèmes disponibles
ls ~/.oh-my-zsh/themes
==== Thèmes aléatoires ====
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=( "" "" )
==== Créer son 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
{{ :application:zsh:oh-my-zsh_jonathan-theme.png?800 | Terminal Zsh avec le thème 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 8-)
{{ :application:zsh:oh-my-zsh_personal-theme.png?800 |}}
Vous pouvez aussi partir d'un fichier vide en suivant le tutoriel **(en)** [[https://blog.carbonfive.com/writing-zsh-themes-a-quickref/|Writing ZSH Themes: A Quickref]]
===== Voir aussi =====
* [[zsh|Zsh]]
* **(en)** [[https://ohmyz.sh|Oh my Zsh]]
* **(fr)** [[https://les-enovateurs.com/oh-my-zsh-parametrage-themes|OH My Zsh – GUIDE COMPLET : PARAMÉTRAGE DES THÈMES]]
----
//Contributeur : [[:utilisateurs/sefran|Franc SERRES]]