{"id":5205,"date":"2011-12-14T06:00:30","date_gmt":"2011-12-14T05:00:30","guid":{"rendered":"https:\/\/www.gambaru.de\/blog\/?p=5205"},"modified":"2019-10-15T00:51:53","modified_gmt":"2019-10-14T22:51:53","slug":"dwm-qingy-xmodmap-surf-und-ein-thinkpad","status":"publish","type":"post","link":"https:\/\/gambaru.de\/blog\/2011\/12\/14\/dwm-qingy-xmodmap-surf-und-ein-thinkpad\/","title":{"rendered":"dwm, urxvt, qingy, xmodmap, surf und ein Thinkpad"},"content":{"rendered":"<p>In diesem Beitrag geht es noch ein wenig um ein paar wissenswerte Funktionen und Hilfsprogramme zum <a href=\"https:\/\/www.gambaru.de\/blog\/2011\/12\/10\/elitare-fenstermanager-sind-vielleicht-doch-einfacher-zu-bedienen-als-gedacht\/\">Dynamic Window Manager<\/a> und um ein paar Merkw\u00fcrdigkeiten und Einstellungen rund um den Thinkpad 600.<\/p>\n<h3>Qingy<\/h3>\n<p>Da ich dieses Jahr vor neuen Anwendungen und ein paar Ver\u00e4nderungen keinen Halt gemacht habe, durften nat\u00fcrlich <a href=\"https:\/\/www.gambaru.de\/blog\/2011\/09\/25\/loginmanager-fur-die-virtuelle-konsole\/\">Loginmanager f\u00fcr die Konsole<\/a> auch nicht fehlen. <a href=\"http:\/\/qingy.sourceforge.net\/\">Qingy<\/a> ist darunter eine interessante Alternative und ein Mittelding zwischen der minimalen Startx-L\u00f6sung und einem voll ausgestatteten Loginmanager wie Gnomes GDM3, wenn man sich in eine grafische X-Umgebung einloggen m\u00f6chte.<br \/>\n<a href=\"http:\/\/dwm.suckless.org\/\">DWM<\/a> 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\u00fccksichtigt. Das f\u00fchrte leider dazu, dass Umlaute nicht dargestellt werden konnten.<br \/>\nMit diesem scheinbar esoterischen Problem war ich aber nicht allein und das <a href=\"https:\/\/wiki.archlinux.org\/index.php\/Qingy\">Arch-Linux-Wiki <\/a>hatte dazu mal wieder einen passenden Tipp, z.B. Qingy \u00fcber eine sogenannte Custom Session zu starten. Ein grafischer Loginmanager wie Qingy ber\u00fccksichtigt dabei die Datei <strong>.xsession<\/strong>. Der Befehl <code>exec zsh -l -c \"dwm\"<\/code> brachte mich aber leider nicht ans Ziel.<br \/>\nLange Rede kurzer Sinn, ich bin wieder <a href=\"https:\/\/www.gambaru.de\/blog\/2010\/08\/04\/x-und-fluxbox-starten-ohne-login-manager\/\">ohne Loginmanager unterwegs<\/a> und habe mir eine Anwendung gespart. Im Gegensatz zu den grafischen Pendants ber\u00fccksichtigt die Startx\/Xinit-L\u00f6sung die im Home-Verzeichnis versteckte <strong>.xinitrc<\/strong>, was sp\u00e4ter noch n\u00fctzlich sein sollte.<\/p>\n<h3>rxvt-unicode-256color<\/h3>\n<p>Ich greife schon etwas vor, denn ich habe auch einen Backport von <a href=\"http:\/\/packages.debian.org\/rxvt-unicode-256color\">rxvt-unicode-256color<\/a> erstellt. Die 256-Farben-Version von urxvt befindet sich leider nicht in Squeeze. Da ich aber, abgesehen vom Toshiba 220cs, \u00fcberall schon rxvt-unicode mit der <a href=\"https:\/\/www.gambaru.de\/blog\/2011\/08\/12\/solarized-dircolors-mit-256-farben-fur-rxvt-unicode\/\">Solarized<\/a>-Farbpalette benutze, durfte es auf dem Thinkpad auch nicht fehlen und war dank der schon bestehenden Config-Dateien auch schnell eingerichtet.<br \/>\nMir ist aber aufgefallen, dass die Xft-Schriftarten das Scrollen sehr verlangsamen, was entweder an der Grafikkarte, den Treibern oder auch einer Terminaleinstellung liegen k\u00f6nnte. 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<br \/>\n<code>urxvt*buffered: false<\/code><br \/>\nin der <em>.Xdefaults<\/em> helfen solle. Mir half hingegen der Wechsel zu einer Bitmap Schrift. Einfach folgendes zur <em>.Xdefaults<\/em> hinzuf\u00fcgen:<\/p>\n<blockquote><p>urxvt*font: -xos4-terminus-medium-*-*-*-12-*-*-*-*-*-*-*<br \/>\nurxvt*boldFont: -xos4-terminus-bold-*-*-*-12-*-*-*-*-*-*-*<\/p><\/blockquote>\n<h3>xmodmap<\/h3>\n<p>Mit Hilfe von xmodmap l\u00e4sst sich die Tastaturbelegung \u00e4ndern, indem die kerneleigenen Keycodes in sogenannte Keysyms des X-Servers konvertiert werden. Einen guten \u00dcberblick \u00fcber die Thematik findet sich unter dem Stichwort <a href=\"https:\/\/wiki.archlinux.de\/title\/Xmodmap\">Xmodmap<\/a> im deutschen ArchLinux-Wiki.<br \/>\nNachdem ich beim Neukompilieren die MOD-Taste von Mod1 (ALT) auf Mod4(Super) ge\u00e4ndert hatte, musste ich noch das Problem l\u00f6sen wie ich nun bei einem Laptop ohne Super-Taste die Tastenkombinationen ausf\u00fchren konnte. Als Alternative bot sich z.B. die AltGr-Taste an.<\/p>\n<p><code>xmodmap -e \"keycode 108 = Super_L\"<\/code><\/p>\n<p><code><\/code>Das funktionierte auch prima, bis ich wieder einmal | als Zeichen ben\u00f6tigte. \ud83d\ude44<br \/>\nKein Problem nehmen wir die rechte Strg Taste.<\/p>\n<p><code>xmodmap -e \"keycode 105 = Super_L\"<\/code><\/p>\n<p>Leider Fehlanzeige, ganz so trivial ist xmodmap dann doch nicht. Vorher war z.B. noch das notwendig:<\/p>\n<p><code>xmodmap -e \"remove control = Control_R\"<\/code><br \/>\n<code>xmodmap -e \"keycode 105 = Super_L\"<\/code><br \/>\n<code>xmodmap -e \"remove mod4 = Super_L\"<\/code><br \/>\n<code>xmodmap -e \"add mod4 = Super_L\"<\/code><\/p>\n<p>Wer nun schon voll Feuer und Flamme ist und die Enter-Taste auf die L\u00f6schen-Taste, Backspace zu Space und Shift zu ESC auf dem Rechner des Arbeitskollegen ummappen m\u00f6chte, sollte sich auf jeden Fall noch die Befehle <code>xev<\/code>, <code>xmodmap -pm<\/code> und <code>xmodmap -pke<\/code> merken, denn die werdet ihr sicher f\u00fcr das Unterfangen brauchen.<br \/>\nMit<\/p>\n<p><code>xmodmap -pke &gt; .Xmodmap<\/code><\/p>\n<p><code><\/code>l\u00e4sst sich die gesamte Keytabelle in die Datei <em>.Xmodmap<\/em> schreiben, womit die Einstellungen, <strong>in der Theorie<\/strong>, mit Hilfe der .xinitrc wiederhergestellt werden k\u00f6nnen. Das Verhalten ist leicht wahnsinnig, also nichts f\u00fcr schwache Nerven. \ud83d\ude42<\/p>\n<h3>DWM und Xsetroot<\/h3>\n<p>So sieht meine <em>.xinitrc<\/em> im Moment aus.<\/p>\n<pre class=\"brush:shell\">#!\/bin\/sh\nif [ -f $HOME\/.Xmodmap ]; then\n\t\/usr\/bin\/xmodmap $HOME\/.Xmodmap\nfi\n#xmodmap -e \"keycode 108 = Super_L\"\nurxvtd -q -o -f&amp;\nwhile xsetroot -name \"`date` `uptime | sed 's\/.*,\/\/'`\"\ndo\n\tsleep 20\ndone &amp;\nexec dwm<\/pre>\n<p>Der erste Abschnitt liest die Einstellungen aus der <em>.Xmodmap<\/em> 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\u00e4\u00dfig stellt DWM hier die eigene Versionsnummer dar.<br \/>\nDie Anzeige l\u00e4sst sich mit dem Befehl Xsetroot ver\u00e4ndern. Weitere interessante Beispiele gibt es unter dem <a href=\"https:\/\/wiki.archlinux.org\/index.php\/Dwm\">Stichwort DWM<\/a> im ... ArchLinux-Wiki. Ebenfalls bemerkenswert ist die Erweiterung <a href=\"http:\/\/dwm.suckless.org\/dwmstatus\/\">dwmstatus<\/a>, ein Grundger\u00fcst, mit dem es m\u00f6glich ist fortgeschrittene Statusanzeigen einzubauen.<\/p>\n<h3>Surf und Tabbed<\/h3>\n<p>Last but not least, im Zusammenspiel mit <a href=\"http:\/\/surf.suckless.org\/\">surf<\/a> und <a href=\"http:\/\/tools.suckless.org\/tabbed\">tabbed<\/a> ist DWM erst richtig vollst\u00e4ndig. Wo surf unter einem \"normalen\" Fenstermanager vielleicht suspekt erscheint, spielt er hier seine wahre St\u00e4rke aus. Startet zuerst <strong>tabbed<\/strong> mit dmenu. <strong>Shift+Strg+Enter<\/strong> \u00f6ffnet Surf direkt in den \"Tabs\", mit <strong>Strg+G<\/strong> geht es zur Adresszeile. URL eintippen und mit <strong>Shift+Strg h\/l<\/strong> zum n\u00e4chsten Tab wechseln.<br \/>\n<a href=\"https:\/\/gambaru.de\/blog\/wp-content\/uploads\/2011\/12\/20111213_surf_tabbed_hal6001-1.png\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-5221 size-medium\" title=\"20111213_surf_tabbed_hal600\" src=\"https:\/\/gambaru.de\/blog\/wp-content\/uploads\/2011\/12\/20111213_surf_tabbed_hal6001-1-300x225.png\" alt=\"\" width=\"300\" height=\"225\" srcset=\"https:\/\/gambaru.de\/blog\/wp-content\/uploads\/2011\/12\/20111213_surf_tabbed_hal6001-1-300x225.png 300w, https:\/\/gambaru.de\/blog\/wp-content\/uploads\/2011\/12\/20111213_surf_tabbed_hal6001-1-768x576.png 768w, https:\/\/gambaru.de\/blog\/wp-content\/uploads\/2011\/12\/20111213_surf_tabbed_hal6001-1.png 1024w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><br \/>\nWie zuvor schon erw\u00e4hnt, hat der Surf-Backport Probleme bei der Darstellung einiger Https-Seiten, weswegen <a href=\"http:\/\/www.twotoasts.de\/\">Midori<\/a> eine sinnvolle Alternative auf dem \u00e4lteren Laptop bleibt.<br \/>\nIch denke zum Thema DWM ist vorerst alles gesagt. Immer dann, wenn ich eine grafische Anwendung brauchen sollte, bietet er ab sofort einen R\u00fcckzugspunkt vom Konsolensetup mit Screen. \ud83d\ude09<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In diesem Beitrag geht es noch ein wenig um ein paar wissenswerte Funktionen und Hilfsprogramme zum Dynamic Window Manager und um ein paar Merkw\u00fcrdigkeiten und Einstellungen rund um den Thinkpad 600. Qingy Da ich dieses Jahr vor neuen Anwendungen und ein paar Ver\u00e4nderungen keinen Halt gemacht habe, durften nat\u00fcrlich Loginmanager f\u00fcr die Konsole auch nicht &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/gambaru.de\/blog\/2011\/12\/14\/dwm-qingy-xmodmap-surf-und-ein-thinkpad\/\" class=\"more-link\"><span class=\"screen-reader-text\">\u201edwm, urxvt, qingy, xmodmap, surf und ein Thinkpad\u201c<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[6],"tags":[53,65,161,187,207],"_links":{"self":[{"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/posts\/5205"}],"collection":[{"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/comments?post=5205"}],"version-history":[{"count":1,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/posts\/5205\/revisions"}],"predecessor-version":[{"id":10917,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/posts\/5205\/revisions\/10917"}],"wp:attachment":[{"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/media?parent=5205"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/categories?post=5205"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/tags?post=5205"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}