Vtm – textbasierte Desktop-Umgebung
(github.com/directvt)- 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
vtmstartet im Desktop-Modus, währendvtm --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
vtmstartet die Desktop-Umgebung
- Das Ausführen von
-
Terminal-Modus
- Mit
vtm --run term [<your_shell>]kann Vtm als vollständiger eigenständiger Terminal-Emulator genutzt werden
- Mit
-
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 calcvtm --run textvtm --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
- Binärdownloads werden für Linux, Windows und macOS angeboten
- Linux: x86_64, arm64, x86, arm32
- Windows: x86_64, arm64, x86
- macOS: x86_64, arm64
- Dokumentationsabschnitte
1 Kommentare
Hacker-News-Kommentare
Vor 5 Jahren gab es einen großen Thread: https://news.ycombinator.com/item?id=24243521
Vermutlich übersehe ich etwas Offensichtliches, aber ich frage mich, ob das ein Terminal-Multiplexer ist (wie tmux) oder ein Tiling-Terminal-Emulator (wie iTerm)
Ich weiß nicht, warum es künstlich darauf beschränkt wurde, nur Terminals öffnen zu können
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
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
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
Nur hübsch zu sein reicht nicht
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
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?
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/
ssh vtm@netxs.onlineInzwischen 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