dvtm – dynamic virtual terminal manager

dvtm bringt das Konzept der Kachelfensterverwaltung, das von X11-Fenstermanagern wie wmauf die Konsole gebracht wurde. Als Konsolenfenstermanager versucht es, die Arbeit mit mehreren konsolenbasierten Programmen zu vereinfachen.

abduco+dvtm demo

Nachrichten

  • dvtm-0.15veröffentlicht (2016-01-09)
  • dvtm-0.14veröffentlicht (2015-02-19)
  • dvtm -0.13veröffentlicht (2014-11-15)
  • dvtm-0.12veröffentlicht (2014-07-05)
  • dvtm-0.11released (2014-03-08)
  • dvtm-0.10released (2013-12-28)
  • dvtm-0.9released (2013-04-03)
  • dvtm-0.8released (2012-08-01)
  • dvtm-0.7released (2011-09-04)
  • dvtm-0.6released (2010-10-08)
  • dvtm-0.5.2released (2009-07-07)
  • dvtm-0.5.1released (2009-02-08)
  • dvtm-0.5released (2009-01-26)
  • dvtm-0.4.1released (2008-05-10)
  • dvtm-0.4released (2008-02-17)
  • dvtm-0.3released (2008-01-12)
  • dvtm-0.2released (2007-12-29)
  • dvtm-0.1veröffentlicht (21.12.2007)
  • dvtm-0.01 veröffentlicht (2007-12-08)

Download

Laden Sie entweder den neuesten Quell-Tarball herunter, kompilieren Sie ihn (Sie benötigen curses-Header) und installieren Sie ihn

$EDITOR config.mk && $EDITOR config.def.h && make && sudo make install

oder verwenden Sie eines der bereitgestellten Distributionsbinärpakete.

Warum dvtm? Die Philosophie hinter

dvtm ist bestrebt, theUnix einzuhalten philosophy.It versucht, eine Sache zu tun, dynamische Fensterverwaltung auf der Konsole,und es gut zu machen.

dvtm implementiert daher keine Sitzungsverwaltung, sondern delegiert diese Aufgabe an ein separates Tool namens abduco.

In ähnlicher Weise wird der Kopiermodus von dvtm implementiert, indem der Scrollback-Buffercontent an einen externen Editor geleitet und nur das gespeichert wird, was der Editor schreibt stdout. Daher wird der Auswahlprozess an den Editor delegiert, wo leistungsstarke Funktionen wie die Suche nach regulären Ausdrücken verfügbar sind.

Infolgedessen ist der Quellcode von dvtm relativ klein (~ 4000 Zeilen C), einfach und daher leicht zu hacken.

Schnellstart

Alle dvtm-Tastenkombinationen beginnen mit einem gemeinsamen Modifikator, der von nun an als MOD bezeichnet wird. Standardmäßig ist MOD auf CTRL+g eingestellt, dies kann jedoch zur Laufzeit mit der Befehlszeilenoption -m geändert werden.Die Einstellung von MOD auf CTRL-b wird beispielsweise durch Starten vondvtm -m ^b erreicht.

Fenster

Neue Fenster werden mit MOD+cerstellt und mit MOD+x geschlossen.Um zwischen den Fenstern zu wechseln, verwenden Sie MOD+j und MOD+k oder MOD+, wobei die Ziffer der Fensternummer entspricht, die in der Titelleiste angezeigt wird. Windows kann mit MOD+. minimiert und wiederhergestellt werden.Die Eingabe kann durch Drücken von MOD+a auf alle sichtbaren Fenster gerichtet werden, wobei dieselbe Tastenkombination erneut ausgegeben wird.e. nur das aktuell fokussierte Fenster erhält Eingaben.

Layouts

Sichtbare Fenster werden durch ein Layout angeordnet. Jedes Layout besteht aus einem Master- und einem Kachelbereich. In der Regel nimmt der Master-Bereich den größten Teil des Bildschirms ein und ist für das derzeit wichtigste Fenster vorgesehen. Die Größe des Masterbereichs kann mit MOD+hverkleinert bzw. mit MOD-l vergrößert werden. Fenster können mit MOD+Enter in den Masterbereich gezoomt werden. Die Anzahl der Fenster im Masterbereich kann mit MOD+i und MOD+d erhöht und verringert werden.

Standardmäßig verfügt dvtm über 4 verschiedene Layouts, die über MOD+Space

  • vertical Stack: Master-Bereich auf der linken Hälfte, andere clientsstacked auf der rechten Seite
  • bottom Stack: Master-Bereich auf der oberen Hälfte, andere Clients unten gestapelt
  • grid: jedes Fenster erhält einen gleich großen Teil des Bildschirms
  • fullscreen: Nur das ausgewählte Fenster wird angezeigt und belegt den gesamten verfügbaren Anzeigebereich MOD+m

Weitere Layouts sind im Quell-Tarball enthalten, aber standardmäßig deaktiviert.

Tagging

Jedem Fenster ist ein nicht leerer Satz von Tags zugeordnet. Eine Ansichtbesteht aus einer Reihe von Tags. Die aktuelle Ansicht enthält alle Fenster, die mit den aktuell aktiven Tags markiert sind. Die folgenden Keybindings werden verwendet, um die Tagsets zu manipulieren.

  • MOD-0 alle Fenster mit beliebigem Tag anzeigen
  • Mod-v-Tab wechselt zu den zuvor ausgewählten Tags
  • MOD-v- alle Fenster mit n-tem Tag anzeigen
  • Mod-V- Alle Fenster mit n-tem Tag zur / aus der Ansicht hinzufügen / entfernen
  • Mod-t- n-tes Tag auf fokussiertes Fenster anwenden
  • Mod-T- Hinzufügen / Entfernen eines n-ten Tags zu / aus einem Fenster

Statusleiste

dvtm kann angewiesen werden, Statusmeldungen von einer Namedpipe zu lesen und anzuzeigen. Als Beispiel wird das Skriptdvtm-status bereitgestellt, das die aktuelle Uhrzeit anzeigt.

Copymode

MOD+e leitet den gesamten Inhalt des Bildlaufpuffers an einen externen Editor weiter.Was auch immer der Editor in stdout schreibt, wird von dvtm gespeichert und kann später mit MOD+p eingefügt werden.

Damit dies funktioniert, muss der Editor als Filter verwendbar sein und sollte stderr für seine Benutzeroberfläche verwenden. Beispiele, in denen dies der Fall ist, umfassen sandy(1) und vis.

$ echo Hello World | vis - | cat

Patches

Es gibt eine Reihe von Out-of-Tree-Patches, die das Verhalten von dvtm anpassen:

  • pertag (siehe auch die entsprechende Mailingliste))

FAQ

Detach / Reattach Funktionalität

dvtm hat keine Session-Unterstützung eingebaut. Verwenden Sie stattdessen Abduco.

$ abduco -c dvtm-session

Lösen mit CTRL-\ und später wieder anbringen mit

$ abduco -a dvtm-session

Kopieren / Einfügen funktioniert nicht unter X

Wenn Sie die Mausunterstützung aktiviert haben, was bei den Standardeinstellungen der Fall ist, müssen Sie die Umschalttaste gedrückt halten, während Sie Text auswählen und einfügen. Falls Ihnen dieses Verhalten nicht gefällt, führen Sie dvtm entweder mit dem Befehlszeilenargument -M aus, deaktivieren Sie es zur Laufzeit mit MOD+M oder ändern Sie config.def.h, um es zur Kompilierungszeit vollständig zu deaktivieren. Sie können jedoch keine anderen Mausaktionen mehr ausführen, z. B. Fenster auswählen usw.

Wie ändere ich die Tastenbelegung?

Die Konfiguration von dvtm erfolgt durch Erstellen eines benutzerdefinierten config.hund (erneutes)Kompilieren des Quellcodes. Siehe den Standard config.def.hals Beispiel, die Anpassung an Ihre Vorlieben sollte einfach sein.Sie definieren grundsätzlich eine Reihe von Layouts und Schlüsseln, die dvtm verwenden wird.Es gibt einige vordefinierte Makros, um die Konfiguration zu erleichtern.

WARNUNG: Terminal ist nicht voll funktionsfähig

Dies bedeutet, dass Sie die dvtm.info Terminfo-Beschreibung nicht installiert haben, was mit tic -s dvtm.info möglich ist. Wenn Sie aus irgendeinem Grund keine neue terminfo installieren können, setzen Sie die Umgebungsvariable DVTM_TERM beim Starten von dvtm auf ein bekanntes Terminal, wie in

$ DVTM_TERM=rxvt dvtm

Dies weist dvtm an, rxvt als $TERM Wert in seinen Fenstern zu verwenden.

Wie stelle ich den Fenstertitel ein?

Der Fenstertitel kann mittels axterm extensionterminal Escape sequence

$ echo -ne "3]0;Your title here7"

geändert werden.Wenn Sie also beispielsweise in bash das aktuelle Arbeitsverzeichnis im Fenstertitel anzeigen möchten, können Sie dies mit dem folgenden Abschnitt in Ihren Startdateien tun.

# If this is an xterm set the title to [email protected]:dircase "$TERM" indvtm*|xterm*|rxvt*) PROMPT_COMMAND='echo -ne "3]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}7"' ;;*) ;;esac

Andere schalen bieten ähnliche funktionalität, zsh als beispiel hat eineprecmd funktion, die verwendet werden können, um die gleiche wirkung zu erzielen.

Mit den angezeigten Farben stimmt etwas nicht

Stellen Sie sicher, dass Sie $TERM richtig eingestellt haben Wenn Sie beispielsweise 256 Farbprofile verwenden möchten, müssen Sie wahrscheinlich -256color an Ihren regulären Terminalnamen anhängen. Auch aufgrund von Einschränkungen von ncurses bydefault können Sie nur 255 Farbpaare gleichzeitig verwenden. Wenn Sie mehr als 255 verschiedene Farbpaare gleichzeitig benötigen, müssen Sie ncurses mit

$ ./configure ... --enable-ext-colors

neu erstellen.Beachten Sie, dass dies den ABI ändert und daher den NAMEN der Bibliothek auf 6 setzt (dh Sie müssen gegen libncursesw.so.6 verlinken).

Einige Zeichen werden wie folgt angezeigt:

Stellen Sie sicher, dass Sie dvtm mit einer Unicode-fähigen Curses-Bibliothek kompiliert haben (im Fall von ncurses wäre dies libncursesw). Stellen Sie außerdem sicher, dass Ihre Gebietsschemaeinstellungen UTF-8 enthalten.

Der Ziffernblock funktioniert nicht mit Putty

Deaktivieren Sie den Anwendungstastenmodusin der Putty-Konfiguration unter Terminal => Features => Disable application keypad mode.

Unicode-Zeichen funktionieren nicht in Putty

Sie müssen Putty mitteilen, in welcher Zeichencodierungdie empfangenen Daten sind. Setzen Sie das Dropdown-Feld unter Window => Translationauf UTF-8. Um die richtigen Zeichen zum Zeichnen von Linien zu erhalten, möchten Sie wahrscheinlich auch die TERM-Umgebungsvariable auf putty oder putty-256color setzen.Wenn dies immer noch nicht der Fall ist, versuchen Sie, dvtm mit der folgenden ncurses-bezogenen Umgebungsvariablen NCURSES_NO_UTF8_ACS=1 .

Entwicklung

Sie können die aktuelle Codebasis jederzeit aus dem git-repositorylocated bei Github orSourcehut .

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.