Greboca  

Suport technique et veille technologique

DLFP - Dépêches  -  Quel terminal pour 2018 ?

 -  12 mars - 

Vous connaissez les terminaux, ces petites fenêtres le plus souvent noires où l’on tape des lignes de commande bizarres ? Eh bien, vous risquez d’être surpris : le choix du logiciel pour faire ça n’est pas aussi simple que ça en a l’air et des gens continuent de proposer de nouvelles alternatives. Cette dépêche vise à présenter rapidement quelques fonctionnalités intéressantes que les terminaux historiques ne géraient pas forcément et à présenter quelques terminaux.

Sommaire

Les fonctionnalités

Apparence et polices

Historiquement, les terminaux avaient une couleur pour le texte et une autre pour le fond. Si l’on s’en tient à ce siècle, les terminaux étaient principalement en 16 couleurs au début, puis certains terminaux ont commencé à gérer des palettes de couleur plus étendues (256 couleurs par exemple) et, aujourd’hui, certains terminaux savent manipuler des couleurs sur 24 bits.

De même, les terminaux utilisaient surtout des jeux de caractères où un caractère était codé sur un octet, mais la prise en charge d’Unicode est maintenant répandue. Il faut néanmoins se méfier, certains terminaux annoncent gérer l’Unicode mais ne savent pas afficher les caractères codés sur quatre octets comme les émojis.

La prise en charge des polices peut également réserver certaines surprises. Tous les terminaux ne savent pas afficher des ligatures comme on peut trouver dans Fira Code ou les polices avec les symboles Powerline.

Et l’on peut également citer la possibilité d’avoir des coins arrondis ou de la transparence parmi les fonctionnalités proposées par des terminaux.

Terminaux multiples

Certains logiciels proposent de gérer plusieurs terminaux. Cela peut se faire avec un seul processus qui contrôle plusieurs fenêtres pour gagner en mémoire vive, mais l’approche la plus courante consiste à avoir une seule fenêtre avec plusieurs onglets. Enfin, il existe des terminaux qui reprennent l’approche des gestionnaires de fenêtres par pavage : une seule fenêtre peut être découpée pour afficher plusieurs terminaux et des raccourcis clavier permettent de contrôler le placement des terminaux et passer de l’un à l’autre.

Performances

A priori, un terminal ne serait pas l’endroit où l’on accorderait la plus grande importance aux performances. Pourtant, la latence des terminaux n’est pas toujours suffisamment faible pour se faire oublier.

On peut également citer la vitesse de défilement ou la quantité de mémoire utilisée.

Simplicité et fonctionnalités

Certains terminaux se veulent volontairement limités en termes de fonctionnalités. D’autres font plus de choses, et certains vont jusqu’à proposer des greffons ou des API pour permettre des usages avancés.

Dans les fonctionnalités que l’on retrouve chez certains mais pas chez d’autres, il y a la possibilité de remonter dans l’historique du terminal (le scroll‐back est parfois laissé à un logiciel tiers comme tmux dans certains terminaux), pouvoir cliquer sur les liens, pouvoir lancer des commandes au démarrage du terminal, l’affichage d’images directement dans le terminal, la prise en charge de Wayland, etc.

Les terminaux

Les grands classiques

Tout d’abord, il y a les grands classiques. Le plus connu est xterm, suivi par rxvt et son dérivé rxvt-unicode.

Ceux intégrés à un environnement de bureau

Les principaux environnements de bureau ont leur terminal : Konsole pour KDE, GNOME terminal pour GNOME, Xfce terminal pour Xfce et Terminology pour Enlightenment.

Les terminaux légers

st est un terminal codé en peu de lignes de C, avec un choix fort de ne pas prendre en charge certaines fonctionnalités et de ne pas faire de gros efforts pour les performances.

qterminal est un terminal léger s’appuyant sur Qt.

Les pavants

GNOME Terminator et Tilix sont deux terminaux qui mettent en avant la possibilité de découper leur fenêtre pour afficher plusieurs shells à l’intérieur.

Ceux utilisant la bibliothèque VTE

Il existe plusieurs terminaux s’appuyant sur la bibliothèque VTE (ou des dérivées de cette bibliothèque). Citons termite, sakura et GTKTerm.

Ceux pour les amoureux de Quake

Quake avait une console qui s’ouvrait en appuyant sur la touche ² et qui se déroulait depuis le haut de l’écran. Certains terminaux s’en sont inspirés, comme Yakuake, Guake et Tilda.

Les rapides, en OpenGL

Alacritty est un terminal récent qui utilise le processeur graphique (via OpenGL). C’est probablement le terminal le plus performant aujourd’hui. En revanche, il ne couvre que peu de fonctionnalités (pas encore d’historique, par exemple).

kitty est un autre terminal qui tire parti du processeur graphique. Il propose également pas mal de fonctionnalités.

L’artillerie lourde

Hyper est un terminal en HTML/CSS/JS (c’est du Electron derrière). Ça ouvre des possibilités intéressantes pour les greffons et l’affichage d’images ou de vidéos, mais ça a également des inconvénients (on peut, par exemple, se poser la question des performances).

Terminus est un dérivé d’Hyper.

Upterm, anciennement nommé Black Screen, est également un terminal qui tourne avec Electron. Il fournit également le shell et une auto-complétion graphique des commandes.

Les originaux

cool-retro-term est un terminal avec un aspect qui fait penser aux vieux tubes cathodiques. Pour les nostalgiques donc !

Et le gagnant ?

Il n’y a pas vraiment de gagnant. Différentes personnes ont différents critères. Pour certains, la prise en charge des ligatures est primordiale, alors qu’elle peut être totalement inutile pour quelqu’un d’autre.

À titre personnel, j’ai testé pas mal de terminaux et je suis resté sur urxvt. kitty me semble particulièrement intéressant, mais un bogue de ma carte graphique m’empêche de l’utiliser. Alacritty me semble encore un peu trop jeune et limité en fonctionnalités. Je ne suis pas à l’aise avec les versions extrêmes : st est trop limité à mon goût, alors que Hyper est trop lourd. Je n’ai pas particulièrement apprécié les terminaux liés à un environnement de bureau (mais je n’utilise pas d’environnements de bureau) et je suis tombé sur plusieurs bogues gênants pour les terminaux avec la bibliothèque VTE.

Wikipédia propose une liste de terminaux et une comparaison de certains d’entre eux.

Et vous, chers lecteurs, qu’utilisez‐vous ? Et pourquoi ?


N. D. A. : Merci aux nombreuses personnes qui ont commenté pour faire découvrir leur terminal préféré. J’ai ajouté ces terminaux à la dépêche, mais je vous encourage à lire les commentaires, c’est plus détaillé et cela permet de mieux comprendre les spécificités de chaque outil !

Lire les commentaires

par Bruno Michel, Davy Defaud, Benoît Sibaud

DLFP - Dépêches

LinuxFr.org

Sortie de LDAP Tool Box Self Service Password 1.3

 -  15 juillet - 

Le logiciel Self Service Password est développé au sein du projet LDAP Tool Box. Il fournit une interface permettant aux utilisateurs de changer (...)


Educode : le numérique, le code, le partage à l’école

 -  13 juillet - 

Educode est la première édition d’un colloque annuel international dédié à l’éducation, aux pratiques et à la recherche dans les domaines liés au (...)


Gnuk, NeuG, FST-01 : entre cryptographie et matériel libre

 -  2 juillet - 

Depuis quelques années, la Free Software Initiative of Japan (FSIJ, association de promotion des logiciels libres au Japon) travaille sur un (...)


GNUMail et Pantomime 1.3.0

 -  1er juillet - 

Thunderbird vous épuise ? Kmail vous torture ? Evolution vous clone ? Sylpheed, Balsa ou Geary ne vous font pas planer, la tambouille qui fait (...)


RyDroid Web Proxy (1.0) : outil de capture de sessions Web

 -  1er juillet - 

Pendant l’année scolaire 2016-2017, j’étais en dernière année d’école d’ingénieurs (l’ENSICAEN). J’ai donc fait un stage de fin d’études (à Orange, en (...)