Oh My Zsh + Powerlevel10k : Transformez votre terminal en machine de guerre !

Oh My Zsh Logo

Introduction : Pourquoi Oh My Zsh va changer votre vie

Spoiler alert : Après avoir installé Oh My Zsh, vous ne pourrez plus jamais revenir au bash par défaut. C’est scientifiquement prouvé (bon, pas vraiment, mais presque).

Oh My Zsh est LE framework open-source qui transforme votre terminal terne en véritable cockpit de développeur. Imaginez Git qui vous dit où vous en êtes d’un coup d’œil, l’autocomplétion qui lit dans vos pensées, et un prompt qui fait baver d’envie vos collègues.

Ce que vous allez gagner :

  • ⚡ Un terminal 10x plus productif
  • 🎨 Un prompt magnifique et informatif
  • 🚀 Des centaines de plugins prêts à l’emploi
  • 🧠 Une autocomplétion intelligente qui anticipe vos besoins

Pour qui ? Développeurs, sysadmins, étudiants, ou quiconque passe plus de 5 minutes par jour dans un terminal (donc vous, probablement).


Prérequis : Ce qu’il vous faut avant de commencer

Installation de Zsh

Avant de plonger dans Oh My Zsh, assurez-vous d’avoir Zsh installé :

Ubuntu/Debian :

sudo apt update && sudo apt install zsh

macOS avec Homebrew :

brew install zsh

CentOS/RHEL/Fedora :

# CentOS/RHEL
sudo yum install zsh
# Fedora
sudo dnf install zsh

Vérification :

zsh --version
# Devrait afficher quelque chose comme : zsh 5.8.1

Installation de Git

Git est indispensable pour Oh My Zsh :

# Ubuntu/Debian
sudo apt install git

# macOS
git --version  # Déjà installé normalement
# Ou avec Homebrew : brew install git

# CentOS/RHEL
sudo yum install git

🚨 Erreur fréquente

Problème : zsh: command not found après installation Solution : Redémarrez votre terminal ou sourcez votre .bashrc :

source ~/.bashrc
exec zsh  # Pour basculer vers zsh

Installation de Oh My Zsh : La méthode qui marche

Méthode recommandée (curl)

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Méthode alternative (wget)

Si curl vous fait des misères :

sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Ce qui se passe :

  1. Le script télécharge Oh My Zsh dans ~/.oh-my-zsh
  2. Sauvegarde votre .zshrc existant
  3. Crée un nouveau .zshrc avec la config par défaut
  4. Change votre shell par défaut vers zsh

✅ À savoir

L’installation vous demandera si vous voulez faire de zsh votre shell par défaut. Répondez « Y » (oui) sauf si vous avez une bonne raison de ne pas le faire.


Configuration de base : Les incontournables

Le fichier de configuration

Tout se passe dans ~/.zshrc. Ouvrez-le avec votre éditeur préféré :

nano ~/.zshrc
# ou
vim ~/.zshrc
# ou
code ~/.zshrc  # VS Code

Structure du .zshrc

# Chemin vers Oh My Zsh
export ZSH="$HOME/.oh-my-zsh"

# Thème (on va changer ça bientôt 😉)
ZSH_THEME="robbyrussell"

# Plugins activés
plugins=(git)

# Source Oh My Zsh
source $ZSH/oh-my-zsh.sh

# Vos alias et configurations perso ici

Premiers réglages sympas

Ajoutez ces lignes à la fin de votre .zshrc :

# Historique plus long et intelligent
HISTSIZE=10000
SAVEHIST=10000
setopt HIST_VERIFY
setopt SHARE_HISTORY
setopt APPEND_HISTORY

# Navigation plus fluide
setopt AUTO_CD
setopt CORRECT
setopt CORRECT_ALL

# Autocomplétion case-insensitive
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}'

Puis rechargez :

source ~/.zshrc

Powerlevel10k : Le thème qui tue tout

Oubliez les thèmes basiques. Powerlevel10k (P10k pour les intimes) est LE thème qui va transformer votre terminal en vaisseau spatial.

Pourquoi Powerlevel10k ?

  • Ultra-rapide : 10-100x plus rapide que les autres thèmes
  • 🎨 Magnifique : Icons, couleurs, informations utiles
  • 🔧 Configurable : Wizard interactif pour tout personnaliser
  • 📊 Informatif : Git status, temps d’exécution, erreurs…

Installation de Powerlevel10k

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

Activation du thème

Éditez votre .zshrc :

# Changez cette ligne :
ZSH_THEME="robbyrussell"

# Par celle-ci :
ZSH_THEME="powerlevel10k/powerlevel10k"

Rechargez :

source ~/.zshrc

🎯 Configuration wizard

La magie opère ici ! Le wizard de configuration va se lancer automatiquement. Si ce n’est pas le cas :

p10k configure

Guide de configuration (mes recommandations) :

  1. Font icons : Répondez « Y » si vous voyez les icônes correctement
  2. Prompt style : « Rainbow » (option 3) – Le plus beau
  3. Character set : « Unicode » – Plus d’icônes
  4. Show current time : « 24-hour format » – Pratique pour les logs
  5. Prompt separators : « Angled » – Look moderne
  6. Prompt heads : « Sharp » – Style épuré
  7. Prompt tails : « Flat » – Équilibré
  8. Prompt height : « Two lines » – Plus d’espace
  9. Prompt spacing : « Sparse » – Plus lisible
  10. Icons : « Many icons » – On est là pour ça
  11. Prompt flow : « Concise » – Optimisé
  12. Transient prompt : « Yes » – Terminal plus propre

Installation des polices Nerd Font (crucial !)

Pour que les icônes s’affichent correctement :

macOS : Le wizard propose l’installation automatique. Acceptez !

Linux :

# Téléchargement des polices recommandées
mkdir -p ~/.local/share/fonts
cd ~/.local/share/fonts

# MesloLGS NF (recommandée)
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Regular.ttf
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold.ttf
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Italic.ttf
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold%20Italic.ttf

# Refresh du cache des polices
fc-cache -fv

Configuration du terminal :

  • Terminal macOS : Preferences → Profiles → Text → Font → « MesloLGS NF »
  • iTerm2 : Preferences → Profiles → Text → Font → « MesloLGS NF » (Pro tip : Lisez mon guide iTerm2 complet pour une config optimale)
  • VS Code terminal : Settings → terminal.integrated.fontFamily"MesloLGS NF"

🚨 Problèmes fréquents avec Powerlevel10k

Caractères cassés/boxes : Police non installée ou mal configurée

# Relancez la config
p10k configure
# Étape 1 : installez les polices recommandées

Prompt lent : Trop de segments activés

# Éditez la config
nano ~/.p10k.zsh
# Commentez les segments lourds (ex: disk_usage)

Git status incorrect : Permissions du dépôt

git config --global --add safe.directory /votre/repo

Plugins essentiels : Votre nouveau superpouvoir

Oh My Zsh, c’est 300+ plugins prêts à l’emploi. Voici ma sélection de ceux qui changent vraiment la vie.

Ma config plugins de base

Dans votre .zshrc, remplacez la ligne plugins=(git) par :

plugins=(
  git
  docker
  docker-compose
  node
  npm
  yarn
  python
  pip
  sudo
  history
  colored-man-pages
  command-not-found
  extract
  web-search
)

Plugins communautaires indispensables

Ces gems ne sont pas inclus par défaut, mais valent le détour :

zsh-autosuggestions (Fish-style autocomplétion)

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

zsh-syntax-highlighting (Coloration syntaxique)

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

Ajoutez-les aux plugins :

plugins=(
  git
  docker
  # ... autres plugins
  zsh-autosuggestions
  zsh-syntax-highlighting  # TOUJOURS en dernier !
)

⚡ Plugins par cas d’usage

Pour le développement web :

plugins=(git node npm yarn react)

Pour les sysadmins :

plugins=(git docker ssh-agent systemd ansible)

Pour Python :

plugins=(git python pip virtualenv)

🎯 Alias magiques

Ces plugins ajoutent des alias surpuissants :

Git :

  • gstgit status
  • gcogit checkout
  • gcbgit checkout -b
  • gpgit push
  • glgit pull

Docker :

  • dpsdocker ps
  • dexecdocker exec -it
  • drmdocker rm

Extract : Décompresse TOUT

  • extract fichier.tar.gz
  • extract archive.zip
  • extract document.rar

Configuration avancée : Pour les ninjas 🥷

Alias personnalisés

Ajoutez vos propres alias à la fin du .zshrc :

# Navigation rapide
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
alias ..='cd ..'
alias ...='cd ../..'

# Git shortcuts
alias gs='git status'
alias gd='git diff'
alias gl='git log --oneline --graph'

# Docker shortcuts
alias dps='docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"'
alias dlog='docker logs -f'

# Système
alias h='history'
alias c='clear'
alias reload='source ~/.zshrc'

# Recherche rapide
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'

Fonctions utiles

# Création rapide de dossier + navigation
mkcd() {
  mkdir -p "$1" && cd "$1"
}

# Backup rapide
backup() {
  cp "$1" "$1.backup.$(date +%Y%m%d-%H%M%S)"
}

# Recherche dans l'historique
hist() {
  history | grep "$1"
}

# IP publique
myip() {
  curl -s https://ipinfo.io/ip
}

Variables d’environnement

# Éditeur par défaut
export EDITOR='nano'  # ou vim, code...

# Langues
export LANG=fr_FR.UTF-8
export LC_ALL=fr_FR.UTF-8

# Paths personnalisés
export PATH="$HOME/bin:$PATH"
export PATH="/usr/local/bin:$PATH"

🔧 Configuration Powerlevel10k avancée

Le fichier ~/.p10k.zsh contient toute la config. Quelques tweaks sympas :

# Éditez le fichier
nano ~/.p10k.zsh

# Trouver cette section et personnaliser :
typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
  dir                     # Dossier actuel
  vcs                     # Git status
  # newline              # Nouvelle ligne
  prompt_char             # Caractère de prompt
)

typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(
  status                  # Code de retour
  command_execution_time  # Temps d'exécution
  background_jobs         # Jobs en arrière-plan
  time                    # Heure
)

Maintenance et troubleshooting

Mise à jour

Oh My Zsh :

omz update

Powerlevel10k :

git -C ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k pull

Plugins communautaires :

# Exemple pour zsh-autosuggestions
git -C ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions pull

Problèmes courants

Prompt qui se charge lentement :

# Debug des temps de chargement
time zsh -i -c exit

# Si > 1 seconde, debug Powerlevel10k
p10k configure
# Désactivez les segments lourds

Autocomplétion cassée :

rm ~/.zcompdump*
exec zsh

Plugin qui ne marche pas :

# Vérifiez qu'il est dans la liste
echo $plugins

# Rechargez la config
source ~/.zshrc

# Vérifiez les erreurs
zsh -x ~/.zshrc

Sauvegarde de votre config

# Backup de votre setup
tar -czf oh-my-zsh-backup.tar.gz ~/.zshrc ~/.p10k.zsh ~/.oh-my-zsh/custom/

# Restauration
tar -xzf oh-my-zsh-backup.tar.gz -C ~/

Désinstallation (si vraiment nécessaire)

uninstall_oh_my_zsh

⚠️ Attention : Ça supprime tout ! Sauvegardez d’abord.


Conclusion

Bravo ! Vous venez de transformer votre terminal en véritable cockpit de développeur. Avec Oh My Zsh et Powerlevel10k, vous avez maintenant :

✅ Un terminal magnifique et informatif
✅ Une productivité décuplée grâce aux plugins
✅ Une configuration pro qui fait envie
✅ Des alias magiques qui vous font gagner du temps

Et maintenant ?

🚀 Poussez plus loin : Explorez iTerm2 avec ma config ultime pour une expérience terminale complète
🐳 Automatisez : Intégrez avec Docker pour des environnements de dev isolés
🔧 Personnalisez : Créez vos propres plugins et thèmes

Le mot de la fin

Un bon terminal, c’est comme un bon café ☕ : ça rend tout le reste possible. Maintenant que vous avez goûté à Oh My Zsh + Powerlevel10k, impossible de revenir en arrière !

Questions ? Problèmes ? La communauté Oh My Zsh est ultra-active. Et n’hésitez pas à partager vos configs et découvertes !


Liens utiles