xterm

Aus wiki.archlinux.de

xterm ist der Standard-Terminalemulator von X. Die Begriffe „Terminal“, „Shell“ und „Terminalemulator“ werden häufig synonym verwendet. Korrekt ist allerdings nur die Bezeichnung „Terminalemulator“. In einem Terminalemulator wird eine Shell (unter Arch standardmäßig die bash) angezeigt, so dass man auf Systemen mit grafischer Oberfläche innerhalb dieser grafischen Oberfläche ein Terminal – genauer gesagt, die Emulation eines Terminals – benutzen kann.

Das emulierte Terminal verhält sich dabei bis auf wenige Ausnahmen wie ein tatsächliches Terminal. Heutzutage werden Terminalemulatoren auf Systemen mit grafischer Oberfläche häufig dazu genutzt, das System zu konfigurieren, oder administrative Tätigkeiten auszuführen. Aber auch die tägliche Arbeit lässt sich mittels eines Terminalemulators häufig vereinfachen, umgangssprachlich wird hier auch „etwas am Terminal machen“ oder „etwas an/in der Shell machen“ verwendet.

Das Programm

xterm direkt nach dem ersten Start des X-Servers

Nach dem ersten Start des X-Servers stehen dem Benutzer drei xterm-Fenster zur Verwendung bereit. Diese sind in einem einfachen grafischen Design gehalten. X selbst verfügt standardmäßig (dank twm) ja nur über eine relativ einfache Fensterverwaltung. Dennoch sind diese Fenster vollwertige xterm-Fenster.

xterm bietet neben umfassenden Parametern zur Konfiguration beim Starten und deren Entsprechungen zum Einbau in die „.Xresources“-Datei auch drei verschiedene Menüs. Diese sind bei gedrückter Strg-Taste mittels Links-, Mittel-, und Rechtsklick zu erreichen. Auf diese Menüs wird in diesem Artikel allerdings nicht näher eingegangen.

Konfiguration

xterm bietet die Möglichkeiten, sowohl beim Starten, als auch über die „.Xresources“-Datei Optionen zu definieren. Nachfolgend einige Beispiele und Anwendungszwecke.

Start-Parameter

Standardmäßig wird im Titel des Fensters entweder der Name des laufenden Programms, oder schlicht „xterm“ angezeigt, wenn man dies ändern möchte, kann man mittels des „-title“-Parameters einen beliebigen Titel an xterm übergeben.

xterm -title "beliebiger Titel"

Vordergrundfarbe (Text) und Hintergrundfarbe des Fensters können mittels der Parameter „-fg“ (foreground – Vordergrund) und „-bg“ (background – Hintergrund) bestimmt werden. Darüber welche Farben verwendet werden können, gibt man colors Auskunft. Um zum Beispiel ein rotes Fenster mit gelber Schrift zu erzeugen, kann man folgenden Aufruf verwenden.

xterm -bg red -fg yellow

Standardmäßig bietet xterm eine Größe von 80 Spalten (80 Zeichen in einer Zeile) mal 24 Zeilen. Wenn man nun eine hohe Auflösung verwendet, ist einem dies vielleicht etwas zu klein. xterm folgt den Standard-Geometrie-Angaben, will man ein kleines Fenster unten rechts angezeigt bekommen, kann man diesen Aufruf verwenden

xterm -geometry 21x4-10-10 &
xterm -geometry 21x4+10+10 &
xterm -geometry 112x35

Damit wird ein 21 Spalten breites, vier Zeilen hohes xterm-Fenster unten rechts 10 Pixel vom unteren, und 10 Pixel vom rechten Rand entfernt, positioniert. Im selben Zug wird ein weiteres, genau so großes Fenster mit dem selben Abstand zu den Rändern oben links positioniert. Zusätzlich wird noch ein weiteres xterm-Fenster gestartet. Dies hat die Ausmaße 112x35, und wird dort positioniert, wo es vom Fenstermanager bestimmt wurde.

Wenn man nicht möchte, dass der Inhalt des Fensters komplett am Rand „klebt“, kann man mittels „-b“ einen inneren Rand definieren. Alles, was dann im Fenster angezeigt wird, wird um diesen Rand verschoben angezeigt. Das xterm-Fenster wird um den entsprechenden Wert vergrößert, damit die Zeilen/Spalten-Zahl nicht verändert wird.

xterm -b 10

Diese Angabe sorgt für einen 10 Pixel schmalen Rand um den Fensterinhalt. Das xterm-Fenster wird somit um 20 Pixel in der Höhe und 20 Pixel in der Breite vergrößert.

.Xresources

Einleitung

Anstatt Anweisungen für Programme bei deren Start mit zu übergeben, kann man diese Anweisungen auch in die „.Xresources“ schreiben. Diese Standard-Datei wird von vielen Programmen unterstützt, so auch von xterm. Die Anweisungen werden zeilenweise in die Datei geschrieben.

programmname*klasse: eigenschaft

Der Programmname wird durch eben diesen ersetzt, im Falle von xterm eben – „xterm“. Das Sternchen ist ein Wildcard-Charakter, die Klasse wird durch das zu konfigurierende Programm vorgegeben, ebenso wie die gültigen Eigenschaften dieser Klasse. Leider sind Klassen und deren Eigenschaften häufig nicht so gut dokumentiert wie bei xterm, so dass man viel herumprobieren muss, um die richtigen Kombinationen zu finden.

Angewendet wird die Datei mittels des Tools xrdb. Dabei werden hauptsächlich zwei Parameter verwendet: „-merge“ und „-load“. „-merge“ fügt die Optionen in der angegebenen Datei den bereits bestehenden Optionen hinzu. „-load“ ersetzt die bereits bestehenden Optionen durch die Optionen, die in der angegebenen Datei definiert wurden.

xrdb -load .Xresources

Dies lädt die „.Xresources“-Datei. Es können beliebige Dateinamen verwendet werden. Standardmäßig wird aber nur diese Datei automatisch erkannt, wenn ein Automatismus verfügbar ist. Sollte keiner verfügbar sein, muss man den xrdb-Aufruf über die Autostart-Funktion des verwendeten Fenstermanagers, oder in die „.xinit“-Datei schreiben.

Beispiele

Will man – analog zum ersten Befehlszeilen-Beispiel – jedem xterm-Fenster einen definierten Titel übergeben, so tut man dies mit der Klasse „title“.

xterm*title: Beliebiger Titel

Damit wird jedem xterm-Bezogenen Objekt, das die Titel-Klasse unterstützt, der Titel „Beliebiger Titel“ zugewiesen. Womit auch gleich ein Problem aufgezeigt ist: Es betrifft jedes xterm-Objekt. Wenn man weiß, dass xterme eine Klasse „class“ mit dem Zusatz „single“ anbieten würde, müsste man dies wie Folgt definieren.

xterm*single.class: wert

Würde man stattdessen „xterm*class“ verwenden, würden alle Klassen und deren Zusätze den angegebenen Wert zugewiesen bekommen.

Wenn man über die „.Xresources“-Datei Vorder- und Hintergrund der xterm-Fenster bestimmen will, benutzt man die entsprechenden Klassen.

xterm*foreground: yellow
xterm*background: red

Dies erzeugt rote Fenster mit gelbem Text, und entspricht somit dem weiter oben definierten Fenster. Die Geometrie wird analog dazu mit der „geometry“-Klasse gesetzt.

xterm*geometry: 21x4+10+10

Der Innenabstand, der über die Befehlszeile mittels „-b“ gesetzt wird, hat die Klasse „internalBorder“, und wird daher wie folgt definiert:

xterm*internalBorder: 10
ein Konfiguriertes xterm-Fenster mit angepasstem Prompt und Openbox als Fenstermanager

Das so erzeugte Fenster ist zwar nicht sonderlich nutzbar, aber wenn man die bisher angegebenen Beispiele mit sinnvollen Werten versieht, bekommt man durchaus ein brauchbares Fenster zustande.

xterm*background: black
xterm*foreground: grey
xterm*geometry: 112x35
xterm*internalBorder: 5

Die Titel-Variable fehlt allerdings, da xterm selbst in der Lage ist, Titel-setz-Anweisungen zu verarbeiten, und dies für gewöhnlich auch zufriedenstellend bewerkstelligt, so dass man darauf keinen Einfluss zu nehmen braucht.

Sinnvolle Optionen

Neben den Optionen aus den Beispielen im vorangegangenen Abschnitt gibt es noch mindestens zwei weitere, sinnvolle Optionen. Zum einen wäre da die Klasse „selectToclipboard“. Standardmäßig kopiert man unter X mittels einfachem Markieren, und fügt mittels Mittelklick wieder ein. Allerdings funktioniert dies nicht bei allen Anwendungen und auch nicht immer zuverlässig

xterm*selectToClipboard: true

Mit dieser Option wird alles, was markiert wird, nicht nur in den Puffer gesetzt, sondern zusätzlich auch noch in die Zwischenablage geschrieben, so dass man es – anders als beim Standard-Verhalten – auch mittels Strg+v wieder einfügen kann.

Die zweite sinnvolle Option ist „utf8“. Wenn man sein System mit UTF8 betreibt (das sollte eigentlich standardmäßig der Fall sein), kann man xterm so konfigurieren, dass es alles, was es entgegen nimmt und ausgibt, per UTF8 machen soll.

xterm*utf8: 1
  • 0 → UTF8 ist deaktiviert
  • 1 → UTF8 ist aktiviert, kann aber deaktiviert werden
  • 2 → UTF8 ist aktiviert, kann aber nicht deaktiviert werden
  • 3 → UTF8 berücksichtigt die „locale“-Klasse

Neben diesen Optionen kann man auch die Farben definieren, die xterm verwenden soll. Um die Farben 0 bis 15 mit den Farben gemäß der Tango!-Palette zu belegen, schreibt man folgendes in die „.Xresources“:

xterm*color0:  rgb:2e2e/3434/3636
xterm*color1:  rgb:cccc/0000/0000
xterm*color2:  rgb:4e4e/9a9a/0606
xterm*color3:  rgb:c4c4/a0a0/0000
xterm*color4:  rgb:3434/6565/a4a4
xterm*color5:  rgb:7575/5050/7b7b
xterm*color6:  rgb:0606/9820/9a9a
xterm*color7:  rgb:d3d3/d7d7/cfcf
xterm*color8:  rgb:5555/5757/5353
xterm*color9:  rgb:efef/2929/2929
xterm*color10: rgb:8a8a/e2e2/3434
xterm*color11: rgb:fcfc/e9e9/4f4f
xterm*color12: rgb:7272/9f9f/cfcf
xterm*color13: rgb:adad/7f7f/a8a8
xterm*color14: rgb:3434/e2e2/e2e2
xterm*color15: rgb:eeee/eeee/ecec

Es können insgesamt 256 Farben (0-255) definiert werden. Weitere Farboptionen bietet die Manpage von xterm, die ersten 16 Farben sind jedoch die gemeinhin verwendeten Farben in einem xterm-Fenster.

Ein weiteres äußerst sinnvolles Features ist das Aktivieren der Alt_L-Taste als standardmäßige Meta-Taste, so dass man nicht ständig gezwungen ist, auf die Escape-Taste auszuweichen. Hierfür reicht es aus, die folgende Option mit aufzunehmen.

XTerm*metaSendsEscape: true

Wenn man sein xterm komplett auf seine Bedürfnisse zuschneiden will, kommt man sowieso nicht umhin, die in der Manpage aufgeführten Klassen nebst deren Eigenschaften zu studieren.

Siehe auch

Weblinks