--- title: Pimp My Shell sub_title: "Tech'Work Lyon 2026" author: Julien Wittouck - @Codekaio theme: override: code: alignment: center minimum_size: 50 minimum_margin: fixed: 0 padding: horizontal: 1 vertical: 1 footer: style: template left: "{title}" center: "" right: "{current_slide} / {total_slides}" --- ![image:width:100%](pimp-my-shell.png) # 🐚 Mon shell mérite mieux qu'un bash ennuyeux Il doit être **lisible** Il doit être **portable** entre mes machines Il doit être **efficace** et **performant** Et puis ça peut aussi être joli 💖 ![image:width:75%](ghostty.png) # 🐚 Mon shell s'exécute dans un terminal moderne * Ghostty : émulateur de terminal performant (GPU powaaaaa) * Shell : **fish** : autosuggestions, complétions, scripting simple * Capable d'afficher des images 🤯 * Nerd Font **JetBrains Mono** * Ligatures : -> , =>, !=, <=, >=, /* */, <> * Emojis et symboles : 🤩, 🏭⚙️ , 🇫🇷 ![image:width:25%](tools.png) # 🐚 Mon shell est superchargé avec des outils boostés * 📄 `cat` → `batcat` : coloration syntaxique, numéros de lignes * 📂 `ls` → `lsd` : couleurs, icônes par type de fichier * 🚀 `cd` → `zoxide` : navigation intelligente par fréquence * 🔍 `find` → `fd` : recherche de fichiers rapide et intuitive ![image:width:75%](starship.png) # 🐚 Mon shell a un prompt qui envoie du lourd * Prompt **cross-shell** : compatible bash, zsh, fish, ... * Infos de contexte : * branche git + statut * version runtimes (java, node, ...) * kubecontext, workspace TF, ... * configuration dans `~/.config/starship.toml` * thèmes, modules ![image:width:65%](splashboard.png) # 🐚 Mon shell n'a pas à être vide quand il démarre * Splash screen customisable * Configuration globale `~/.config/splashboard` * Configuration par répertoire (`.splashboard.toml`) * Widgets : git, météo, calendrier, horloge, infos système… * Big text animé, thèmes Catppuccin, layouts flex ![image:width:55%](mise.png) # 🐚 Mon shell a un environnement clair * **mise** : runtimes, variables d'env, tâches * Configuration globale `~/.config/mise.toml` * Configuration au projet `mise.toml` * activation auto au `cd` : la config voyage avec le projet ![image:width:75%](fnox.png) # 🐚 Mon shell ne leak pas ses secrets * **fnox** : secrets montés dans l'env * stockage dans un fichier chiffré * référencement de secrets d'un Vault, secrets managers cloud * Configuration `fnox.toml` * activation auto au `cd` : les secrets voyagent avec le projet ![image:width:75%](chezmoi.png) # 🐚 Mon shell synchronise sa configuration * **chezmoi** : gestion des **dotfiles** (_aka_ `$HOME/.truc`) * synchronisation git * chiffrement avec **age** ou **gpg** pour les secrets ![image:width:45%](gum.png) # 🐚 Mon shell a des paillettes * **gum** : scripts interactifs : style, spinner, confirm, choose * `git fixup` alias : gum choose + commit --fixup + rebase --autosquash * utilisation de `gum pager` en $PAGER * **gimoji** : chercher et copier des gitmoji depuis le terminal # 🐚 Mon shell vous remercie ![image:width:80%](qrcode.png) Laissez moi un feedback ! ![image:width:80%](codekaio.png)  julien-wittouck  @codeka.io Ressources 🖥 **Ghostty** · JetBrains Mono Nerd Font · Catppuccin 🛠 bat · lsd · zoxide · fd 🚀 **Starship** · **Splashboard** · **mise** · **fnox** · **chezmoi** ✨ **gum** · gimoji · krabby 📽️ Slides faits avec **presenterm** — dispo sur tangled.org/codeka.io/pimp-my-shell