Blogue de Le(Ge)²

Aussi simple que possible, réalistement compliqué

Samedi 24 février 2007

Un terminal amélioré et accessible sous Windows

TerminalCe n’est pas un révélation pour personne, le terminal/shell de commandes (cmd.exe) sous Windows XP (de même que Vista) est dysfonctionnel: copier/coller non-intuitif et fonctionnant seulement en sélection par bloc, copier/coller bloquant l’exécution en cours, complétion des commandes imprévisible, etc.

Que faire pour y remédier? À l’aide de quelques outils Open Source, j’ai concocté une solution qui me semble intéressante. Cette solution permet d’utiliser un terminal virtuel (rxvt) et un shell (bash) plus évolué du type Unix/Linux sous Windows.

Premièrement, il faut installer l’incontournable cygwin. En plus des packages de base, le package rxvt doit être sélectionné. N’oubliez pas d’ajouter cygwin dans la variable d’environnement PATH (typiquement C:\cygwin\bin), sans quoi quelques ajustements seront nécessaires dans ce qui suit.

Bien! Le nouveau terminal est dès maintenant disponible : il suffit d’exécuter (Démarrer > Exécuter) rxvt -e bash. Cependant, on peut simplifier encore plus son utilisation.

Connaissez-vous AutoHotkey? Il s’agit d’un outil merveilleux pour faire des scripts évolués de raccourcis claviers. Le script suivant détecte le dossier courant de l’explorateur Windows et lance un script bash avec le chemin de ce dossier en paramètre.

#NoTrayIcon
#C::
ID := WinExist("A")
WinGetClass, Class, ahk_id %ID%
ControlGetText, ePath, Edit1, ahk_id %ID%
Run, bash terminal.sh %epath%, , Hide
return

Le script terminal.sh convertit le chemin du dossier au format Unix et ajuste la présentation de rxvt.

#!/usr/bin/env bash
if [ -n "$*" ]
then
  DIR_PATH=$(cygpath -u "$*");
  cd "$DIR_PATH"
else
  cd /cygdrive/c
fi
rxvt -title "Terminal" -fn "Lucida Console-14" -bg black -fg gray -cr green +vb +sb -sl 4000 -e bash -i

Voilà! Maintenant la combinaison des touches Win + C ouvre un terminal plus évolué à l’emplacement où vous vous trouvez dans l’explorateur Windows.

En écrivant ce billet, j’ai découvert Console, un logiciel également Open Source qui, à première vue, me semble mieux que rxvt. La version 2.0 est encore en beta et j’ai expérimenté quelques problèmes, mais cela promet! À suivre…

Mise à jour (2007-05-20): J’ai ajusté le script terminal.sh pour qu’il prenne un dossier avec un caractère d’espacement.

Vos commentaires

  1. Eric Soucy le 25 février 2007 à 19:50 a dit :

    bonne article, il y a aussi mrvxt. Celui-ci donne plusieurs onglet!

Laisser un commentaire