Spaß mit RXVT-Unicode Michael (aka Zappi) Edwards (eddy (at) lug-norderstedt.de) Benny (aka Asaru) Dirks (asaru (at) lug-norderstedt.de) v1.1 07. Juli 2007 Text neu zusammengestellt v1.0 15. März 2007 Initiale Dokumentation "Urxvt" (oder auch "Rxvt-Unicode" genannt) ist ein Klon der nicht mehr weiterentwickelten Terminal-Emulation "Rxvt". Der entscheidende Unterschied ist, daß der Urxvt Unicode unterstützt, und damit alle möglichen Sonderzeichen aus allen verfügbaren Sprachen unterstützt. Aber das ist nicht der springende Punkt , weshalb ich Urxvt anderen Terminal-Emulatoren vorziehe. Unicode Unterstützung gibt es schließlich bei vielen anderen Terminal-Emulationen auch, wie dem Gnome-Terminal oder der Konsole von KDE. Es gibt eigentlich zwei Sachen, die für mich den Urxvt auszeichnen: Der Urxvt gehört zu den schnellsten Terminal-Emulatoren überhaupt (ich weiß, daß XTerm der schnellste ist, aber er ist hässlich), und benötigt dabei recht wenig Speicher. Der Urxvt ist im aller höchsten Maße konfigurierbar, und lässt sich somit an die persönlichen Vorstellungen anpassen wie so eine Terminal-Emulation zu funktionieren und auszusehen hat. Zum ersten Punkt ist zu sagen, das schon etliche Flamewars darüber geführt worden sind, wer denn nun die schnellste Terminal-Emulation zur Verfügung stellt, die aber nie zu wirklichen Ergebnissen führt, da auch subjektive Empfindungen bei der Beurteilung eine Rolle spielen. Zum zweiten Punkt komme ich jetzt. Auf die Plätze, fertig, los Die Kommandozeile mit der ich den Urxvt starte sieht so aus: urxvt -bg black -fg white \ -fn "xft:Bitstream Vera Sans Mono:pixelsize=12" -sl 10000 +sb Diese Kommandozeile startet den Urxvt mit einen schwarzen Hintergrund (-bg black), weißer Schrift(-fg white), der Schriftart Bitstream Vera Sans in Größe 12 (-fn "xft:Bitstream Vera Sans Mono:pixelsize=12"), mit einen Scrollback Buffer, der sich die letzten 10.000 Zeilen merkt und ohne den hässlichen Scrollbar an der Seite (-sl 10000 +sb). Da ich (noch) keinen schicken XGL Desktop mit Beryl und KiBa einsetze, ist Transparenz für mich relativ uninteressant, da die "gefakte" Transparenz den Urxvt relativ langsam macht. Aber ich kann ja mal sagen, es geht. Mehr Transparenz Um eine echte Transparenz mit dem Urxvt zu genießen, braucht man Parameter wie in diesem Beispiel: urxvt -ip -tint red -sh 40 -fg white \ -fn "xft:Bitstream Vera Sans Mono:pixelsize=12" -sl 10000 +sb Hinzu gekommen ist hier der Parameter "-ip" der die echte Transparenz aktiviert, "-tint" steht für die Färbung der Transparenz und "-sh" steht für die den Grad der Transparenz in Prozent, dabei steht dann "100" für volle Transparenz. Das sind die meiner Meinung nach wichtigsten Parameter für Transparenz mit dem Urxvt. Jetzt kommen noch ein paar kleine mehr oder weniger nützliche Zaubertricks. URL-Laucher gefällig? Bei den tollen überladenen Terminal-Emulationen von Gnome und KDE gibt es dieses nette kleine Feature, das man auf URLs einfach draufklickt und schon geht der Browser auf. Das geht mit dem Urxvt auch sehr gut. Dazu muss man nur die Datei "~/.Xdefaults" öffnen und die folgende Zeilen hinzufügen: urxvt.perl-ext-common: mark-urls rxvt.urlLauncher: firefox Und schon kann man mit einem Klick der mittleren Maustaste eine URL im Firefox öffnen. Man kann natürlich auch einen anderen Browser benutzen, man muss dann nur den Eintrag Firefox ändern gegen seinen Lieblingsbrowser. Was sagt die Uhr? Oder wie wäre es mit einer Digitaluhr oben in der rechten Ecke? Auch kein Ding, einfach in "~/.Xdefaults" hinter dem Eintrag "mark-urls" ein Komma setzen und direkt dahinter "digital-clock" hinzufügen, schon gehts. Apropos geht, Änderungen in der Datei "~/.Xdefaults" werden erst nach den Neustart des X Servers wirksam. Wenn man es erstmal testen möchte, kann man mit "urxvt -pe digital-clock" schon mal schauen, ob es einem gefällt oder nicht. Es gibt noch ein paar nette kleine Spielereien und den Variationsmöglichkeiten sind so gut wie keine Grenzen gesetzt, da alle diese und noch viel mehr Sachen mit den beim Urxvt eingebauten Perl-Interpreter machbar sind. Mehr Informationen gibt es, wie in der Unixwelt üblich auf der Manpage urxvtperl. Dauerhafte Konfiguration für Urxvt Auch das ist kein Problem. Wenn man nicht jedesmal einen Rattenschwanz von Parametern eingeben will, kann man alle Details in der Datei "~/.Xdefaults" speichern. Und wenn man die Konfiguration systemweit haben möchte, gibt es die Möglichkeit mit dem Befehl "xrdb -merge .Xdefaults" (als root) die Konfiguration für alle User auf dem System zur Verfügung zu stellen. Das könnte zum Beispiel bei meiner bevorzugten Konfiguration so aussehen: URxvt.saveLines: 10000 URxvt.scrollBar: false URxvt.foreground: white URxvt.background: black URxvt.secondaryScroll: true URxvt.font: xft:Bitstream Vera Sans Mono:pixelsize=12 URxvt.perl-ext-common: mark-urls URxvt.urlLauncher: firefox Sieht doch einfach aus, nicht wahr? Ist es auch. Um jetzt zum Beispiel dasselbe mit Transparenz zu machen, würde das Ganze dann so aussehen: URxvt.saveLines: 10000 URxvt.scrollBar: false URxvt.inheritPixmap: true URxvt.tintColor: red URxvt.shading: 40 URxvt.foreground: white URxvt.background: black URxvt.secondaryScroll: true URxvt.font: xft:Bitstream Vera Sans Mono:pixelsize=12 URxvt.perl-ext-common: mark-urls URxvt.urlLauncher: firefox Ganz nebenbei hat sich da noch ein Parameter eingeschlichen, und zwar "URxvt.secondaryScroll: true". Dieser Parameter ist ziemlich praktisch, wenn man häufiger mit "screen" arbeitet. Wenn man sonst mit "screen" den Scrollbackbuffer relativ umständlich mit [Strg] + [A] + [Esc] und dann mit den Cursor-Tasten durchforsten muss, wird der Scrollbackbuffer an Urxvt übergeben, so daß man in "screen" genauso arbeiten kann, als ob es nativ im Urxvt laufen würde. Feine Sache nicht? Und was ist mit Tabbing? Eine Sache wäre da noch. Da alle modernen Terminal-Emulatoren Tabbing können, kann der Urxvt das natürlich auch, und im Betrieb sieht das auch sehr schick aus, wenn man damit leben kann, daß die "~/.Xdefaults" dann so aussieht: URxvt.saveLines: 10000 URxvt.scrollBar: false URxvt.foreground: white URxvt.background: black URxvt.secondaryScroll: true URxvt.font: xft:Bitstream Vera Sans Mono:pixelsize=12 URxvt.perl-ext-common: mark-urls URxvt.urlLauncher: firefoxURxvt.tabbed.saveLines: 1000 URxvt.tabbed.scrollBar: false URxvt.tabbed.tabbar-fg: 3 URxvt.tabbed.tabbar-bg: 0 URxvt.tabbed.tab-fg: 0 URxvt.tabbed.tab-bg: 1 URxvt.tabbed.secondaryScroll: true URxvt.tabbed.font: xft:Bitstream Vera Sans Mono:pixelsize=12 URxvt.tabbed.perl-ext-common: mark-urls URxvt.tabbed.urlLauncher: firefox Eigentlich ist es ganz einfach. Denn für die Tabs gelten die selben Parameter wie für einen normalen Urxvt. Der Unterschied liegt nur darin, daß es anstatt "URxvt" jetzt "URxvt.tabbed" am Anfang heißt. Mit den Parametern "URxvt.tabbed.tab-fg/-bg" und "URxvt.tabbed.tabbar-fg/-bg" kann man die Farbe der Tabs und die Schrift festlegen. Gestartet wird der Tabbed Urxvt mit dem Befehl "urxvt -pe tabbed" oder man hängt "tabbed" hinter "mark-urls" dran und trennt die beiden mit einem Komma. Es kann sein, daß die URLs in Opera nicht so wollen wie man das gerne hätte (ich glaube, ich habe irgendwo im changelog gelesen, daß das "mark-urls" mittlerweile ersetzt wurde). Daher habe ich es nun mit den folgenden Einträge anders gelöst: Ganz unten in der ¨~/.Xdefaults" ! Plugin stuff urxvt*urlLauncher: Opera URxvt.perl-ext-common: default,matcher,-option-popup,-selection-popup,-readline,digital-clock URxvt.matcher.button: 1 URxvt.matcher.pattern.1: \\bwww\\.[\\w-]+\\.[\\w./?&@#-]*[\\w/-] Und in "/usr/local/bin/Opera": #!/bin/bash opera -newpage "$@" Mit einem Klick der linken Maustaste wird die URL jetzt geöffnet. Und noch mehr Informationen Wie gesagt, die meisten - eigentlich alle - Informationen bekommt man aus den Manpages zu "urxvt" und "urxvtperl". Und sind sind sehr, sehr umfangreich. Das oben beschriebene ist nur ein kleiner Ausschnitt von dem, was möglich ist. Ich bin jetzt zum Beispiel gar nicht auf den Daemonbetrieb von Urxvt eingegangen. Das hat eigentlich nur den folgenden Grund. Es ist zwar schön wenn man 30 oder 40 Terminals offen haben kann, und es wird nur ein einziger Prozeß dafür gebraucht. Es ist aber gar nicht schön, wenn der Daemon abraucht und die ganze Arbeit, die man sich bis dahin gemacht hat, auch in "/dev/null" runtergespült wird. Deshalb ziehe ich es vor, die Terminals lieber einzeln zu starten. Dieses Thema wurde meines Erachtens bei Pro-Linux schon ausreichend beleuchtet. Default-Einstellungen Die Werte für Standardeinstellungen können für urxvt in der "~/.Xdefaults" vorgenommen werden: urxvt*background: #000000 urxvt*foreground: #7f7f7f urxvt*color0: #000000 urxvt*color1: #9e1828 urxvt*color2: #aece92 urxvt*color3: #968a38 urxvt*color4: #414171 urxvt*color5: #963c59 urxvt*color6: #418179 urxvt*color7: #bebebe urxvt*color8: #666666 urxvt*color9: #cf6171 urxvt*color10: #c5f779 urxvt*color11: #fff796 urxvt*color12: #4186be urxvt*color13: #cf9ebe urxvt*color14: #71bebe urxvt*color15: #ffffff urxvt*inheritPixmap: true urxvt*tintColor: blue urxvt*font: -xos4-terminus-bold-r-normal--20-200-72-72-c-100-iso8859-16 urxvt*boldMode: false urxvt*loginShell: true Die "terminus" Schrift kann ich nur empfehlen. Mag zwar zuerst etwas häßlich aussehen, aber dafür ist er auf Dauer gut zu lesen; auch nach stundenlangem arbeiten. Auch die Farbwahl der Standardfarben finde ich persönlich so angenehmer zum Arbeiten. Zusatz zum Starten von Urxvz Hier noch ein kleiner Zusatz zum Starten von Urxvt in der "~/.bashrc": function start_urxvt() { urxvtc "$@"; if [ $? -eq 2 ]; then urxvtd -q -o -f urxvtc "$@" fi } alias urxvt="start_urxvt" alias urxvtc="start_urxvt" Links zum Thema: http://cvs.schmorp.de/rxvt-unicode/doc/rxvt.7.html http://wiki.bsdforen.de/RXVT-Unicode http://zappi.wordpress.com/2007/03/14/spass-mit-urxvt/