Babun, un terminal pour Windows

Editer
Article proposé par Kearny et adapté par Grafikart

En tant que développeur on est de plus en plus emmené à utiliser le terminal, malheureusement si on utilise Windows notre choix est plutôt limité : Par défaut on est emmené à utiliser l'invité de commande cmd.exe qui est tout simplement une abomination (historique plus que réduit, impossible d'effectuer de sélection, fenêtre non redimensionnable...). Il existe bien des solutions et des Shell alternatifs comme Cygwin, mais il faut être prêt à se lancer dans de la configuration assez chiante pour avoir quelque chose de réellement exploitable. Et c'est là que Babun entre en jeu.

Babun est un outil qui regroupe plusieurs éléments afin de vous simplifier la vie. Il fonctionne à partir de Cygwin et intègre 2 Shell (zsh avec oh-my-zsh et bash) ainsi qu'un tas d'autres outils comme la gestion des proxys, le gestionnaire de paquet pact pour Cygwin, git... Donc inutile de s'ennuyer à installer tout ça, il suffit d'installer Babun et tout fonctionne correctement.

Installation

Pour installer Babun il vous suffit de vous rendre sur le site et de télécharger le zip qui contiendra un fichier bat qui vous permettra d'installer les différents éléments qui permettront à Babun de fonctionner. Par défaut, babun s'installe dans le dossier C:\Users\******\.babun, si vous souhaiter installer babun dans un dossier spécifique il vous suffit de lancer le .bat avec l'option /target

install.bat /target D:\App

Attention, Cygwin qui est installé par babun n'utilisera par votre dossier personnel comme base pour stocker votre configuration git ou vos clefs ssh, mais un dossier qui se situe dans le dossier d'installation. Si c'est un comportement qui vous gène (si vous avez déjà votre configuration dans votre dossier C:\Users\****** vous pouvez forcer babun à utiliser votre dossier utilisateur en définissant une variable d'environnement HOME qui pointe vers votre dossier utilisateur.

Dans mon cas le dossier s'appelle Grafikart

Utilisation

Pour utiliser Babun vous avez 2 solutions :

  • Vous pouvez choisir d'ouvrir une nouvelle instance de babun dans un dossier spécifique en faisant un clic droit puis en sélectionnant "open Babun here"
  • Soit vous pouvez lancer le fichier babun.bat dans le dossier d'installation de babun.

Par défaut, babun intègre 2 Shell Bash et Zsh et démarrera sur Zsh (il vous suffit de taper bash pour passer sur bash.

Personnalisation

Une des choses qui est intéressantes avec babun c'est que l'on va pouvoir le personnaliser et l'adapter à nos besoins.

Changer la couleur et la police

La console de babun utilise Mintty donc si on souhaite personnaliser l'interface il faudra modifier le fichier ~/.minttyrc (par défaut il est vide)

Font=Menlo for Powerline
FontHeight=13

ForegroundColour=211,208,200
BackgroundColour=45,45,45
CursorColour=253,157,79
Black=45,45,45
BoldBlack=116,115,105
Red=242,119,122
BoldRed=236,50,53
Green=153,204,153
BoldGreen=102,177,102
Yellow=255,204,102
BoldYellow=255,177,24
Blue=102,153,204
BoldBlue=57,114,173
Magenta=204,153,204
BoldMagenta=177,102,177
Cyan=102,204,204
BoldCyan=57,173,173
White=211,208,200
BoldWhite=242,240,236

Dans mon cas j'utilise une police spéciale qui est utilisée par pas mal de thèmes pour oh-my-zsh. Ensuite au niveau des couleurs, j'utilise le thème solarized, mais vous pouvez adapter et utiliser des configurations toutes faites pour avoir des couleurs qui vous conviennent.

Oh-my-zsh

Oh my zsh est un framework qui permet de gérer simplement la configuration du Shell Zsh et qui intègre tout un tas de plug-ins et de thèmes. Si vous souhaitez personnaliser le thème qui sera utilisé par votre Shell, ajouter des alias ou encore activer ou désactiver des plug-ins il vous faudra modifier le fichier ~/.zshrc. Ce fichier contient par défaut beaucoup de commentaires alors je vous donne seulement les modifications que j'ai apportées.

ZSH_THEME="agnoster"
plugins=()

alias dssh="boot2docker ssh"
alias dstart="boot2docker up && boot2docker ssh"

DEFAULT_USER=Grafikart
  • Jutilise le thème agnoster que je trouve plutôt sympa, en revanche il vous faudra utiliser une police spéciale pour pouvoir l'utiliser pour gérer les caractères spéciaux. Si vous voulez un aperçu de certains thèmes disponibles, n'hésitez pas à faire un tour sur le dépôt github de oh my zsh
  • J'ai retiré le plug-in git de la liste des plug-ins, car il ralentit considérablement l'utilisation du terminal quand on rentre dans un dossier contenant un historique git assez conséquents. De le même façon oh my zsh arrive avec pas mal de plug-ins intéressants si vous souhaitez en activer il vous faudra modifier la variable plug-ins
  • Je définis la variable DEFAULT_USER pour gagner de l'espace afin que le Shell ne m'affiche pas tout le temps mon nom.

Ça commence à avoir de la tronche non ?

Et si je veux des onglets ?

Avoir plusieurs fenêtres de terminal peut être un petit peu pénible si vous n'avez pas un écran super grand et utiliser des onglets c'est parfois beaucoup plus pratique. Babun ne gère pas cela par défaut, mais il est tout à fait possible d'utiliser la console de babun avec ConEmu par exemple.
Dans ce cas-là il vous faudra créer une nouvelle tâche et y mettre :

  • Task parameters - /icon "%userprofile%.babun\cygwin\bin\mintty.exe" /dir "%userprofile%"
  • Commands %userprofile%.babun\Cygwin\bin\mintty.exe /bin/env CHERE_INVOKING=1 /bin/zsh.exe

N'oubliez pas d'adapter les chemins si vous avez installé Babun dans un dossier spécifique.

Vous pouvez aussi mettre cette tache tout en haut et la désignez comme tache par défaut

Vous pouvez aussi utiliser Cmder mini qui utilise ConEmu, mais qui est déjà préconfiguré avec certains raccourcis clavier habituels comme CTRL + T pour ouvrir une nouvelle console)

Voila !

Vous avez maintenant une console acceptable sur Windows qui contient un nombre important des outils que vous avez l'habitude d'utiliser sur Linux et qui est capable de gérer la sélection et les copier/coller simplement.

On s'y retrouve quand même plus facilement non ?