Du simple dans un terminal avec Ncurses (ou pas)
Par Erwan le mercredi 6 décembre 2006, 19:26 - Ubuntu - Lien permanent
NCurse est une bibliothèque qui fournit des fonctions de contrôle de fenêtres , l'utilisation des touches de fonctions du clavier et de la souris, l'affichage 8 couleurs, tout ceci dans un terminal.
Je vous avais déjà
parler d'Ajaxterm qui permet d'avoir un accès SSH à distance avec un
simple navigateur. Bobuse
m'avait parlé alors de NCurse et je n'avais pas vraiment testé. Je peux
maintenant affirmer que cela fonctionne assez bien. L'utilisation de la souris
est compromise bien évidement, mais le reste est opérationnel. Je me suis donc
penché un peu plus en profondeur sur les applications courantes disponible à
partir d'un simple terminal. Le cahier des charges pour chaque application que
je me suis imposé est sommaire :
- Installation facile (apt-get)
- Facilité de configuration
- Facilité d'utilisation (flèches, touches indiquées dans la fenêtre)
- Un manuel digne le cas échéant
J'ai d'abords recherché les programmes utilisant NCurses, mais je n'avais pas trouvé énormément de choses. Peut-être y-a-t-il une distribution qui regroupe tout ça ? apparemment non (ce serait une très bonne idée pourtant). Me voici donc à rédiger ce billet pour avoir vos lumières.
Voici une liste de ce que j'ai trouvé (tous n'utilisent pas la bibliothèque Ncurses, mais répondent à mon cahier des charges) :
ccal : un
calendrier que je n'ai pas vraiment testé, la commande me jette simplement un
calendrier "à la cal" mais coloré. Les captures d'écran du site de
l'auteur sont alléchantes mais la documentation est assez pauvre.
calcurse : Identique à CCal mais avec une vraie
documentation, ce qui rend son utilisation plus simple.
irssi : client IRC, je ne le présente pas, les commandes
étant celle de n'importe quel client IRC.
mutt : Le client mail texte le plus connu. "All mail
clients suck. This one just sucks less." Pour la configuration, aller
faire un tour sur cet excellent guide ou encore celui-ci.
raggle : Un lecteur RSS vraiment génial et intuitif.
- pour importer ses flux provenant d'un fichier opml : raggle --import-opml feedlist.opml
- Les touches d'utilisations sont simple : SUP/DEL pour supprimer les flux - M pour les marquer comme lu - TAB ou les flèches pour la navigation entre les différentes ''fenêtre" et les flux RSS. Voila tout ce qu'il faut savoir pour débuter avec ce programme.
CenterICQ : un client
de chat multi-protocole. La configuration de ce client se fait lors du premier
lancement et de manière intuitive. La touche g permet d'accéder au
menu général et certaines actions sont indiquées en bas (Control + X
pour envoyer un message par exemple). Je ne connais pas encore les autres
touches mais le manuel est complet, vous trouverez certainement ce qu'il vous
manque.
moc : Music On Console, un Lecteur audio pour console
donc. Ne fonctionne pas via SSH couplé à Ajaxterm (ni avec SSH simplement). Le
son sort sur le poste serveur ce qui trouve quand même son utilité... pour les
apprentis farceurs.
Htop : un visionneur de
processus semblable à la commande bien connu top mais plus
conviviale.
Pinger : n'est pas présent dans les dépôts. Il permet de faire
plusieurs ping simultanément.
- twin : un windows manager en mode texte avec ombre portée sous les fenêtres ! La, sans la souris c'est vraiment délicat... Je me suis contenté de regarder les captures d'écran sur le site.
- Screen : Similaire à Twin mais l'utilisation semble plus ardue. Je n'ai pas eu le courage de tester celui la non plus. Je n'ai pas vraiment besoin d'un gestionnaire de fenêtre, je suis tombé sur ces deux dernier par hasard.
Bon, il y en a beaucoup d'autres qui sont vraiment très pratique :
- elinks : navigateur internet
- iftop : visionneur de bande passante
- mplayer -vo caca
- Une petite liste que je n'ai pas encore eu le temps de testé que je rajouterais si j'ai le temps dans cette liste :
Voila donc une liste non exhaustive de ce qui est facilement utilisable dans un terminal. Tous est disponible, sauf indication contraire, dans les dépôts officiels d'Ubuntu.
Bon, l'utilité est discutable à l'heure des interfaces graphiques tri-dimensionnelles aux effets bluffants, mais tout de même, c'est fort de pouvoir faire tout ça a distance avec un simple navigateur internet...
Allez, pour le plaisir ou la folie, faites un Control + Alt + F1 pour tester votre dépendance face à X.org ou Beryl. A quand la journée sans serveur graphique ? Il ne me reste plus qu'a résoudre plusieurs petits soucis de configuration sur mutt, [1], synchroniser Raggle et Liferea, mes calendriers avec Calcurses, mon carnet d'adresses avec les alias de Mutt et je suis prêt pour cette journée !
Alors quelles sont les perles que je n'ai pas trouvée ?
Notes
[1] 553 sorry, your envelope sender domain must exist vers certains domaines.
Commentaires
Ncmpc. :D
Contrôler Mpd en console via Ncurse. Vraiment très sympa et peut avantagesement remplacer un lecteur de musique graphique.
tmsnc : un client msn ( http://tmsnc.sourceforge.net/ )
hexeditor : éditeur hexadécimal
Tu as oublié cowsay ou encore bb (inutile, mais marrant)
les clients installés par défaut pour bittorrent utilisent aussi ncurses:
btdownloadcurses et btlaunchmanycurses sont des modèles du genre.
vu que quelqu'un parle de bittorent, il y a rtorrent qui est un client qui utilise ncurses et dont l'utilisation est très pratique et efficace
l'article parle de screen, pour un utilisateur qui travaille la plupart du temps en graphique et qui utilise de multiples fenetres de term ou juste des commandes simples, cet outil ne sera pas bien utile, par contre dès qu'il s'agit d'utiliser le mode console seulement ou par une connexion ssh, screen devient l'outil indispensable
Il me semble qu'il est tout à fait possible d'utiliser la souris en mode console avec GPM et une commande style: gpm -m /dev/psaux -t ps2 D'ailleurs essaye donc Lynks2 un navigateur complet en mode console qui affiche même les images
Je corrige : il ne s'agit pas de Lynks2 mais de Links2
Utilisateur d'Ubuntu en SSH exclusivement, voici ce que j'utilise le plus souvent sur ma machine :
voilà voilà
Il en existe beaucoup beaucoup ... beaucoup d'autres
par exemples :
dans un terminal viruel faire links2 -g . Après avoir fait: sudo apt-get install links2 bien sur. Sinon en mode texte pur, il faut faire links2 -driver fb, mais j'ai pas été foutu de faire marcher ca. Ca serait l'ideal en cas de plantage de X
Je confirme que gpm en console c'est très bien pour avoir la souris. (sudo apt-get install gpm... et ça marche
)
Sinon pour ce qui est de "links2 -driver fb" il faut que le framebuffer soit activé dans le noyau linux... et je sais pas si c'est le cas par défaut sous Ubuntu.
Tiens, pour bien profiter de la video en ascii essaie un truc de ce genre :
xterm -fn 5x7 -geometry 240x200 -e "CACA_DRIVER=ncurses mplayer -vo caca mavideo.avi"
J'avais plus simple à une époque avec un truc du genre "export FONT=..." mais j'ai pas retrouvé
Pour information screen est vraiment agréable à utilisé puisqu'il permet une gestion de console en une seul console.
Très pratique,on ouvre une seul connexion ssh puis un screen derrière et on obtient autan de console nécessaire.
Autre point on peut décrocher la session et la raccroché lors d'une prochaine connexion.
Effectivement, il y en a bcp d'autres !
Pour le reste, je retiens iptraf et les clients bittorrent que j'essayerai des que l'occasion se présentera. Je testerai aussi mc.
Pour links2, les images sont bien la avec l'option -g, mais quid du mode texte ?
Bon, j'en ai un peu marre de lire les man donc je fais une pose pour le moment
À noter que raggle utilise la urwid
Sinon perso je préfère la ligne de commande tout court que des logiciel qui utilise NCurse, la plupart du temps si l'interface réalisée est trop complexe le programme ne sera pas très rapide à mon goût (par exemple raggle).
Hello, tu peux aussi ajouter vfu! un navigateur de fichier super cool!
chouette billet je trouve, merci.
Désolé pour ce deuxième commentaire (rho le flood !!) mais je viens de découvrir moc, et perso je trouve qu'il déchire vraiment !
Merci !!!!
vfu : pas mal !!! je le rajouterais aussi
Y a pas de distribution ncurses/equivalent - j'ai fait distrowatch de long en large mais pas de travers...
gapz : Raggle, son inconvénient, c'est qu'il n'y a pas d'alternative :D - enfin, a ma connaissance...