1 Punkte von GN⁺ 2025-03-09 | 1 Kommentare | Auf WhatsApp teilen
  • Vtm ist ein als einzelne ausführbare Datei bereitgestellter virtueller Terminal-Multiplexer, der CLI-Apps umschließt, einen textbasierten Desktop erzeugt und TUI und GUI miteinander verbindet
  • Es läuft gleichermaßen in nativen Fenstern und in Standardkonsolen und unterstützt unendliches Verschachteln, sodass mehrere Terminal-Umgebungen übereinander genutzt werden können
  • vtm startet im Desktop-Modus, während vtm --run term [<your_shell>] als eigenständiger Terminal-Emulator arbeitet
  • Per SSH kann man sich in der Form vtm ssh user@host vtm über das DirectVT-Protokoll verbinden; dies soll leistungsfähiger sein als eine klassische Verbindung
  • Unterstützt werden Windows 8.1 und neuer sowie Unix-like Plattformen wie Linux, macOS, FreeBSD, NetBSD und OpenBSD; natives Rendering von GUI-Fenstern ist derzeit jedoch nur unter Windows möglich

Was Vtm macht

  • Vtm ist ein virtueller Terminal-Multiplexer und wird als einzelne ausführbare Datei bereitgestellt
  • Es läuft gleichermaßen in einem nativen Fenster oder in einer Standardkonsole
  • Es kann jede CLI-App umschließen und ausführen
  • Es unterstützt unendliches Verschachteln, um eine textbasierte Desktop-Umgebung aufzubauen
  • Ziel ist es, einen textbasierten Desktop bereitzustellen, der die Lücke zwischen TUI und GUI schließt

Ausführungsmodi

  • Desktop-Modus

    • Das Ausführen von vtm startet die Desktop-Umgebung
  • Terminal-Modus

    • Mit vtm --run term [<your_shell>] kann Vtm als vollständiger eigenständiger Terminal-Emulator genutzt werden
  • SSH-Binärverbindung

    • Ein Beispiel für eine SSH-Verbindung über das DirectVT-Protokoll sieht wie folgt aus
    • vtm ssh user@host vtm
    • Diese Methode soll leistungsfähiger sein als eine klassische Verbindung

Demos und Beispiele

  • Eine YouTube-Demo ist verfügbar
  • Die Demos AnyPlex und VT2D power sind derzeit nur unter Windows ausführbar
    • vtm --run test
  • Beispiel-Apps für HybridTUI, also HTUI, werden als Konzept bereitgestellt
    • vtm --run calc
    • vtm --run text
    • vtm --run gems

Unterstützte Plattformen und Einschränkungen

  • Windows

    • Unterstützt Windows 8.1 und neuer
    • Einschließlich Windows Server Core und Windows PE
  • Unix-like

    • Linux
    • macOS
    • FreeBSD
    • NetBSD
    • OpenBSD
    • POSIX-orientierte Betriebssystemfamilien
    • Eine Liste der Tested Terminals wird separat bereitgestellt
    • Derzeit ist natives Rendering von GUI-Fenstern nur auf der Windows-Plattform möglich
    • Auf Unix-like Plattformen ist ein Terminal-Emulator erforderlich

Distribution und Dokumentation

Verwendete Technologien

1 Kommentare

 
GN⁺ 2025-03-09
Hacker-News-Kommentare
  • Vor 5 Jahren gab es einen großen Thread: https://news.ycombinator.com/item?id=24243521

    • Der Hauptlink in diesem Thread scheint an einen böswilligen Akteur gefallen zu sein
  • Vermutlich übersehe ich etwas Offensichtliches, aber ich frage mich, ob das ein Terminal-Multiplexer ist (wie tmux) oder ein Tiling-Terminal-Emulator (wie iTerm)

    • Weder noch; es ist eher etwas Eigenes. tmux kommt dem am nächsten, aber die Interaktion ähnelt eher dem Umgang mit einem grafischen Fenstermanager
    • Der Titel des auf GitHub eingebetteten YouTube-Videos lautet „Tiling Window Manager with Drag&Drop“, und wenn man sich das Video ansieht, wirkt es genau wie so ein Tool
      Ich weiß nicht, warum es künstlich darauf beschränkt wurde, nur Terminals öffnen zu können
    • Erinnert mich stark an Apollo-Workstations
    • Ich würde es eher der Tiling-Seite zuordnen
  • Damit hat sich der Kreis geschlossen. Man hat GUIs gebaut, um TUIs zu ersetzen, und dann wieder eine GUI innerhalb einer TUI implementiert. Lang lebe das Terminal

    • Eigentlich sogar zweimal. Viele Terminals laufen auf Electron oder einer ähnlichen Browser-Oberfläche, also wurde auch eine TUI innerhalb einer GUI implementiert
    • Wirkt wie DESQviews Rache
    • Im Demo-Video steckt viel von Borlands Turbo Vision-Gefühl
    • Wenn man es richtig machen will, muss es auch einmal durch aalib gehen
    • Stimmt. Das neigt so stark dazu, den Funktionsumfang einer GUI zu erreichen, dass ich mich frage, ob man nicht etwas von dem verliert, was man ursprünglich dadurch gewonnen hat, dass man im Terminal angefangen hat
  • Der Grund, warum ich überhaupt ein Terminal benutze, ist, dass ich keine Maus brauche. Ich nutze viele TUI-Tools, aber das hier wird wohl keines davon werden

    • Mit Tiling-Verhalten und Keybindings im Stil von i3/sway wäre es großartig
  • Ich habe mich immer gefragt, ob ein TUI-artiger Fenstermanager im Terminal möglich ist; das ist ein wirklich cooles Projekt. Die Person dahinter hat sehr gute Arbeit geleistet

    • Meine TUI-Desktop-Umgebung nenne ich Emacs, inklusive Tiling-Fenstermanager %) Vim könnte wohl ein ähnliches Erlebnis bieten
    • Die Demo sieht gut aus, aber nach ein paar schlechten Erfahrungen bin ich vorsichtig
      Nur hübsch zu sein reicht nicht
    • So etwas wie dvtm?
      https://www.brain-dump.org/projects/dvtm/
  • Sieht sehr flüssig aus
    Aus meiner Sicht ist der starke Bedarf, Fenster per Drag-and-drop zu verschieben und in der Größe zu ändern, allerdings eher eine Gewohnheit aus Windows-Umgebungen. Vielleicht ist das also für die Maus das, was tmux und Neovim für die Tastatur sind
    In tmux bestehen die Fensterlayouts, die ich brauche, aus ein paar festen 2x2-Panel-Sets; vordefinierte Größenänderungen und ein Vollbild-Umschalter reichen aus. Mit effizienten Tools wie telescope und nvim ist das Umschalten so schnell, dass die Notwendigkeit verschwindet, alle Fenster sichtbar anzuordnen, und man nutzt stärker ein mentales Modell dessen, was vorhanden ist, statt ein visuelles Bild. Zum Beispiel brauche ich den Dateibaum links, wie er in den meisten IDEs üblich ist, nicht

    • Früher habe ich auch so gedacht. Heute lege ich aus irgendeinem Grund mehr Wert auf Defaults und geringere kognitive Belastung und bevorzuge es, weniger herumzuhantieren und mehr denken zu können. Inzwischen könnte ich wohl sogar Eclipse ganz gut nutzen :P
  • Vor ein paar Jahren gab es etwas Ähnliches, und ich glaube, es lief über eine ssh-Verbindung und hatte auch so etwas wie eine zoombare UI. Ich finde den Link nicht mehr; weiß jemand, was das gewesen sein könnte?

    • Ich verstehe nicht ganz, was mit „Zoomen“ genau gemeint ist, aber kitty macht so etwas: Mit kitten ssh user@host öffnet man eine ssh-Verbindung, und per Tastendruck öffnet sich im selben Tab ein weiteres ssh-Panel; soweit ich mich erinnere, kann man einen Tab auf das ganze Fenster „vergrößern“
      https://sw.kovidgoyal.net/kitty/
    • Genau dieses Tool war es. Früher konnte man sich so per ssh verbinden
      ssh vtm@netxs.online
      Inzwischen ist die Domain tot
  • Ich wünschte, einige Web-Apps würden diese reine Text-Designsprache übernehmen

  • Ich versuche es zu verstehen: Wenn ich als Vergleichsmaßstab tmux nutze, käme beim Wechsel zu so etwas mausbasierte Fenster-/Panel-Verwaltung hinzu?

  • Es wäre schön, wenn einige dieser Ideen in Zellij einfließen würden