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. 😉

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.