Spass mit Urxvt (Update)

Mittwoch 14 März. 2007 um 22:28 | Veröffentlicht in Alltag, Community, Linux, wunderbare Welt | 14 Kommentare

Urxvt (rxvt-unicode) ist ein Clone der nicht mehr weiterentwickelten Terminal Emulation Rxvt. Der entscheidende Unterschied ist, dass der Urxvt Unicode unterstützt, und damit alle möglichen Sonderzeichen aus allen möglichen Sprachen unterstützt. Aber das ist nicht der springende Punkt warum ich Urxvt anderen Terminal Emulatoren vorziehe. Unicode Unterstützung gibt es schließlich bei vielen anderen Terminal Emulationen auch, wie den Gnome-Terminal oder die 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ß, dass der 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, wie so eine Terminal-Emulation zu funktionieren hat und auszusehen hat, anpassen.

Zum ersten Punkt ist zu sagen, dass 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. 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 einem schwarzen Hintergrund(-bg black), weißer Schrift(-fg white), dem Font Bitstream Vera Sans in der 12 Pixel groß(-fn „xft:Bitstream Vera Sans Mono:pixelsize=12“), mit einem Scrollback Buffer, der sich die letzten 10000 Zeilen merkt und ohne den hässlichen Scrollbar an der Seite (+sb). Da ich (noch) keinen schicken XGL Desktop mit Beryl und KiBa einsetzte, ist Transparenz für mich relativ uninteressant, da die fake Transparenz den Urxvt relativ langsam macht. Aber ich kann ja mal sagen: es geht. Um eine echte Transparenz mit dem Urxvt zu genießen braucht folgende Parameter wie in diesen 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 den 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, dass man auf URLs einfach raufklickt und schon geht der Browser auf. Das geht mit dem Urxvt auch sehr gut. Dazu muss man nur die Datei {HOME}/.Xdefaults öffnen und folgende Zeilen hinzufügen:

urxvt.perl-ext-common: mark-urls
rxvt.urlLauncher: firefox

Und schon kann man mit einem Klick mit 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 und gegen den entsprechend verwendeten Browser austauschen.

Oder wie wäre es mit einer Digitaluhr oben in der rechten Ecke?

Auch kein Ding, einfach in .Xdefaults hinter 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 Xservers 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, die mit dem beim Urxvt eingebauten Perl Interpreter machbar sind. Mehr Informationen gibt es, wie in der Unix Welt üblich, auf der Manpage urxvtperl.

Dauerhafte Konfiguration für Urxvt?

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 den 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 das selbe 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 Ctrl+a Esc und dann mit den Cursor Tasten durchforsten muss, wird der Scrollbackbuffer an Urxvt übergeben, so dass in screen genauso arbeiten kann wie als ob es nativ im Urxvt laufen würde. Feine Sache, nicht?

Eine Sache wäre da noch. Da alle modernen Terminal-Emulatoren Tabs können kann der Urxvt das natürlich auch, und im Betrieb sieht das auch sehr schick aus, wenn man damit leben kann, dass die ~/.Xdefaults dann so aus sieht:

URxvt.saveLines: 1000
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, dass es anstatt URxvt 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 der Schrift festlegen. Gestartet wird der tabbed Urxvt mit dem Befehl urxvt -pe tabbed oder man hängt tabbed hinter mark-urls ran und trennt die beiden mit einen Komma.

Wie gesagt, die meisten – eigentlich alle – Informationen bekommt man aus den Manpages zu urxvt und urxvtperl. Und diese 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 Demon-Betrieb von Urxvt eingegangen. Das hat eigentlich nur folgenden Grund. Es ist zwar schön, wenn man 30 oder 40 Terminals offen haben kann, und es wird nur ein einziger Prozess dafür gebraucht, es aber gar nicht schön, wenn der Demon abraucht und die ganze Arbeit, die man sich bis dahin gemacht hat, auch /dev/null runter gespült wird. Deshalb ziehe ich es vor, die Terminals lieber einzeln zu starten. Dieses Thema wurde meines Erachtens bei Pro-Linux schon ausreichend beleuchtet.

Links zum Thema:

http://cvs.schmorp.de/rxvt-unicode/doc/rxvt.7.html

http://wiki.bsdforen.de/RXVT-Unicode

Update

Ich wurde von einigen Seiten darauf Aufmerksam gemacht, dass in neueren Versionen von Urxvt die Perl Extension mark-urls nicht mehr existiert. Das ist jetzt kein Grund um in Tränen auszubrechen und an der Welt zu zweifeln. Es gibt einen Ausweg der dann ungefähr so aussieht:

URxvt.perl-ext-common: default,matcher
URxvt.urlLauncher: firefox
URxvt.matcher.button: 1
URxvt.matcher.pattern.1: \\bwww\\.[\\w-]\\.[\\w./?&@#-]*[\\w/-]

Ich hoffe, dass es das war, was sich so an Fehlern eingeschlichen habt. Aber um noch ein kleines Trostpflaser raufzupappen gibt es neu die Perl-Extension kuake. Diese Erweiterung soll eine ähnliche Funktionalität wie Kuake und Yakuake für KDE, und Tilda für Gnome zur Verfügung stellen. Bei URxvt.matcher.button: kann man bestimmen welche Maustaste man mit deer Funktion belegen möchte.

14 Kommentare »

RSS feed for comments on this post. TrackBack URI

  1. Danke für den Artikel. Richtig viel rumkonfiguriert hatte ich mit rxvt nie und den eingebauten perl-interpreter wollte ich mir auch schon lange mal anschauen aber ich benutze ausschlieslich das Gespann urxvtd/urxvtc und mir ist der Dämon noch nie abgestürzt. Gut, ich habe selten 100 Fenster offen, aber beim Speicherverbrauch merke ich es auch in meiner normalen Arbeitsweise mit 4 virtuellen Screens.

  2. Viele Fenster habe ich gerne mal offen. 100 Stück waren es soweit ich mich erinnere nie, aber 20 Fenster kommen man schnell zustande, wenn ich mit irgenetwas intensiv beschäftigt bin. Und irgendwann vor 3 oder 4 Jahren hatte ich mit den Dämon gearbeitet und mit in den schönsten Moment war der Dämon abgeraucht. Natürlich kann sich da bis heute einiges geändert haben, und die ganze Sache inzwischen stabil sein, aber wie sagt man so schön: Gebranntes Kind scheut das Feuer. ;)

  3. Super Artikel. Bin sofort von rxvt auf urxvt umgestiegen. Der Dämonbetrieb ist für mich nicht so wichtig, da ich am liebsten immer alles in einer screen-Sitzung laufen habe, welche ich dann nach Belieben retachen kann.

  4. besten dank für den artikel, bin selber überzeugter und langer urxvt nutzer aber das mit der möglichkeit links zu marken kannte ich dann doch noch nicht :) hab grad auch was zu urxvt geschrieben, für transparenz und fontfarben, wers braucht/ waynes interessiert:

    http://blog.teranetworks.de/321/urxvt-rxvt

  5. HA! Noch etwas, was ich wieder wegwerfen kann. :)

    Ich hatte nur gnome-terminal oder „Terminal“ (xcfe) wegen des bequemen URL-klicks. Hurra. Weg damit! :)

    Eins der besten Features an „Unicode“ bei urxvt ist btw. Ctrl-Shift-Codepoint, um direkt Codepoints einzugeben. Klappt natürlich nur mit dem richtigen Font…

  6. toller artikel (sagt der maintainer von urxvt)

  7. schöner und hilfreicher Artikel – danke!

  8. Danke für die neue URL Funktionalität, hat mir einen Haufen Arbeit erspart :)

  9. Besten Dank!

  10. Der Artikel wäre um gefühlte 100 Prozent besser, wenn es einen Vorher- und einen Nachher-Screenshot geben würde ;)

  11. @Dirk: Du bringst es auf den Punkt. :)

  12. Super Artikel. Ein Neustart nach Änderungen von ~/.Xdefaults muss nicht sein, ein xrdb -load ~/.Xdefaults reicht. Danach ein neues Terminal starten.

  13. http://software.schmorp.de/pkg/rxvt-unicode.html sagt, dass urxvt kein Clone, sonder ein Fork von rxvt ist.


Hinterlasse einen Kommentar

Erstelle kostenlos eine Website oder ein Blog auf WordPress.com.
Entries und Kommentare feeds.