TermKit : un terminal en WebKit

Nicolas Furno |
Partant du constat que le terminal UNIX n'a pas évolué depuis… les débuts de l'informatique, Steven Wittens a décidé de lui donner un sacré coup de jeune avec TermKit. Précisons d'emblée que le projet est encore au stade de l'alpha, que l'application s'avère assez instable et surtout pénible à installer : il faut Xcode et Git installés et mieux vaut s'y connaître un peu en compilations et en dépendances pour se lancer.



Comme on peut le voir, TermKit ne ressemble pas aux fenêtres de Terminal que l'on connaissait jusque-là. Le rendu est beaucoup plus espacé, il est coloré, la police est plus lisible et TermKit peut même afficher des documents complets directement dans la fenêtre du terminal. En affichant un document texte, l'application colore le texte comme un véritable éditeur. En outre, les commandes sont clairement séparées dans des boites identifiées par une icône (engrenage pour une commande, icône d'un fichier ou d'un dossier, par exemple). L'autocomplétion affiche aussi directement plusieurs choix, tandis que les contenus de dossiers sont listés sous la forme de grilles avec les icônes de chaque élément.



Pour obtenir un terminal aussi riche, TermKit est entièrement construit autour de WebKit, le moteur d'affichage utilisé, entre autres, par Apple dans Safari. On peut à tout moment afficher l'inspecteur standard de Webkit pour comprendre comment cela fonctionne. Ce choix permet à TermKit de proposer un terminal largement enrichi, mais il n'est pas sans quelques concessions : les plantages sont encore nombreux, TermKit n'est pour l'instant pas aussi efficace que le vrai Terminal, il ne gère pas toutes les commandes (pas de SSH par exemple) et il nécessite en l'état actuel le Terminal pour faire tourner un serveur en tâche de fond.



Bref, TermKit est un projet vraiment à l'état d'alpha, mais qui s'annonce prometteur. Vous pouvez l'essayer si vous connaissez un peu le développement sur Mac OS ou si vous connaissez bien l'univers Unix, sinon attendez plutôt que le projet évolue vers une application indépendante. En attendant, tous les détails techniques sont détaillés sur le blog du développeur.
avatar Nyx0uf | 
Essai.
avatar Lochnar | 
Woah ! Impressionnant !
avatar Arsenal Gear | 
Une belle initiative.
avatar Zed-K | 
Vraiment très intéressant ! Pas sûr de comprendre l’intérêt à utiliser WebKit, mais l'idée d'un terminal moderne est très appréciable, et les screenshots de la news annoncent un gros potentiel. Projet à suivre !
avatar Nicolas_D | 
Je ne suis absolument pas informaticien mais je souhaiterais comprendre. Je lis que terminal.app est un émulateur de terminal nécessaire lorsqu'on utilise un environnement graphique pour écrire des lignes de commande. Comment WebKit peut-il être utiliser comme terminal alors que c'est un moteur de rendu pour le HTML ? Merci pour vos explications.
avatar terreaterre | 
Fausse bonne idée à mon sens. Le terminal, c'est la connexion directe au système. Si on rajoute un couche graphique, ce n'est plus ça.
avatar GlobalNetConcept | 
Idée super intéressante ! Je vais tester ça.
avatar primalmotion | 
Je viens d'essayer. C'est bugué de partout (alpha oblige) mais le concept est génial! Super projet
avatar allrun | 
A voir sa a l'air génial! A tester quand se sera en Beta.
avatar oomu | 
http://replay.web.archive.org/20000511170441/http://xmlterm.com/screenshots.html http://replay.web.archive.org/20000823073850/http://xmlterm.com/shots/images.html un vieux projet de 1999 : xmlterm, basé sur le code du navigateur mozilla (maintenant firefox) de l'époque. http://www.xml.com/pub/a/2000/06/07/xmlterm/index.html
avatar oomu | 
@terreaterre [19/05/2011 11:08] "Fausse bonne idée à mon sens. Le terminal, c'est la connexion directe au système. Si on rajoute un couche graphique, ce n'est plus ça." Le terminal lui même, son shell, ses commandes et son affichage ne sont qu'une interface, une parmi tant d'autre, vers le système. Il n'y a pas de "connexion directe". Finder ou Terminal ou Photoshop n'ont pas + ou - d'accès "direct". que l'on dessine Terminal.app avec Cocoa, X11, Mozilla XUL, Opengl, Quartz ou Webkit avec affichage des images "intégrées" dans le flot des commandes ne change strictement rien à leur "accès direct au système". - Méfiez vous, même les commandes unix ne sont que des logiciels passant via les multiples API mises en place dans le système. Dans le cas de os X : Mach / BSD / LibC / tout le tralala posix le tout affiché dans un émulateur de terminal VT220 (typiquement, ou xterm).
avatar oomu | 
@Nicolas_D [19/05/2011 11:07] "Je ne suis absolument pas informaticien mais je souhaiterais comprendre." pensez en abstraction. Ne pensez pas seulement à l'usage final d'un logiciel. Le clou n'est pas fait que pour être une tige dans le mur. C'est pareil avec les logiciels. "Je lis que terminal.app est un émulateur de terminal nécessaire lorsqu'on utilise un environnement graphique pour écrire des lignes de commande." on va être précis. non, un "émulateur de terminal" n'est pas nécessaire pour écrire des lignes de commandes. les commandes unix genre ls, grep, awk, find, sort, unzip, touch, strip, finger, mount, gasp, yes, uptime n'ont pas besoin du terminal pour être exécutée. Vous pourriez les lancer tel Photoshop, via le Finder en double cliquant sur l'icône de leur exécutable (caché au fin fond de os X, cherchez pas). Une commande unix sur mac os X est un logiciel MAC comme l'est itunes : elle est un "binaire", et est "exécutée". Elle n'utilise pas cocoa (le cadre de développement graphique d'Apple sur os x/ios). Mais vous n'auriez pas grand chose à l'écran. Ces commandes furent conçues et pensée à l'époque où on branchait des terminaux : de simple écran+clavier sans intelligence à de gros ordinateurs. Ces terminaux géraient un protocole de communication pour afficher les réponses des commandes et taper au clavier. Par exemple VT100 ou VT220. On a jeté à la décharge les vieux gros ordis et les terminaux vt100. Mais les commandes unix restent toujours géniale et fondamentales. alors quoi ? et bien on utilise des logiciels qui simule ces vieux terminaux, des émulateurs de terminaux. C'est Terminal.app Terminal.app vous permet de voir les réponses des commandes unix. Elles s'attendent à communiquer avec terminal, elles envoient des codes d'affichage pour terminaux. Terminal.app les comprends et vous le met en forme à l'écran. et vous pouvez aussi leur envoyer des paramètres en tapant leur nom suivi d'un espace.
avatar Nicolas_D | 
Merci Morpheus-oomu pour l'explication.
avatar oomu | 
@Nicolas_D [19/05/2011 11:07] "Comment WebKit peut-il être utiliser comme terminal alors que c'est un moteur de rendu pour le HTML ?" et bien c'est très simple Quand vous lisez "webkit", vous vous dite que c'est un kit pour du web. Pire vous lisez le résumé du site de webkit et vous les croyez quand ils disent que c'est pour faire un navigateur web. erreur grave. c'est un "moteur de rendu de code html". Cela signifie que ça prend du code HTML en entrée, et ça le dessine à l'écran (le "rendu"). alors donc ? on peut dessiner (rendre) n'importe quoi que l'on peut décrire en html. en HTML on peut décrire des thèses, des histoires rigolotes, des interfaces de facebook.com ou des galleries de photo de chat. et bien pourquoi pas l'affichage de commandes UNIX ? en utilisant webkit+html, il est facile pour un développeur d'afficher images et autre, au milieu des résultats de commande unix. cat chat.jpg, affichera pas le code de l'image chat.jpg mais sa représentation visuelle. En html, il est relativement aisé de décrire comment afficher, comme mettre en forme pour l'utilisateur. webkit apporte cela : une facilité, une flexibilité.
avatar elamapi | 
Testé, c'est meuuuugnon tout plein .. mais bon, voila quoi. Quand je me connecte en console, c'est que j'ai besoin de la console. Quand à la coloration, et à l'autocompletion, Bash sait trés bien le faire sans surcouche. Ca me parait être une SUPER usine à gaz (à terme parce que là, maintenant, c'est juste inutilisable) pour rien.
avatar parafsuo54000 | 
Ca sert a rien non? Tout un OS android emule en javascript... De la branlette de geek
avatar parafsuo54000 | 
Un peu HS mon exemple mais bon
avatar lol51 | 
J'adore les commentaires désobligeants "ça sert à rien" "c'est pas une bonne idée", etc.. Un logiciel répond à un besoin, maintenant si vous pensez que [b]vous[/b] vous n'en avez pas besoin, allez voir ailleurs... Je suis sûr que lorsque le produit sortira dans une version stable, nombreux seront ceux à vouloir l'essayer.
avatar BeePotato | 
@ oomu : « On a jeté à la décharge les vieux gros ordis et les terminaux vt100. Mais les commandes unix restent toujours géniale et fondamentales. » Juste une remarque pour chipoter : ces commandes ne sont en rien fondamentales. Pratiques, oui (ce que certains, entraînés par leur enthousiasme, peuvent décrire comme « géniales »), mais fondamentales, non. En ce sens qu’un OS peut très bien tourner sans.
avatar djrom | 
@BeePotato Un OS seul ne fait rien. "Exploiter" l'os ne se fait pas seul, d'ou la fondamentalité
avatar Liam128 | 
C'est un beau proof of concept, mais ça va un peu à l'inverse de l'esprit du terminal. Le principe, c'est justement que ce soit épuré et en mode texte pur, histoire d'aller à l'essentiel et que tout soit écrit explicitement en toutes lettres. Sinon, ça devient... une interface graphique. Et des interfaces graphiques, on en fait déjà de très belles et très efficaces. Aqua par exemple.
avatar ovea | 
Ouai ! Mais vous avez pas l'impression, comme ça, à brule pourpoint que quand vous "coder" vous avez un peu plus qu'un éditeur de texte ? Le terminal.app, apporte déjà une vue contextuel qui aide … gravement, non !? Alors quand j'ai l'impression que l'idée ici pourrait bien apporter une forme d'interactivité contextuel plus intéressante que la banale utilisation du terminal … alors là je dis attention ! (À SUIVRE) de très près !!!

CONNEXION UTILISATEUR