1 points par GN⁺ 2025-03-09 | 1 commentaires | Partager sur WhatsApp
  • Vtm est un multiplexeur de terminaux virtuels fourni sous forme d’un exécutable unique ; il encapsule des apps CLI pour créer un bureau basé sur le texte et faire le lien entre TUI et GUI
  • Il s’exécute de la même manière dans une fenêtre native et dans une console standard, et prend en charge l’imbrication infinie, ce qui permet de superposer plusieurs environnements de terminal
  • vtm s’exécute en mode bureau, tandis que vtm --run term [<your_shell>] fonctionne comme un émulateur de terminal autonome
  • En SSH, il est possible de se connecter avec le protocole DirectVT sous la forme vtm ssh user@host vtm, annoncé comme plus performant qu’une connexion classique
  • Il prend en charge Windows 8.1 et versions ultérieures, ainsi que les plateformes de type Unix comme Linux, macOS, FreeBSD, NetBSD et OpenBSD, mais le rendu de fenêtres GUI natives n’est actuellement possible que sous Windows

Ce que fait Vtm

  • Vtm est un multiplexeur de terminaux virtuels fourni sous forme d’un exécutable unique
  • Il s’exécute de la même manière dans une fenêtre native ou une console standard
  • Il peut encapsuler et exécuter n’importe quelle app CLI
  • Il prend en charge l’imbrication infinie, permettant de constituer un environnement de bureau basé sur le texte
  • Son objectif est de fournir un bureau basé sur le texte qui comble le fossé entre TUI et GUI

Modes d’exécution

  • Mode bureau

    • L’exécution de vtm lance l’environnement de bureau
  • Mode terminal

    • L’exécution de vtm --run term [<your_shell>] permet d’utiliser Vtm comme un émulateur de terminal entièrement autonome
  • Connexion binaire SSH

    • Voici un exemple de connexion SSH utilisant le protocole DirectVT
    • vtm ssh user@host vtm
    • Cette méthode est présentée comme plus performante qu’une connexion classique

Démos et exemples

  • Des démos YouTube sont disponibles
  • Les démos AnyPlex et VT2D power ne sont actuellement exécutables que sous Windows
    • vtm --run test
  • Des exemples d’apps HybridTUI, c’est-à-dire HTUI, sont fournis sous forme de concepts
    • vtm --run calc
    • vtm --run text
    • vtm --run gems

Plateformes prises en charge et limites

  • Windows

    • Windows 8.1 et versions ultérieures pris en charge
    • Inclut Windows Server Core et Windows PE
  • Type Unix

    • Linux
    • macOS
    • FreeBSD
    • NetBSD
    • OpenBSD
    • Famille de systèmes d’exploitation orientés POSIX
    • Une liste de Tested Terminals est fournie séparément
    • Actuellement, le rendu de fenêtres GUI natives n’est possible que sur la plateforme Windows
    • Sur les plateformes de type Unix, un émulateur de terminal est nécessaire

Distribution et documentation

Technologies utilisées

1 commentaires

 
GN⁺ 2025-03-09
Commentaires sur Hacker News
  • Il y avait eu un gros fil il y a 5 ans : https://news.ycombinator.com/item?id=24243521

    • Le lien principal de ce fil semble être passé aux mains d’un acteur malveillant
  • J’ai l’impression de passer à côté de quelque chose d’évident, mais je me demande s’il s’agit d’un multiplexeur de terminal (comme tmux) ou d’un émulateur de terminal en tuiles (comme iTerm)

    • Ni l’un ni l’autre ; c’est plutôt quelque chose de propre. C’est ce qui se rapproche le plus de tmux, mais le mode d’interaction ressemble davantage à celui d’un gestionnaire de fenêtres graphique
    • Le titre de la vidéo YouTube intégrée sur GitHub est « Tiling Window Manager with Drag&Drop », et à la voir, l’outil ressemble exactement à ça
      Je ne sais pas pourquoi il a été artificiellement limité à l’ouverture de terminaux seulement
    • Ça me fait beaucoup penser aux stations de travail Apollo
    • Je dirais que c’est plutôt du tiling
  • La boucle est bouclée. On a créé les GUI pour remplacer les TUI, puis on a réimplémenté une GUI dans une TUI. Vive le terminal

    • Même deux fois. Comme beaucoup de terminaux tournent sur Electron ou une interface navigateur similaire, on a aussi implémenté une TUI dans une GUI
    • On dirait la revanche de DESQview
    • La vidéo de démo dégage beaucoup de vibes Turbo Vision de Borland
    • Pour bien faire, il faudrait aussi passer par aalib
    • Oui. À force de pencher autant vers des fonctionnalités de niveau GUI, je me demande si on ne perd pas justement ce qu’on gagnait à partir d’un terminal au départ
  • La raison pour laquelle j’utilise un terminal, à la base, c’est justement que je n’ai pas besoin de souris. J’utilise beaucoup d’outils TUI, mais celui-ci ne deviendra probablement pas l’un d’eux

    • Avec un comportement de tiling et des raccourcis clavier à la i3/sway, ce serait excellent
  • Je me suis toujours demandé s’il était possible d’avoir un gestionnaire de fenêtres de style TUI dans un terminal, et c’est vraiment un projet génial. La personne qui l’a fait a très bien travaillé

    • Mon environnement de bureau TUI, avec gestionnaire de fenêtres en tuiles inclus, je l’appelle Emacs %) Vim pourrait probablement offrir une expérience similaire
    • La démo a l’air bien, mais après m’être fait avoir quelques fois, je reste prudent
      Il ne suffit pas que ce soit joli
    • Un truc comme dvtm ?
      https://www.brain-dump.org/projects/dvtm/
  • Ça a l’air très fluide
    Cela dit, de mon point de vue, le besoin de glisser-déposer des fenêtres et de les redimensionner relève surtout d’une habitude de l’environnement Windows. Donc c’est peut-être un outil qui joue pour la souris le rôle que tmux et Neovim jouent pour le clavier
    Dans tmux, les dispositions de fenêtres dont j’ai besoin se résument à quelques ensembles de panneaux 2x2 fixes, et des méthodes de redimensionnement prédéfinies plus un basculement en plein écran suffisent. Avec des outils efficaces comme telescope et nvim, les changements sont tellement rapides qu’il n’est plus nécessaire d’aligner toutes les fenêtres de façon visible ; on s’appuie davantage sur un modèle mental de ce qui existe que sur une représentation visuelle. Par exemple, je n’ai pas besoin de l’arborescence de fichiers qu’on trouve souvent à gauche dans la plupart des IDE

    • Avant, je pensais pareil. Ces temps-ci, allez savoir pourquoi, j’accorde plus d’importance aux valeurs par défaut et à la réduction de la charge cognitive, et je préfère pouvoir moins manipuler et réfléchir davantage. Aujourd’hui, je pourrais probablement utiliser Eclipse sans problème :P
  • Il y avait quelque chose de similaire il y a quelques années, qui fonctionnait au-dessus d’une connexion ssh et avait aussi, je crois, une sorte d’interface zoomable. Je n’arrive pas à retrouver le lien ; quelqu’un voit de quoi il s’agit ?

    • Je ne suis pas totalement sûr de ce que « zoomable » veut dire ici, mais kitty fait ce genre de choses : avec kitten ssh user@host, on ouvre une connexion ssh, puis en appuyant sur une touche, un autre panneau ssh s’ouvre dans le même onglet, et de mémoire on peut « agrandir » un onglet à toute la fenêtre
      https://sw.kovidgoyal.net/kitty/
    • C’était exactement cet outil. Avant, on pouvait s’y connecter en ssh comme ça
      ssh vtm@netxs.online
      Maintenant, ce domaine est mort
  • J’aimerais que certaines applis web adoptent ce langage de design en pur texte

  • J’essaie de comprendre : si, comme point de comparaison, j’utilise tmux, est-ce qu’en passant à ce genre d’outil j’ajouterais une gestion des fenêtres/panneaux à la souris ?

  • Ce serait bien que certaines de ces idées arrivent dans Zellij