Gnome 3 und dwm spielen zusammen

Fenstermanager erwähne ich meistens nur im Zusammenhang mit einem mini maximalistischen Betriebssystem, das auf Effizienz und Geschwindigkeit getrimmt ist. Natürlich kann man auch den Favoriten parallel zu einer großen Desktopumgebung wie Gnome 3 installieren, obwohl viele Puristen darin einen Widerspruch in sich sehen. Möglicherweise hilft es aber auch Leuten, die am gleichen Rechner arbeiten und bei denen jeder eine andere Vorstellung von der „besten“ Arbeitsumgebung hat.

Ich habe meine angepasste Konfiguration von dwm dieses Mal für amd64 übersetzt. Das vorgefertigte Debianpaket in Version 6.0 funktioniert natürlich auch. Dabei wurde ich daran erinnert, dass es bei Debian Testing durchaus Sinn macht einen anderen Namen oder zumindest Versionsnummer für dwm zu wählen, da der Paketmanager mein älteres 5.9 gleich aktualisieren wollte. Ein aptitude hold dwm half hier weiter.

Anschließend ließ sich dwm sofort in GDM3 aus dem Menü auswählen und fast schon blitzartig gelangte man zu einem alternativen Desktopkonzept. Kachelnde Fenstermanager sind gar nicht mehr so ungewöhnlich, bzw. sie scheinen deutlich an Bekanntheitsgrad zu gewinnen. Ich war richtig überrascht als ich meinem Vater vor einem Monat aus Spaß dwm auf dem Thinkpad 600 zeigte und er nur lapidar meinte, Windows 8 würde das auch bald haben. 😯

Benutzerdefinierte Sitzung mit Gnome 3

Nicht nur die Bedienung von Gnome 3 hat sich geändert, auch einige bekannte Funktionen befinden sich nun an anderer Stelle. Normalerweise konnte man früher beim Login auch eine sogenannte „Custom Session“ auswählen, die dann die Einstellungen in der Datei .xsession berücksichtigte im Gegensatz zu der startx-Lösung, wo sich alles in der .xinitrc abspielt.

Bei Gnome 3 fehlt dieser Eintrag auf jeden Fall. Möchte man zusätzliche Programme oder Einstellungen beim Start von dwm ausführen, kann man eine .desktop Datei in /usr/share/xsession erstellen, wodurch ein Menüeintrag in GDM3 erzeugt wird, der wiederum Xsession ohne Argumente ausführt und somit die Einstellungen in .xsession berücksichtigt. Die Idee dazu stammt aus einem mehr als zwei Jahre alten Ubuntu-Fehlerbericht.

In meinem Fall gab es schon eine dwm.desktop Datei. Ich musste lediglich die Zeile Exec und Type anpassen. Danach wurden meine Einstellungen, ein schwarzer Hintergrund und eine Datumsanzeige, berücksichtigt.

dwm.desktop

[Desktop Entry]
Encoding=UTF-8
Name=Dwm
Comment=Dynamic window manager
Exec=/etc/X11/Xsession
Icon=dwm
Type=Application

.xsession

while xsetroot -solid black -name "`date` `uptime | sed 's/.*,//'`"
do
sleep 20
done &

exec dwm

GTK-Themen manuell zuweisen

Hat man dieses spezifische Gnome-Problem gelöst, kann man sich der Optik des Desktops zuwenden. Sowohl GTK-Themen als auch die Icons sahen etwas fade aus und entsprachen den Standardeinstellungen. Ich löste das Problem mit der manuellen Methode, indem ich im Heimverzeichnis für GTK2 die .gtkrc-2.0 benutzte. Im Gegensatz dazu lassen sich alle GTK3-Themen allgemein für den lokalen Benutzer immer in ${XDG_CONFIG_HOME}/gtk-3.0/settings.ini ändern, bei mir war das ~/.config/gtk-3.0/settings.ini. Die global installierten Themen befinden sich alle in /usr/share/themes. Man kann sich direkt an der dortigen gtkrc und settings.ini orientieren. Zusätzlich fügte ich noch das ein.

.gtkrc-2.0

include „/usr/share/themes/Adwaita/gtk-2.0/gtkrc“
gtk-icon-theme-name=“Faenza“

settings.ini

gtk-theme-name = Adwaita
gtk-fallback-icon-theme = Faenza

Fazit

Nachdem ich diese Dinge erledigt hatte, entsprach das Äußere den Einstellungen unter Gnome 3. Das Bedienungskonzept ist natürlich ein vollkommen anderes und auch die bessere Geschwindigkeit macht sich bei dwm bemerkbar. Einfach mal selbst ausprobieren. 😉

dwm, urxvt, qingy, xmodmap, surf und ein Thinkpad

In diesem Beitrag geht es noch ein wenig um ein paar wissenswerte Funktionen und Hilfsprogramme zum Dynamic Window Manager und um ein paar Merkwürdigkeiten und Einstellungen rund um den Thinkpad 600.

Qingy

Da ich dieses Jahr vor neuen Anwendungen und ein paar Veränderungen keinen Halt gemacht habe, durften natürlich Loginmanager für die Konsole auch nicht fehlen. Qingy ist darunter eine interessante Alternative und ein Mittelding zwischen der minimalen Startx-Lösung und einem voll ausgestatteten Loginmanager wie Gnomes GDM3, wenn man sich in eine grafische X-Umgebung einloggen möchte.

DWM und Qingy scheinen aber nicht richtig zueinander zu finden. Zumindest konnte ich Qingy nicht dazu bewegen eine Login-Shell zu starten, die meine gesamten Umgebungsvariablen wie z.B. die Spracheinstellungen berücksichtigt. Das führte leider dazu, dass Umlaute nicht dargestellt werden konnten.

Mit diesem scheinbar esoterischen Problem war ich aber nicht allein und das Arch-Linux-Wiki hatte dazu mal wieder einen passenden Tipp, z.B. Qingy über eine sogenannte Custom Session zu starten. Ein grafischer Loginmanager wie Qingy berücksichtigt dabei die Datei .xsession. Der Befehl exec zsh -l -c "dwm" brachte mich aber leider nicht ans Ziel.

Lange Rede kurzer Sinn, ich bin wieder ohne Loginmanager unterwegs und habe mir eine Anwendung gespart. Im Gegensatz zu den grafischen Pendants berücksichtigt die Startx/Xinit-Lösung die im Home-Verzeichnis versteckte .xinitrc, was später noch nützlich sein sollte.

rxvt-unicode-256color

Ich greife schon etwas vor, denn ich habe auch einen Backport von rxvt-unicode-256color erstellt. Die 256-Farben-Version von urxvt befindet sich leider nicht in Squeeze. Da ich aber, abgesehen vom Toshiba 220cs, überall schon rxvt-unicode mit der Solarized-Farbpalette benutze, durfte es auf dem Thinkpad auch nicht fehlen und war dank der schon bestehenden Config-Dateien auch schnell eingerichtet.

Mir ist aber aufgefallen, dass die Xft-Schriftarten das Scrollen sehr verlangsamen, was entweder an der Grafikkarte, den Treibern oder auch einer Terminaleinstellung liegen könnte. Da es aber sowohl in Xterm als auch in Urxvt auftrat, bin ich mir bei letzterem nicht so sicher. In einem Forum meine ich gelesen zu haben, dass

urxvt*buffered: false

in der .Xdefaults helfen solle. Mir half hingegen der Wechsel zu einer Bitmap Schrift. Einfach folgendes zur .Xdefaults hinzufügen:

urxvt*font: -xos4-terminus-medium-*-*-*-12-*-*-*-*-*-*-*
urxvt*boldFont: -xos4-terminus-bold-*-*-*-12-*-*-*-*-*-*-*

xmodmap

Mit Hilfe von xmodmap lässt sich die Tastaturbelegung ändern, indem die kerneleigenen Keycodes in sogenannte Keysyms des X-Servers konvertiert werden. Einen guten Überblick über die Thematik findet sich unter dem Stichwort Xmodmap im deutschen ArchLinux-Wiki.

Nachdem ich beim Neukompilieren die MOD-Taste von Mod1 (ALT) auf Mod4(Super) geändert hatte, musste ich noch das Problem lösen wie ich nun bei einem Laptop ohne Super-Taste die Tastenkombinationen ausführen konnte. Als Alternative bot sich z.B. die AltGr-Taste an.

xmodmap -e "keycode 108 = Super_L"

Das funktionierte auch prima, bis ich wieder einmal | als Zeichen benötigte. 🙄

Kein Problem nehmen wir die rechte Strg Taste.

xmodmap -e "keycode 105 = Super_L"

Leider Fehlanzeige, ganz so trivial ist xmodmap dann doch nicht. Vorher war z.B. noch das notwendig:

xmodmap -e "remove control = Control_R"
xmodmap -e "keycode 105 = Super_L"
xmodmap -e "remove mod4 = Super_L"
xmodmap -e "add mod4 = Super_L"

Wer nun schon voll Feuer und Flamme ist und die Enter-Taste auf die Löschen-Taste, Backspace zu Space und Shift zu ESC auf dem Rechner des Arbeitskollegen ummappen möchte, sollte sich auf jeden Fall noch die Befehle xev, xmodmap -pm und xmodmap -pke merken, denn die werdet ihr sicher für das Unterfangen brauchen.

Mit

xmodmap -pke > .Xmodmap

lässt sich die gesamte Keytabelle in die Datei .Xmodmap schreiben, womit die Einstellungen, in der Theorie, mit Hilfe der .xinitrc wiederhergestellt werden können. Das Verhalten ist leicht wahnsinnig, also nichts für schwache Nerven. 🙂

DWM und Xsetroot

So sieht meine .xinitrc im Moment aus.

#!/bin/sh

if [ -f $HOME/.Xmodmap ]; then
	/usr/bin/xmodmap $HOME/.Xmodmap
fi

#xmodmap -e "keycode 108 = Super_L"

urxvtd -q -o -f&

while xsetroot -name "`date` `uptime | sed 's/.*,//'`"
do
	sleep 20
done &

exec dwm

Der erste Abschnitt liest die Einstellungen aus der .Xmodmap bei jedem Login ein, Zeile 9 startet Urxvt im ressourcensparenden Daemon-Modus und von 11-14 benutze ich eine Funktion, um das Hintergrundfenster von X mit einer Statusanzeige zu versehen. Standardmäßig stellt DWM hier die eigene Versionsnummer dar.

Die Anzeige lässt sich mit dem Befehl Xsetroot verändern. Weitere interessante Beispiele gibt es unter dem Stichwort DWM im … ArchLinux-Wiki. Ebenfalls bemerkenswert ist die Erweiterung dwmstatus, ein Grundgerüst, mit dem es möglich ist fortgeschrittene Statusanzeigen einzubauen.

Surf und Tabbed

Last but not least, im Zusammenspiel mit surf und tabbed ist DWM erst richtig vollständig. Wo surf unter einem „normalen“ Fenstermanager vielleicht suspekt erscheint, spielt er hier seine wahre Stärke aus. Startet zuerst tabbed mit dmenu. Shift+Strg+Enter öffnet Surf direkt in den „Tabs“, mit Strg+G geht es zur Adresszeile. URL eintippen und mit Shift+Strg h/l zum nächsten Tab wechseln.

Wie zuvor schon erwähnt, hat der Surf-Backport Probleme bei der Darstellung einiger Https-Seiten, weswegen Midori eine sinnvolle Alternative auf dem älteren Laptop bleibt.

Ich denke zum Thema DWM ist vorerst alles gesagt. Immer dann, wenn ich eine grafische Anwendung brauchen sollte, bietet er ab sofort einen Rückzugspunkt vom Konsolensetup mit Screen. 😉

Einen maßgeschneiderten dwm-Fenstermanager von sid nach squeeze backporten

Obwohl ich denke, dass der Fenstermanager dwm in der Standardkonfiguration schnell zu erlernen und außerdem schlicht und ressourcensparend ist, wollte ich dennoch 2-3 Dinge verändern. Da Veränderungen bei dwm nur durch eine Neukompilierung möglich sind, habe ich die Gelegenheit genutzt und mich wieder etwas mehr mit der Erstellung eigener Debianpakete beschäftigt.

Ich hatte in dem Beitrag „Wie man Debian Pakete aus den Quellen baut“ mehrere Methoden vorgestellt, wie man eigene Software speziell für Debian kompilieren kann. Die Pbuilder-Methode gefiel mir davon am besten. Erfolgreich wurde damit ein Mplayer nur für den Framebuffer und auch schon ein paar kleinere Backports erstellt.

Bevor ich meinen Weg zum Kompilieren und Anpassen von dwm vorstelle, wollte ich noch auf eine Alternative hinweisen. Im englischen Forum auf forums.debian.net gibt es schon eine sehr ausführliche Anleitung zum Kompilieren und Konfigurieren von dwm, die den Standardweg mit make und den Debian-Weg mit dpkg-buildpackage zeigt. Wie auch immer, ich denke Pbuilder ist noch einfacher.

Der elegante Weg mit pbuilder

Vorbereitung

aptitude install pbuilder
pbuilder create --distribution squeeze

oder wenn man z.B. i386-Pakete mit seinem AMD64-System bauen möchte

pbuilder create --distribution squeeze --debootstrapopts --arch --debootstrapopts i386

Quellen freischalten

deb-src http://ftp.de.debian.org/debian/ sid main in /etc/apt/sources.list hinzufügen.

Als normaler Benutzer das Quellpaket herunterladen und in das Quellverzeichnis wechseln.

apt-get source dwm
cd dwm-5.9/

Zwei Möglichkeiten

Möglichkeit 1

cp config.def.h config.h
vim config.h

Möglichkeit 2

cp config.def.h debian/local/config.apo.h
vim config.apo.h

Das Debian-Quellpaket bietet zum einen die Möglichkeit die Konfigurationsdatei wie gewohnt im Hauptverzeichnis editieren zu können oder aber im Debian-Verzeichnis. Der Paketverwalter von dwm hat hierzu einige Regeln angepasst, so dass beim Kompilieren auch alle Dateien im Verzeichnis debian/local in der Form config.*.h berücksichtigt werden.

Das hat später den enormen Vorteil, dass man gleichzeitig verschiedene Versionen von dwm übersetzen und später mit Debians update-alternatives Mechanismus auswählen kann.

Konfiguration

Ich habe die zweite Möglichkeit gewählt und die config Datei in debian/local namens config.apo.h modifiziert und folgende Dinge geändert.

  1. Farbe von hellblau auf dunkelgrau ändern
    static const char selbordercolor[] = "#333333";
    static const char selbgcolor[] = "#333333"; 
  2. Anzahl der Tags von 9 auf 6 verringern
    static const char *tags[] = { "1", "2", "3", "4", "5", "6", };
    
  3. Anstelle der ALT-Taste die Super/Windows-Taste benutzen
    #define MODKEY Mod4Mask
  4. rxvt-unicode anstatt xterm benutzen
    static const char *termcmd[] = { "urxvtc", NULL };

Das war es auch schon. Mir war insbesondere der Wechsel von xterm zu rxvt-unicode und von ALT zu Mod4 wichtig, da es einige Programme gibt, bei denen die voreingestellte ALT-Taste zu Problemen führen kann.

Kompilieren

Das Quellpaket aktualisieren

dpkg-source -b dwm-5.9/

Als Benutzer root ausführen

pbuilder build dwm_5.9-1.dsc

Das fertige I386-Squeeze-Paket fällt in /var/cache/pbuilder/result heraus und muss danach nur noch auf dem Zielrechner mit dpkg -i dwm_5.9-1_i386.deb installiert werden.

Mit dem Befehl update-alternatives --config dwm lässt sich danach zwischen der Standardversion, der dwm.web und der dwm.apo Version umschalten.

Fazit

Ich denke die Pbuilder-Methode sollte man sich aus mehreren Gründen beim Bauen von Debianpaketen merken. Zum einen lässt sich damit in einer „Reinraum-Umgebung“ ein Paket sauber kompilieren. Man kann auf einer AMD64-Maschine mit Debian Unstable I386-Pakete für Debian Stable bauen und darüber hinaus sogar mehrere Pbuilder-Umgebungen parallel installieren, in denen Pakete für Testing, Unstable oder auch Ubuntu gebaut werden können!

Beachten sollte man aber, dass dieser Backport noch nicht den offiziellen Ansprüchen genügt. Insbesondere wurde das Paket nicht richtig umbenannt, das Changelog nicht geändert oder persönlich mit GnuPG signiert. Aber für den privaten Hausgebrauch sollte es reichen. 😉

Als optionale Ziele hatte ich mir noch vorgenommen surf, den minimalistischen Webkit-Browser aus der Suckless-Familie, und rxvt-unicode-256color „backzuporten“, da es für beide keine Version in Squeeze gibt.

Kurz gesagt: Surf lässt sich genauso einfach von Sid nach Squeeze backporten, er funktioniert auch, es gibt aber einen schweren Bug beim Aufruf von Https-Seiten, der so mit Debian Unstable nicht auftritt. Backports sind also unter Umständen gar nicht so schwierig, man sollte aber immer auch im Hinterkopf behalten, das Probleme nicht nur beim Übersetzen auftreten können. Mehr Details zu rxvt-unicode-256color und dwm demnächst auf diesem Kanal.

Ein individuelles dmenu erstellen

Das gute dmenu wurde zwar primär für die Verwendung mit dem Fenstermanager dwm entwickelt, es lässt sich aber auch mit anderen kombinieren. Zum ersten Mal habe ich das dieses Jahr bei Crunchbang beobachtet, das auf Debian Squeeze und den Openbox-Fenstermanager setzt.

Doch zuerst einmal, so sieht dmenu für gewöhnlich aus.


Indem man die Anfangsbuchstaben des gesuchten Programms eintippt und das Ganze mit Tab vervollständigt, bewegt man sich in rasender Geschwindigkeit durch alle installierten Anwendungen, die im eigenen $PATH installiert sind. Programme werden danach durch Enter gestartet, fertig. Kein Warten, sehr effizient, Gnome-Do oder gar Unity und die Gnome-Shell werden dadurch zum Ausführen von Programmen überflüssig.

Normalerweise benötige ich bei Openbox und vergleichbaren Fenstermanagern nur das Rechtsklickmenü und ein paar Tastenkürzel. Mit dem Skript dmenu-bind.sh von Gatti Paolo lässt sich aus dmenu aber ganz leicht eine übersichtliche Menüstruktur erstellen.

Der Aufbau ist einfach und leicht nachzuvollziehen. Unter die Menüpunkte wie z.B. web werden der Name des Menüpunkts und der auszuführende Befehl geschrieben.

chromium "chromium"

oder

vim "urxvtcd -e vim"

In dem Menü kann man danach wie gehabt mit den Pfeiltasten und der Enter-Taste navigieren. Das Skript lässt sich z.B. in ~/.config/dmenu/dmenu-bind.sh abspeichern und in ~/.config/openbox/rc.xml oder mit Hilfe von obmenu an eine Taste binden.

<keybind key="A-F3">
  <action name="Execute">
    <startupnotify>
      <enabled>true</enabled>
        <name>dmenu-bind</name>
    </startupnotify>
        <command>~/.config/dmenu/dmenu-bind.sh</command>
  </action>
</keybind>

Das angepasste dmenu kann nun mit Alt+F3 aufgerufen werden.

Das gesamte dmenu-bind.sh Skript sieht so aus.

#!/bin/bash

#       Custom dmenu-bind.sh
#
#       Copyright 2009, Gatti Paolo (lordkrandel at gmail dot com)
#       Distributed as public domain.

#       09.28.2009 -- First release
#       09.29.2009 -- Submenu support added

if [ "$1" == "" ]; then
    title="MainMenu"
    menu=( 
#               labels            commands
#           Main =========================================
                web               "$0 web"
                system            "$0 system"
                tools             "$0 tools"
                settings          "$0 settings"
    )
else
    case $1 in
    web)
        title="web"
        menu=( 
#           Web ==========================================
                firefox           "firefox" 
                lostirc           "lostirc" 
         )
    ;;
    tools)
        title="tools"
        menu=( 
#           Tools ========================================
                gedit             "gedit" 
                geditsudo         "gksudo gedit" 
         )
    ;;
    system)
        title="system"
        menu=( 
#           System =======================================
                home              "pcmanfm" 
                tilda             "tilda" 
                synaptic          "gksudo synaptic" 
         )
    ;;
    settings)
        title="settings"
        menu=( 
#           Settings =====================================
                volume            "$0 volume" 
                dmenu             "gedit $0" 
                obconf            "obconf" 
         )
    ;;
    volume)
        title="Volume"
        menu=( 
#           Volume controls ==============================
                0%                "amixer sset Master 0" 
                50%               "amixer sset Master 50" 
                70%               "amixer sset Master 70" 
                100%              "amixer sset Master 100" 
         )
    ;;

    esac
fi

for (( count = 0 ; count < ${#menu[*]}; count++ )); do

#   build two arrays, one for labels, the other for commands
    temp=${menu[$count]}
    if (( $count < ${#menu[*]}-2 )); then
        temp+="n"
    fi
    if (( "$count" % 2 == "0" )); then
        menu_labels+=$temp
    else
        menu_commands+=$temp
    fi

done

select=`echo -e $menu_labels | dmenu -p $title -nb black -nf white -sb darkblue -sf white`

if [ "$select" != "" ]; then

#   fetch and clean the index of the selected label
    index=`echo -e "${menu_labels[*]}" | grep -xnm1 $select | sed 's/:.*//'`

#   get the command which has the same index
    part=`echo -e ${menu_commands[*]} | head -$index`
    exe=`echo -e "$part" | tail -1`

#   execute
    $exe &
fi

Elitäre Fenstermanager sind vielleicht doch einfacher zu bedienen als gedacht

Das Problem bei kachelnden Fenstermanagern ist, dass sie zum einen mit ihren Namen schon einen sonderbaren Eindruck hervorrufen und sie sich zum anderen selbst als ein Werkzeug für Poweruser oder die technische Elite empfehlen. Was auch immer das genau bedeuten mag.

Ich hatte letztes Jahr Awesome und später auch ratpoison auf dem Portégé 3110CT ausprobiert und an beiden Gefallen gefunden, da sie nach kurzer Eingewöhnungsphase äußerst sparsam mit den begrenzten Ressourcen umgingen und mit Hilfe der voreingestellten Tastenkürzel sich der kleine Laptop auch effizienter bedienen ließ.

Für den Thinkpad 600 habe ich zusätzlich zu all den Konsolenanwendungen neben dem Xorg-Server und Qingy zum Login nun auch DWM, den Dynamic Window Manager, installiert. DWM treibt es zwar mit dem elitären Dünkel, nicht aber mit dem Ressourcenverbrauch auf die Spitze. Im Gegenteil zeigt mir htop an, dass DWM sich gerade einmal mit 0.6% von 128 MB RAM begnügt.

DWM ist deshalb so besonders, da der Fenstermanager in einer einzigen Binärdatei ausgeliefert wird und sich aus nur 2000 Zeilen Code zusammensetzt. Die Konfiguration erfolgt über das Editieren einer Headerdatei der Programmiersprache C, wodurch DWM den Ruf weg hat nur etwas für Profis zu sein. Die Entwickler bringen das so auf den Punkt:

Because dwm is customized through editing its source code, it’s pointless to make binary packages of it. This keeps its userbase small and elitist. No novices asking stupid questions. There are some distributions that provide binary packages though.

Eine dieser Distributionen, die Binärpakete von dwm bereitstellt, heißt natürlich Debian. Für einen Test, ob einem DWM gefällt oder nicht, genügt wie immer:

aptitude install dwm

Bei meiner Konfiguration konnte ich danach im Loginmanager Qingy DWM als neue Session auswählen und landete nur wenige Sekunden später genau dort.

Das Bedienungsprinzip von DWM ist ziemlich einfach und es gibt sogar ein kurzes offizielles Tutorial dazu.

Am oberen Bildschirmrand befindet sich das Panel mit den sogenannten Tags, die sich zwar aus Benutzersicht ähnlich zu Arbeitsflächen verhalten, aber dennoch nicht das Selbe sind. Jede neue Anwendung erscheint zuerst im Master-Fenster und existierende werden nach rechts auf den sogenannten Stack verschoben. Wie der Screenshot zeigt habe ich vier Terminals geöffnet (Shift+ALT+Enter), wovon drei Terminals rechts im Stack angeordnet sind und das Hauptfenster die restliche Hälfte einnimmt.

Mit Hilfe von Alt+j/Alt+k lässt sich der Reihe nach der Fokus auf ein anderes Fenster wechseln. Mit Alt+h/Alt+l lassen sich die Fenster des Stacks horizontal verbreitern oder verkleinern. Zwischen einem ausgewählten Stackfenster und dem Hauptfenster lässt sich mit Alt+Enter wechseln.

DWM bietet standardmäßig drei verschiedene Modi. Alle Fenster werden automatisch im Tiling Modus (Alt+t), also kachelnd, angeordnet. Möchte man ein Fenster im Vollbild betrachten, muss man mit Alt+m in den Monokelmodus wechseln.

Um die Fenster frei zu bewegen und mit der Maus in der Größe anpassen zu können, gibt es den Schwebemodus alias Floating. (Alt+f) Wenn man die Alt-Taste gedrückt hält, kann man mit einem Druck auf die linke Maustaste das Fenster verschieben und mit der rechten Maustaste es vergrößern oder verkleinern.

Warum die Tags sehr nützlich sein können, erkennt man schnell am obigen Bildschirmfoto. So lässt sich zum Beispiel der ausgewählte Browser mit Shift+Alt+3 auf Tag Nr. 3 verschieben und mit Alt+1 und Alt+3 zwischen Tag 1 und 3 wechseln. Doch wenn man sich auf Tag 1 befindet und Tag 3 mit einem Rechtsklick sozusagen „zuschaltet“, erscheinen alle Fenster dieses Tags auch auf dem aktuellen. Da sich DWMs Modi „on-the-fly“ anpassen lassen, kann das Browserfenster dann schwebend über allen anderen positioniert werden.

Noch nützlich zu wissen ist das Kommando Shift+Alt+c, mit dem Fenster und darin laufende Anwendungen beendet werden und Shift+Alt+q, womit man sich von DWM abmeldet und wieder zurück zum Loginmanager gelangt.

Wer nicht alle Applikationen aus einem Terminal ausführen will, sollte sich noch die suckless-tools installieren, in denen sich unter anderem dmenu und slock zum Bildschirm sperren befinden. Dmenu lässt sich dann mit Alt+p aufrufen. Dmenu funktioniert in etwa wie die Gnome-Shell…nur viel, viel effizienter und schneller. 🙂

Ein paar kleine Details möchte ich bei DWM später noch ändern, aber zum schnellen Ausprobieren oder als Lösung für eine leichtgewichtige Desktopumgebung ist das Binärpaket bei Debian schon gut geeignet.