1 puntos por GN⁺ 2025-03-09 | 1 comentarios | Compartir por WhatsApp
  • Vtm es un multiplexor de terminal virtual distribuido como un único ejecutable, que envuelve apps CLI para crear un escritorio basado en texto y conectar el mundo TUI con el GUI
  • Se ejecuta igual tanto en ventanas nativas como en la consola estándar, y admite anidamiento infinito, por lo que se pueden superponer varios entornos de terminal
  • vtm se ejecuta en modo escritorio, y vtm --run term [<your_shell>] funciona como un emulador de terminal independiente
  • En SSH, se puede conectar con el protocolo DirectVT usando vtm ssh user@host vtm, y se indica que ofrece mejor rendimiento que una conexión clásica
  • Soporta Windows 8.1 o superior y plataformas tipo Unix como Linux, macOS, FreeBSD, NetBSD y OpenBSD, pero el renderizado nativo de ventanas GUI actualmente solo es posible en Windows

Qué hace Vtm

  • Vtm es un multiplexor de terminal virtual distribuido como un único ejecutable
  • Se ejecuta igual en una ventana nativa o en la consola estándar
  • Puede envolver y ejecutar cualquier app CLI
  • Admite anidamiento infinito para construir un entorno de escritorio basado en texto
  • Su objetivo es ofrecer un escritorio basado en texto que cierre la brecha entre TUI y GUI

Modos de ejecución

  • Modo escritorio

    • Al ejecutar vtm, se inicia el entorno de escritorio
  • Modo terminal

    • Al ejecutar vtm --run term [<your_shell>], se puede usar Vtm como un emulador de terminal completamente independiente
  • Conexión binaria por SSH

    • A continuación se muestra un ejemplo de conexión SSH usando el protocolo DirectVT
    • vtm ssh user@host vtm
    • Se indica que este método ofrece mejor rendimiento que una conexión clásica

Demos y ejemplos

  • Se ofrece una demo en YouTube
  • Las demos de AnyPlex y VT2D power actualmente solo se pueden ejecutar en Windows
    • vtm --run test
  • Los ejemplos de apps HybridTUI, es decir, HTUI, se ofrecen en forma conceptual
    • vtm --run calc
    • vtm --run text
    • vtm --run gems

Plataformas compatibles y limitaciones

  • Windows

    • Compatible con Windows 8.1 o superior
    • Incluye Windows Server Core y Windows PE
  • Tipo Unix

    • Linux
    • macOS
    • FreeBSD
    • NetBSD
    • OpenBSD
    • Familia de sistemas operativos orientados a POSIX
    • Se ofrece por separado una lista de Tested Terminals
    • Actualmente, el renderizado nativo de ventanas GUI solo es posible en la plataforma Windows
    • En plataformas tipo Unix, se requiere un emulador de terminal

Distribución y documentación

Tecnologías utilizadas

1 comentarios

 
GN⁺ 2025-03-09
Comentarios en Hacker News
  • Hubo un hilo grande hace 5 años: https://news.ycombinator.com/item?id=24243521

    • Parece que el enlace principal de ese hilo terminó en manos de un actor malicioso
  • Siento que se me escapa algo obvio, pero me pregunto si esto es un multiplexor de terminal (como tmux) o un emulador de terminal en mosaico (como iTerm)

    • No es ninguno de los dos, se parece más a algo propio. Es más similar a tmux, pero la forma de interactuar se parece más a manejar un gestor de ventanas gráfico
    • El título del video de YouTube incrustado en GitHub es “Tiling Window Manager with Drag&Drop”, y al ver el video parece exactamente ese tipo de herramienta
      No sé por qué lo limitaron artificialmente a abrir solo terminales
    • Me recuerda mucho a una estación de trabajo Apollo
    • Yo diría que va más por el lado del mosaico
  • Hemos dado toda la vuelta. Se creó la GUI para reemplazar la TUI, y ahora volvimos a implementar una GUI dentro de una TUI. Larga vida a la terminal

    • En realidad se hizo dos veces. Muchas terminales corren sobre Electron o alguna interfaz tipo navegador, así que también se implementó una TUI dentro de una GUI
    • Parece la venganza de DESQview
    • En el video de demostración se siente mucho la vibra de Turbo Vision de Borland
    • Si se quiere hacer bien, también hay que pasar por aalib
    • Sí. Siento que esto se inclina demasiado hacia tener tantas funciones como una GUI, y no sé si al hacerlo se pierde algo de lo que se gana al empezar desde la terminal
  • La razón por la que uso la terminal es justamente que no necesito mouse. Uso muchas herramientas TUI, pero no creo que esta vaya a ser una de ellas

    • Estaría genial si tuviera comportamiento de mosaico y atajos de teclado al estilo i3/sway
  • Siempre me pregunté si sería posible tener un gestor de ventanas estilo TUI dentro de la terminal, y este es un proyecto realmente genial. La persona que lo hizo hizo un trabajo excelente

    • Yo llamo a mi entorno de escritorio TUI Emacs con gestor de ventanas en mosaico incluido %) Vim también podría dar una experiencia parecida
    • La demo se ve bien, pero después de varias decepciones prefiero ser cauteloso
      No basta con que se vea bonito
    • ¿Es algo como dvtm?
      https://www.brain-dump.org/projects/dvtm/
  • Se ve muy fluido
    Aunque desde mi perspectiva, la necesidad de arrastrar ventanas y cambiar su tamaño se parece más a un hábito del entorno Windows. Así que esto podría ser para el mouse lo que tmux y Neovim son para el teclado
    En tmux, los diseños de ventana que necesito son unos cuantos grupos fijos de paneles 2x2, y con una forma predefinida de redimensionarlos y un toggle de pantalla completa me basta. Con herramientas eficientes como telescope y nvim, cambiar entre cosas es tan rápido que deja de ser necesario tener todas las ventanas visibles al mismo tiempo, y uno termina usando más un modelo mental que una imagen visual de lo que hay. Por ejemplo, no necesito el árbol de archivos típico que suele estar a la izquierda en la mayoría de los IDE

    • Antes yo también pensaba así. Últimamente, por alguna razón, valoro más los valores por defecto y la reducción de carga cognitiva, y prefiero lo que me deja manipular menos y pensar más. Ahora hasta podría usar Eclipse sin problema :P
  • Hace algunos años había algo parecido, y creo que también funcionaba sobre una conexión ssh y tenía una especie de interfaz con zoom. No encuentro el enlace, pero me pregunto si a alguien le suena

    • No estoy totalmente seguro de qué quieres decir exactamente con “zoom”, pero kitty hace algo así: abre una conexión ssh con kitten ssh user@host y, al presionar una tecla, se abre otro panel ssh en la misma pestaña, y si mal no recuerdo se puede “ampliar” una pestaña para que ocupe toda la ventana
      https://sw.kovidgoyal.net/kitty/
    • Era exactamente esta herramienta. Antes se podía acceder por ssh así
      ssh vtm@netxs.online
      Ahora ese dominio ya no existe
  • Ojalá algunas apps web adoptaran este lenguaje de diseño de texto puro

  • Estoy tratando de entenderlo, pero como referencia, si ya uso tmux, ¿cambiarme a algo así básicamente me agrega gestión de ventanas/paneles basada en mouse?

  • Me gustaría que algunas de estas ideas llegaran a Zellij