Im Katalog suchen

Linux - Wegweiser zur Installation & Konfiguration, 3. Auflage

Online-Version

Copyright © 2000 by O'Reilly Verlag GmbH & Co.KG

Bitte denken Sie daran: Sie dürfen zwar die Online-Version ausdrucken, aber diesen Druck nicht fotokopieren oder verkaufen. Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

Wünschen Sie mehr Informationen zu der gedruckten Version des Buches Linux - Wegweiser zur Installation & Konfiguration oder wollen Sie es bestellen, dann klicken Sie bitte hier.


vorheriges Kapitel Inhaltsverzeichnis Stichwortverzeichnis nächstes Kapitel

Grundlagen der Anpassung von X

Bevor wir auf einige Anwendungsprogramme eingehen, die unter X laufen, sollten wir noch die Grundlagen zur Konfiguration von X besprechen. Es muß nicht sein, daß Sie sich mit der (oft unattraktiven) Standardkonfiguration vieler Systeme zufriedengeben.

xinit

Sie starten X mit dem Befehl startx. Dies ist ein Frontend für xinit, das Programm, das den X-Server (mit brauchbaren Einstellungen) und verschiedene X-Clients aufruft. xinit führt (via startx) das Shell-Skript .xinitrc aus Ihrem Home-Verzeichnis aus. Dieses Skript enthält einfach die Befehle, die Sie beim Start von X aufrufen möchten - zum Beispiel xterm, xclock usw. Wenn Sie keine Datei .xinitrc angelegt haben, wird statt dessen per Voreinstellung die Systemdatei /usr/lib/X11/xinit/xinitrc benutzt.

Hier zeigen wir Ihnen ein Beispiel für eine .xinitrc-Datei und erklären, was darin passiert. Sie können dieses Beispiel als Ihre eigene .xinitrc übernehmen oder auch mit der Systemdatei xinitrc beginnen.

1 #!/bin/sh 2 # Beispielhaftes .xinitrc-Skript 3 4 # xterms starten 5 xterm -geometry 80x40+10+100 -fg black -bg white & 6 xterm -geometry -20+10 -fn 7x13bold -fg darkslategray -bg white & 7 xterm -geometry -20-30 -fn 7x13bold -fg black -bg white & 8 9 # Weitere nuetzliche X-Clients 10 oclock -geometry 70x70+5+5 & 11 xload -geometry 85x60+85+5 & 12 xbiff -geometry +200+5 & 13 xsetroot -solid darkslateblue & 14 15 # Den Window-Manager starten 16 exec fvwm2

Die Datei sollte weitgehend selbsterklärend sein, selbst wenn Sie noch keine Erfahrung mit X haben. Die erste Zeile kennzeichnet sie als Shell-Skript, die zweite ist einfach ein Kommentar. In den Zeilen 5 bis 7 werden drei xterm-Clients gestartet (erinnern Sie sich, daß xterm ein Client zur Terminal-Emulation ist). In den Zeilen 10 bis 13 werden weitere Clients aufgerufen, und in Zeile 16 erfolgt der Start von fvwm, dem Fenster-Manager.

Wenn Sie startx mit der hier gezeigten Datei .xinitrc aufrufen, erhalten Sie einen Bildschirm, der etwa so aussieht wie Abbildung 11-1 Fußnoten 1.

Screenshot

Abbildung 11-1: Der Bildschirm, den die Beispieldatei .xinitrc erzeugt

Wir wollen uns das genauer ansehen. In Zeile 5 wird xterm mit verschiedenen Optionen aufgerufen, nämlich -geometry, -fg und -bg. Die meisten X-Clients unterstützen neben einigen anderen auch diese »Standard«-Optionen.

Mit der Option -geometry haben Sie die Möglichkeit, Größe und Anordnung von Fenstern auf dem Bildschirm zu bestimmen. Die Anweisung hat folgendes Format:

xsizexysize+xoffset+yoffset

Die Option -geometry 80x40+10+100 bewirkt, daß ein Fenster mit einer Breite von 80 Zeichen und einer Höhe von 40 Zeichen an der Position (10,100) auf dem Bildschirm plaziert wird (wobei (0,0) der linken oberen Ecke entspricht). Beachten Sie, daß xterm die Fenstergröße in Zeichen mißt und nicht in Pixeln. Der Font, der hier benutzt wird, entscheidet über die tatsächliche Größe des Fensters.

Mit den Argumenten -fg und -bg bestimmen Sie die Vordergrund-(Text-) und Hintergrundfarbe des xterm-Fensters. Wir haben hier die eher langweilige Kombination schwarz und weiß gewählt, die sowohl auf Farb- als auch auf Schwarzweißmonitoren funktionieren sollte. Unter X werden die Farben in der Regel mit ihren Namen bezeichnet, aber Sie können auch Ihre eigenen RGB-Werte definieren. Eine Liste der Farbnamen (samt der dazugehörenden RGB-Werte) finden Sie in der Datei /usr/lib/X11/rgb.txt. (Wenn Sie xcolors aufrufen, werden diese Farben mit ihren Namen angezeigt.)

In Zeile 6 wird ein weiteres xterm gestartet, allerdings mit anderen Argumenten:

xterm -geometry -20+10 -fn 7x13bold -fg darkslategray -bg white &

Als Fenstergeometrie wird hier nur -20+10 angegeben. Ohne ausdrückliche Angabe der Größe wird xterm die voreingestellten Werte benutzen (meist 80x25). Weiterhin fällt auf, daß der xoffset mit einem - statt einem + versehen ist. Das hat zur Folge, daß das Fenster 20 Pixel vom rechten Rand des Bildschirms entfernt plaziert wird. Ebenso wird die Geometrieangabe -20-30 (wie in Zeile 7) das Fenster 20 Pixel vom rechten Rand und 30 Pixel vom unteren Rand des Bildschirms öffnen. Der Vorteil ist, daß die Anordnung der Fenster auf diese Weise in geringerem Maße von der speziellen Auflösung abhängig ist, die Sie benutzen.

Die Option -fn in den Zeilen 6 und 7 bestimmt, daß xterm den Font 7x13bold benutzen soll. Wenn Sie xlsfonts aufrufen, erhalten Sie eine Liste der auf Ihrem System vorhandenen Fonts; der X-Client xfontsel ermöglicht die interaktive Auswahl eines Fonts - wir kommen später noch darauf zurück.

In Zeile 10 wird der Client oclock gestartet, der eine analoge Uhr anzeigt. Zeile 11 startet xload, eine graphische Anzeige der durchschnittlichen Systemauslastung (Anzahl der aktiven Prozesse), die sich im Laufe der Zeit ändert. In Zeile 12 rufen wir xbiff auf, das Ihnen anzeigt, ob E-Mail eingetroffen ist. In Zeile 13 lassen wir den langweiligen grauen Hintergrund verschwinden und stellen ein knalliges darkslateblue (dunkles Schieferblau) ein. (Keine Angst, es gibt noch viel mehr spaßige Sachen in X!)

Sie werden bemerkt haben, daß in den Zeilen 5 bis 13 die Clients im Hintergrund gestartet werden (das Kaufmanns-Und am Zeilenende sorgt dafür). Wenn Sie die Clients nicht im Hintergrund starten würden, würde xinit das erste xterm aufrufen, darauf warten, daß es beendet wird (in der Regel, nachdem Sie sich ausloggen), dann das nächste xterm aufrufen usw. Mit Hilfe des Kaufmanns-Und lassen Sie alle Clients gleichzeitig arbeiten.

Und was passiert in Zeile 16? Hier starten wir fvwm (Version 2), einen Fenster-Manager, der auf vielen Linux-Systemen benutzt wird. Wir haben bereits erwähnt, daß der Fenster-Manager das Aussehen der Fenster bestimmt, das Verschieben von Fenstern mit der Maus ermöglicht usw. Allerdings wird fvwm mit dem Befehl

exec fvwm2

gestartet. Das hat zur Folge, daß der Prozeß fvwm2 den Prozeß xinit ersetzt. Auf diese Weise beendet sich der X-Server, Fußnoten 2 sobald Sie fvwm beenden. Dies ist einfacher als die Tastenkombination STRG-ALT-BACKSPACE.

Ganz allgemein sollten Sie alle X-Clients in .xinitrc mit einem Kaufmanns-Und am Zeilenende starten und den Fenster-Manager am Ende der Datei mit exec aufrufen. Es gibt natürlich noch andere Wege ans Ziel, aber viele Benutzer gehen genau so vor.

Icon

[14]

Wenn Sie die Manpages zu xterm und anderen X-Clients lesen, werden Sie weitere Optionen für die Befehlszeile finden, die wir hier nicht besprochen haben. Es gilt, was wir bereits gesagt haben: Fast alles unter X ist konfigurierbar. Der fvwm (Version 2) benutzt eine eigene Konfigurationsdatei, .fvwm2rc, die in der dazugehörigen Manpage beschrieben wird. (Falls Sie keine .fvwm2rc-Datei einrichten, wird statt dessen die Systemdatei /usr/lib/X11/fvwm2/system.fvwmrc benutzt.) In den Manpages und in Büchern zum Thema X (wie zum Beispiel O'Reillys X Window System User's Guide) finden Sie weitere Hinweise zur Konfiguration der einzelnen Clients.

Die Ressourcen-Datenbank von X

Sie werden nicht allzu lange mit X arbeiten können, ohne auf die X-Ressourcen zu stoßen - Sie finden diesen Begriff in fast jeder Manpage. Mit den X-Ressourcen stehen Ihnen flexiblere und umfangreichere Möglichkeiten zur Konfiguration von X-Clients zur Verfügung, als solche Optionen wie -geometry und -fg auf der Befehlszeile bieten. Die X-Ressourcen machen es möglich, daß Sie für ganze Gruppen von Clients die Voreinstellungen bestimmen. Damit könnten Sie zum Beispiel den Font für alle Aufrufe von xterm auf 7x13bold voreinstellen, anstatt das jedesmal in der Befehlszeile anzugeben.

In letzter Zeit sind X-Ressourcen bei X-Entwicklern etwas in Ungnade gefallen. Sie sind wirklich sehr flexibel, aber nicht besonders einfach zu benutzen und machen den Eindruck eines Relikts aus alten Zeiten. Eine ständig wachsende Anzahl von Programmen wird daher nicht über X-Ressourcen, sondern über bequeme Konfigurationsdialoge angepaßt. Es lohnt sich aber immer noch, sich mit X-Ressourcen auszukennen, denn sie werden Ihnen noch lange begegnen.

Zwei Schritte sind erforderlich, um die X-Ressourcen zu benutzen. Zunächst müssen Sie eine Datei erstellen, die die Voreinstellungen für Ihre X-Ressourcen enthält. Diese Datei trägt in der Regel den Namen .Xdefaults und steht im Home-Verzeichnis. Außerdem müssen Sie noch mit dem Befehl xrdb die X-Ressourcen in den Server laden, damit sie benutzt werden können. Im allgemeinen wird xrdb in der Datei .xinitrc vor dem Start irgendwelcher Clients aufgerufen.

Wir werden anhand der Befehlszeilen-Optionen für die Clients aus der oben gezeigten .xinitrc-Datei in einem einfachen Beispiel die Benutzung der X-Ressourcen demonstrieren. Anschließend zeigen wir Ihnen, wie die Datei .xinitrc für die Arbeit mit den X-Ressourcen angepaßt werden muß.

Vorab noch ein paar Worte zur Arbeitsweise der Ressourcen. Jede X-Anwendung ist Teil einer bestimmten Anwendungsklasse (application class). So gehört zum Beispiel xterm zur Klasse XTerm. Sowohl xclock als auch oclock sind der Klasse Clock zugeordnet. Wenn Sie die Ressourcen für die Klasse Clock festlegen, wirkt sich das auf alle Applikationen aus, die zu dieser Klasse gehören - da xclock (eine quadratische Analoguhr) und oclock (eine runde Analoguhr) sich ähnlich sind, gehören sie derselben Klasse an und benutzen dieselben Ressourcen. Die meisten Anwendungen gehören als einziges Mitglied ihrer eigenen Klasse an - so ist zum Beispiel xload das einzige Mitglied der Klasse XLoad. Sollte allerdings eine andere Anwendung auftauchen, die Ähnlichkeiten mit xload hat, so könnte es sein, daß auch diese Anwendung ein Mitglied der Klasse XLoad wird. Indem die X-Clients einer Anwendungsklasse zugeordnet werden, lassen sich die Ressourcen für alle Mitglieder dieser Klasse festlegen. (In der Manpage zu jeder X-Anwendung erfahren Sie, zu welcher Klasse das Programm gehört.)

Die »Standard«-X-Clients benutzen solche Ressourcen wie foreground, background, geometry und font. Viele X-Clients kennen außerdem noch eigene Ressourcen - so benutzt zum Beispiel xterm die Ressource logFile - , so daß Sie eine Datei bestimmen können, in der die Terminal-Sitzung protokolliert wird. Auch die vorhandenen Ressourcen zu jedem X-Client werden in den entsprechenden Manpages aufgeführt.

Auch die Ressourcen selbst werden in eine Klassenhierarchie eingeordnet. So ist zum Beispiel die Ressource background ein Mitglied der Klasse Background. Die Ressourcen-Klassen machen es möglich, daß viele einzelne Ressourcen Mitglieder derselben Klasse sind, so daß die Ressourcen einer ganzen Klasse mit Werten versehen werden können. Ein Beispiel: Die Ressource background bestimmt in der Regel die Standardfarbe für den Bildschirmhintergrund. Wenn ein Anwendungsprogramm allerdings verschiedene Bildschirmseiten darstellt, ist es vielleicht wünschenswert, jeder Seite eine andere Hintergrundfarbe zuzuordnen. Sie könnten also die Ressourcen background1, background2 usw. einführen - für jede Bildschirmseite eine; aber alle diese Ressourcen wären Mitglied der Ressourcen-Klasse Background. Wenn Sie den Wert für die Klasse Background bestimmen, legen Sie auch die Werte für alle Ressourcen in dieser Klasse fest.

Normalerweise brauchen Sie sich mit dem Unterschied zwischen den Ressourcen-Klassen und den Ressourcen innerhalb einer Klasse nicht zu befassen. Meistens ist es einfacher, die Werte der Ressourcen für eine ganze Klasse festzulegen (zum Beispiel Background), als die Werte einzelner Ressourcen in dieser Klasse.

Lassen Sie uns jetzt untersuchen, wie die Werte für Ressourcen in der Ressourcen-Datenbank festgelegt werden. Ein vollständiger Ressourcen-Eintrag hat das Format: Fußnoten 3

(ApplikationsKlasse|applikationsName)*(RessourcenKlasse|ressourcenName) : Wert

Der senkrechte Strich bedeutet, daß Sie eine der Möglichkeiten wählen können. Nehmen wir an, daß Sie die Hintergrundfarbe eines xterm-Fensters einstellen möchten. Der komplette Ressourcen-Eintrag könnte so aussehen:

xterm*background: darkslategray

Damit bestimmen Sie allerdings nur eine bestimmte Hintergrund-Ressource (und nicht alle Ressourcen, die möglicherweise der Klasse Background angehören), und dies auch nur, wenn der Client xterm auch als xterm aufgerufen wird (mehr zu diesem Punkt später). Deshalb sollte man vielleicht besser diese Ressourcen-Klasse benutzen:

XTerm*Background: darkslategray

Dieser Eintrag bezieht sich auf alle xterm-Clients sowie alle Ressourcen der Klasse Background, die von xterm benutzt werden.

Lassen Sie uns jetzt die Optionen aus der oben gezeigten .xinitrc-Datei als Ressourcen formulieren. Legen Sie in Ihrem Home-Verzeichnis die Datei .Xdefaults an. Analog zu der Datei .xinitrc weiter oben sollten Sie hier eintragen:

1 Clock*Geometry: 70x70+5+5 2 XLoad*Geometry: 85x50+85+5 3 XBiff*Geometry: +200+5 4 5 ! Defaults for all xterm clients 6 XTerm*Foreground: white 7 XTerm*Background: black 8 9 ! Specific xterms 10 xterm-1*Geometry: 80x40+10+110 11 12 xterm-2*Geometry: -20+10 13 xterm-2*Font: 7x13bold 14 xterm-2*Background: darkslategray 15 16 xterm-3*Geometry: 80x25-20-30 17 xterm-3*Font: 7x13bold

In den Zeilen 1 bis 3 wird die Ressourcen-Klasse Geometry für die Anwendungs-Klassen Clock, XLoad und XBiff bestimmt. In den Zeilen 6 und 7 legen wir die Ressourcen-Klassen Foreground und Background für die ganze Klasse XTerm fest. Alle xterm-Clients werden diese Werte per Voreinstellung für Foreground und Background benutzen.

In den Zeilen 10 bis 17 bestimmen wir die Ressourcen für die einzelnen Aufrufe von xterm. (Dies ist notwendig, weil die xterms verschieden sind; sie haben zum Beispiel unterschiedliche Geometriewerte.) Wir haben die verschiedenen xterm-Clients in diesem Beispiel mit xterm-1, xterm-2 und xterm-3 bezeichnet. Wie Sie sehen, haben wir in den Zeilen 10, 12 und 16 jeweils die Geometriewerte definiert. Für xterm-2 und xterm-3 haben wir außerdem die Klasse Font bestimmt; für xterm-2 bestimmen wir zusätzlich darkslategray als Wert für die Klasse Background.

Die Regeln für die Zuordnung von X-Ressourcen (binding rules) sind so gestaltet, daß bestimmte Zuordnungen den anderen übergeordnet sind. Für unser Beispiel bedeutet dies, daß die Festlegung einer Ressource für einen bestimmten Aufruf von xterm (wie xterm-2*Background in Zeile 14) Vorrang hat vor der Festlegung einer Ressource für die Klasse XTerm insgesamt (XTerm*Background in Zeile 7). Anders ausgedrückt: Die Zuordnungen für eine Anwendungs- oder Ressourcen-Klasse haben eine niedrigere Priorität als die Zuordnungen für eine bestimmte Instanz innerhalb dieser Klasse. Auf diese Weise haben Sie die Möglichkeit, Voreinstellungen für die ganze Klasse zu treffen, diese Standardwerte dann aber für bestimmte Instanzen der Klasse zu überschreiben.

Lassen Sie uns sehen, welche Änderungen wir in .xinitrc vornehmen müssen, um mit den gerade definierten X-Ressourcen arbeiten zu können. Als erstes müssen wir den Befehl xrdb einfügen, der die Anwendungs-Ressourcen in den Server lädt. Außerdem können wir die verschiedenen Optionen für die Befehlszeilen entfernen, weil diese durch die Ressourcen ersetzt werden. Also:

#!/bin/sh # Beispielhaftes .xinitrc-Skript # Ressourcen laden xrdb -load $HOME/.Xdefaults # xterms starten xterm -name "xterm-1" & xterm -name "xterm-2" & xterm -name "xterm-3" & # Weitere nuetzliche X-Clients oclock & xload & xbiff & xsetroot -solid darkslateblue & # Den Window-Manager starten exec fvwm2

Wie Sie sehen, können wir mit dem Argument -name hinter den drei Aufrufen von xterm bestimmen, unter welchem Namen xterm die X-Ressourcen suchen wird. Die meisten X-Clients kennen das Argument -name nicht; man benutzt dann den Namen, unter dem der Client gestartet wird. Für die zahlreichen Benutzer, die mehr als ein xterm auf einmal aufrufen, ist es allerdings von Vorteil, wenn sie beim Bestimmen der Ressourcen die xterms auseinanderhalten können.

Sie sollten jetzt in der Lage sein, Ihre X-Arbeitsumgebung bis zu einem gewissen Grade anzupassen. Selbstverständlich hängt die Fähigkeit, X zu konfigurieren, zum Teil auch davon ab, wie sehr Sie mit den vielen X-Anwendungen und dem Fenster-Manager (sowie seiner Konfiguration) vertraut sind. Im Rest dieses Abschnitts werden wir einige X-Anwendungen für Linux vorstellen und einen Fenster-Manager, den fvwm, im Detail besprechen.

 Fußnoten 1
Na gut - ein Kunstwerk ist das nicht gerade, aber wir brauchten ein einfaches Beispiel, das auf den meisten Bildschirmen funktioniert!
 Fußnoten 2
Wenn Sie schon mit fvwm herumexperimentiert haben, werden Sie feststellen, daß beim Betätigen der linken Maustaste, während der Cursor über dem Hintergrund steht, ein Menü aufklappt. Wenn Sie aus diesem Menü Quit fvwm auswählen, beendet sich fvwm.
 Fußnoten 3
In Wirklichkeit haben die Ressourcen-Einträge eine viel komplexere Syntax, als wir hier zeigen, und die Regeln zur Verknüpfung von Ressourcen mit ihren Werten sind reichlich kompliziert. Um die Sache überschaubar zu halten, zeigen wir ein brauchbares Modell für die Ressourcen eines Anwendungsprogramms - und verweisen wißbegierige Leser auf ein gutes Buch zum Thema X.


vorheriges Kapitel Inhaltsverzeichnis Stichwortverzeichnis nächstes Kapitel


Weitere Informationen zum Linux - Wegweiser zur Installation & Konfiguration

Weitere Online-Bücher & Probekapitel finden Sie in unserem Online Book Center


O'Reilly Home | O'Reilly-Partnerbuchhandlungen | Bestellinformationen | Kontaktieren Sie uns
International | Über O'Reilly | Tochterfirmen

© 2000, O'Reilly Verlag