dvtm – dwm für die Konsole

Zunächst einige Zeilen, um das nachfolgende zu verstehen.
dwm ist ein minimalistischer Windowmanager, der das Ziel hat, nie mehr als 2000 Codezeilen zu überschreiten.
dvtm bezeichnet sich selbst als Windowmanager für die Konsole, der sich als Vorbild dwm genommen hat. Dvtm existiert noch nicht lange. Von ihm Wind bekommen habe ich durch die dwm Mailingliste.

GNU Screen und dvtm existieren parallel. Doch dvtm hat ein anderes Ziel: dwm auf der Konsole. Screen dagegen ist ein Terminalmultiplexer.

Nun, zu dvtm selber. Dvtm kann sich wirklich der dwm der Konsole nennen, denn es gibt schlichtweg keine Konfigurationsdateien. Jegliche Modifikation oder Konfiguration geschieht in der config.h/im Code. Ausserdem besteht er aus “nur” 2369 Codezeilen. Zieht man nun aber die Library madtty hab, so sind es nur noch 1175. Dies befindet sich ungefähr im bereich des X11 dwm. Dafür gibt es kein oberes Zeilenlimit, d.h. er könnte auch mal aufgebläht werden, wie die GNU readline Library (Über 20000 Zeilen Sourcecode!).
Unterstützt werden vier “Arten” von Terminalmanaging: Vertikales Teilen, Teilen im unteren Bereich (Siehe Screenshot), Grid (Alle Fenster bekommen gleich viel Platz) und Fullscreen

So könnte dvtm aussehen, nach erfolgter Installation und Konfiguration: dvtm

Nun, dvtm aufzusetzen ist kein Mysterium. Zumindest ist es einfacher als Kopfstehend auf den Füssen zu laufen.
Zunächst holt man sich den Code von http://www.brain-dump.org/projects/dvtm und entpackt ihn. Man sollte nun ein Verzeichnis dvtm-VERSIONSNUMMER vorfinden. In diesem führt man “make unicode” aus. Als root noch fix “make install” ausgeführt, sind im Path zwei neue Kommandos: Dvtm (Dank der deutschen Rechtschreibung muss ich hier “Dvtm” schreiben, es lautet jedoch “dvtm”) und dvtm-status. Dvtm ist das eigentliche Kommando, dvtm-status ist ein Beispielscript für eine Statusbar.

Warnung: Dvtm ist im Alphastadium und hat einiges an Bugs! Für die meisten gibt es allerdings einen Workaround.

Nun. Startet man dvtm sieht man gleich, dass es eine Titelleiste für das Kommando hat. Toll. Für das hätte man sich dvtm auch sparen können. Der Standardprefix ist Ctrl-g. Mit “C-g c” (Ich benutze hier die Emacsnotation. C = Control, SPC = Space, Leertaste. Ein Leerzeichen steht für alles loslassen) öffnet man ein neues Terminal, welches direkt neben dem ersten, schon geöffneten erschent. Öffnen Sie ruhig noch zwei, um die Wirkung zu sehen.
Drücken Sie nun “C-g SPC”. Sie befinden sich nun im Grid-Modus. Ein weiteres mal diese Prozedur ausgeführt und Sie sind im Modus, in dem alle Fenster sich den unteren Platz teilen müssen. Wiederholen Sie dies noch einmal, sind Sie im Fullscreenmodus. Danach beginnt es wieder von Vorne.
Um ein anderes Terminal zu aktivieren, wird “C-g NUMMER” verwendet. Die Nummer erhalten Sie aus der Titelleiste. Zum beenden “C-g q” benutzen.
So viel zum Crashkurs. C-g als Prefix können Sie, wie viele andere Dinge, in der config.h-Datei verändern.

Und das Beste kommt zum (fast) Schluss: Solange Screen und dvtm nicht den selben Prefix haben, können mehrere dvtm-Instanzen in screen laufen. Beispielsweise hat Screen fünf Terminals geöffnet und in diesen wird dann jeweils dvtm mit vier Unterterminals gestartet. Das macht unter dem Strich 20 Terminals.

Bugs:

  • In vim funktionieren die Pfeiltasten nicht. Lösung: TERM=linux vim (Der Autor versucht dies zu lösen)
  • In emacs funktionieren die Home, End und Delete Tasten nicht. Lösung: TERM=linux emacs (Siehe vim)

Aber warum sollte man dvtm einsetzen, GNU Screen kann das doch weitaus Bugfreier! Nun, generell gilt, dass die meisten dwm-Benutzer die Meinung, die auf suckless.org repräsentiert wird, teilen. Das heisst: Wenig Codezeilen und nur das nötigste.
Somit ist das auch Meinungssache. Ausserdem ist dvtm geeignet für Leute mit Spieltrieb, die etwas neues ausprobieren wollen.
Ausserdem: Der Code von dvtm ist einfacher zu verstehen, als der von GNU Screen.

Dieser Artikel ist unter der WTFPL lizensiert.


Über diesen Beitrag


  1. Gregor Oelze 13.2.2008 / 11:56

    Hi,

    dieses tool scheint es wirklich in sich zu haben, nun da alle davon sprechen. Leider bekomme ich es nicht zum Laufen.

    Schade eigentlich, werde mich die Tage mal drum kümmern – gerade konfiguriere ich mich an meinem wmii wund.

    Gruß

    Gregor

    PS: Guter Artikel

  2. Teg 13.2.2008 / 11:58

    Der Artikel ist irgendwie sehr verwirrend geschrieben. Zum einen wäre da der Satz “Dass GNU Screen kann, das dvtm kann, ist nichts neues.”, welcher auch nach mehrmaligem lesen keinen Sinn ergeben will. Zweitens habe ich keine Ahnung was dvtm und dwm ist, dass könnte man vielleicht am Anfang kurz erwähnen.

  3. deifl 13.2.2008 / 13:10

    Verwirrend ist nicht der richtige Ausdruck… “sehr verwirrend” ist er zumindest fuer mich.
    Und ich hab dvtm seit der ersten Stunde immer wieder mal im Einsatz.
    Mein Fazit bis jetzt: dvtm in einem x-terminal ist unnoetig wie ein Kropf. dvtm in einem tty ist ne nette Spielerei, aber absolute keine Konkurrenz fuer screen.
    Aber vielleicht kommen ja noch ein paar Features die ich vermisse.

  4. CuleX 13.2.2008 / 13:40

    So. Etwas verbessert.
    @Gregor: Das dürfte EIGENTLICH nicht passieren. Vielleicht kann ich bei der dvtm-Geschichte etwas helfen…

  5. Teg 13.2.2008 / 17:10

    Danke für die Änderungen, jetzt verstehe sogar ich es. :)

  6. meillo 13.2.2008 / 19:55

    dvtm in einem tty ist ne nette Spielerei, aber absolute keine Konkurrenz fuer screen.

    nun, das ist Ansichtssache.
    Zugegeben ich verwende auch nur `screen’, aber wer `dvtm’ in Verbindung mit `dtach’ einsetzt, der kann doch einige der Features von `screen’ abdecken … und wer nicht mehr braucht, der wird durch ein vielleicht besseres Programm belohnt.

  7. deifl 14.2.2008 / 5:39

    meillo: mir fehlt bei dvtm die Moeglichkeit des “Copy&Paste” (ohne gpm und Maus)

  8. Gregor Oelze 14.2.2008 / 12:31

    stimmt .. copy & paste sind einige der killerfeatures von screen. Screen ist für mich übrigens eines der wahrscheinlich besten Programme die für Linux jemals geschrieben wurden. Es bietet so viele Möglichkeiten und so viel Freiheit im Bezug auf attachen und detachen mit ssh darauf zugreifen, Die gleiche Session mehrmals auf einem Fenster öffnen, etc.

    Ich denke was culex ausdrücken wollte, war, dass dvtm zeigen will was man noch so alles auf der nativen konsole anstellen kann ohne einen xserver aktiviert zu haben – ich denke auch das screen nicht vom ersten built an perfekt war. Es hat sich entwickelt -> und die Anfänge von dvtm sind wirklich nicht schlecht. Wir dürfen also auf weitere Versionen gespannt sein.

  9. r3inforce 5.3.2008 / 1:15

    Was hat dvtm mit Screen zu tun? Warum sollte es Screen ersetzen wollen/können? Is doch nen ganz anderes Programm.

    Ich habe lange nach einem Consolen Window Manager gesucht, .. wollt schon selbst ein Projekt starten. Ich benutze es unter FreeBSD auf den standard TTYs, welche eine Auflösung 1280×800 haben, da passen super 4 Terminals rein.

  10. meillo 8.3.2008 / 15:51

    Is doch nen ganz anderes Programm.

    So würde ich das nicht sehen. Die beiden Programme decken doch ziemlich den gleichen Bereich ab (v.a. wenn man dvtm in Verbindung mit `dtach’ verwendet).

    Beide ermöglichen es, mehrere Terminals in einem unterzubringen (btw: screen kann auch splitten, falls du es nicht wusstest).

    … dass sich nun dvtm “WM für die Konsole” nennt, und nicht “Terminalmultiplexer” … liegt IMO nur an seiner Beziehung zu dwm.

Hinterlasse einen Kommentar

XHTML: Folgende Tags sind erlaubt: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>




Safari hates me