Einführung in das X Window System

Autor: Dr. Burkhard Kirste

  1. Vorbemerkung
  2. Starten von X Clients, Arbeiten mit Fenstern
  3. einige Optionen
  4. Vorstellung einiger X Clients
  5. Client-Server-Modell, Display
  6. Konfigurierung von xterm
  7. Window Manager
  8. Hinweis auf einige weitere X Applikationen
  9. weiterführende Hinweise

Vorbemerkung

Das X-Window-System wurde am MIT (Massachusetts Institute of Technology in Cambridge/Mass.) entwickelt. Es handelt sich um ein netzwerkfähiges Fenstersystem, das im allgemeinen unter dem Betriebssystem Unix eingesetzt wird. Im folgenden wird angenommen, daß die Version X11 in der Revision 5 (X11R5) vorliegt. Ferner wird vorausgesetzt, daß der "Window Manager" OSF/Motif eingesetzt wird.

Starten von X Clients, Arbeiten mit Fenstern

Typische X-Anwendungen sind die "Augen" (xeyes) und die Uhr (xclock):

xeyes &
xclock &
Am Beispiel der Uhr sollen die typischen Elemente eines "X Window", also eines Fensters, unter dem Window Manager OSF/Motif (mwm oder 4Dwm) erläutert werden:

Der eigentliche Fensterinhalt, der den Hauptteil des Fensters einnimmt, ist von den "Dekorationen" umgeben. Diese haben ähnliches Aussehen und ähnliche Funktionalität wie unter MS Windows.

Oben findet man die Titelleiste, die von drei Schaltknöpfen umgeben ist. Bewegt man den Mauszeiger auf die Titelleiste, so kann man mit gedrückter linker Maustaste das Fenster verschieben. Links von der Titelleiste findet man das Systemmenü-Feld; Anklicken mit der Maus bringt das Systemmenü hervor:

Restore   Alt+F5
Move      Alt+F7
Size      Alt+F8
Minimize  Alt+F9
Maximize  Alt+F10
Lower     Alt+F3
Close     Alt+F4

Die Menü-Funktionen lassen sich außer durch Anklicken mit der Maus auch durch entsprechende Tastenbefehle erreichen. (Sofern man nicht mit PC-Xview unter MS Windows arbeitet, läßt sich das Systemmenü auch durch die Tastenkombination Alt+Leertaste hervorbringen.) Mit einem Doppelklick mit der linken Maustaste auf das Systemmenü-Feld beendet man die Applikation. (Hinweis: Falls das Fenster keine Titelleiste hat, kann man das Menü hervorbringen, indem man die Alt-Taste drückt und mit der rechten Maustaste in das Fenster klickt.)

Das Schaltfeld unmittelbar rechts neben der Titelleiste hat die Funktion "Minimize". Durch einen Mausklick darauf wird das Fenster auf Symbolgröße verkleinert, also zu einem Icon. Ein Icon läßt sich durch einen Maus-Doppelklick wieder auf die Normalgröße bringen.

Das Schaltfeld ganz rechts hat die Funktion "Maximize". Durch einen Mausklick darauf wird das Fenster auf Maximalgröße vergrößert, so daß es den gesamten Bildschirmbereich einnimmt. (Der Fensterinhalt wird im allgemeinen angepaßt, allerdings werden Schriften dabei nicht vergrößert.) Klickt man nochmals auf dieses Schaltfeld, so stellt sich die vorherige Fenstergröße wieder ein.

Individuelle Größenänderungen eines Fensters lassen sich am elegantesten mit Hilfe der Maus vornehmen, indem man einen Rand- oder Eckbereich mit der Maus "anfaßt" und mit gedrückter linker Maustaste daran zieht.

Oftmals findet man an den Fensterränder Rollbalken, mit deren Hilfe man den aktuell dargestellten Ausschnitt ändern kann.

einige Optionen

Es gibt vielfältige Möglichkeiten, die Eigenschaften von X-Applikationen zu beeinflussen. An dieser Stelle nur erwähnt werden sollen die systemweiten application defaults (app-defaults). Individuelle Änderungen kann ein Benutzer z.B. mit Hilfe einer Datei .Xdefaults in seinem Home-Verzeichnis vornehmen. Die dazu erforderlichen Einträge sind allerdings für einen Anfänger kryptisch und sollen deshalb hier nicht besprochen werden.

Hier soll die Verwendung von Optionen in der Kommandozeile behandelt werden. Beispielsweise für die Uhr:

xclock -digital -update 1 &

liefert anstelle der Analoguhr (default-Option -analog) eine Digitaluhr, die jede Sekunde aktualisiert wird ("update").

Auch die Geometrie des Fensters, also seine Größe und Lage, lassen sich beim Aufruf festlegen. Hierzu dient die Option -geometry. Die Geometrieparameter werden im allgemeinen in der Maßeinheit Pixel angegeben (beim xterm allerdings Spaltenzahl x Zeilenzahl). Die folgenden Beispiele befassen sich nur mit der Positionierung:

xclock -geometry +0+0 &    (links oben)
xclock -geometry -0+0 &    (rechts oben)
xclock -geometry +0-0 &    (links unten)
xclock -geometry -0-0 &    (rechts unten)

Setzt man anstelle einer Null eine andere Zahl ein, so ergibt sich ein entsprechender Offset von der betreffenden Ecke.

Viele (aber nicht alle) X-Applikationen geben in Kurzform ihre Optionen aus, wenn man sie mit der Option -help aufruft, z.B.:

xclock -help

Umfangreiche Informationen kann man der entsprechenden Unix "man page" entnehmen, also z.B. man xclock

Hinweis: Mit der Option -xrm ist es möglich, sämtliche "Ressourcen" beim Aufruf in der Kommandozeile zu setzen.

Vorstellung einiger X Clients

Vorab zwei kleine Beispiele:

xcalc & (ein Taschenrechner)
xcalendar & (ein Terminkalender)

Für die im folgenden vorgestellten Anwendungsprogramme werden Beispieldateien benötigt, die man während des Kurses im Verzeichnis /u/tmp/edvkurs findet:

cd /u/tmp/edvkurs

xmol: Molekülgraphik

xmol &

File Read (Alchemy) atropine.mol, Transform Rotate, rotieren des Moleküls durch Bewegen der Maus mit gedrückter linker Taste. Weitere Möglichkeiten aus dem Menü, z.B. Extras Measure (Wahl der Atome durch Anklicken mit der rechten Maustaste), Konvertierungen, Ausgabe von PostScript-Bildern. Weiteres siehe man xmol

xv: Betrachten, Bearbeiten und Konvertieren von Bildern

xv &

Mit der rechten Maustaste in das xv-Fenster klicken, woraufhin eine Dialogbox erscheint. Load toucan.gif. Das Bild läßt sich z.B. hinsichtlich Farbe, Größe und Ausschnitt editieren. Eine Abspeicherung in diversen Formaten ist möglich. Weiteres siehe man xv

ghostview: Betrachten von PostScript-Dokumenten

PostScript ist eine Seitenbeschreibungssprache, PostScript-Dokumente lassen sich auf PostScript-Druckern ausdrucken. Es kann erwünscht sein, ein PostScript-Dokument auf dem Bildschirm zu betrachten. Hierzu kann das Programm ghostview dienen. ghostview &

File Open tiger.ps Okay. Weiteres siehe man ghostview

Client-Server-Modell, Display

Das Client-Server-Modell ist heutzutage gängig in der Netzwerk-Technologie. Beispielsweise gibt es File Server oder Compute Server, die ihren Plattenspeicher bzw. ihre Rechenleistung dem Client zur Verfügung stellen. Auch das X Window System arbeitet nach diesem Prinzip. Es mag überraschend erscheinen, daß in diesem Fall das X-Terminal, also z.B. der PC mit der Emulationssoftware PC-Xview, als Server bezeichnet wird, während der Client eine X-Applikation ist, die z.B. auf dem Prozessor eines Unix-Hostrechners läuft.

In der Tat stellt aber der X Server seine Ressourcen zur Verfügung: Bildschirm, Tastatur und Maus. Er kommuniziert über das X-Protokoll mit dem Client. Dabei sendet der Client Befehle zum Aufbau der Graphik auf dem Bildschirm und empfängt die Eingaben, die mit der Tastatur oder der Maus getätigt wurden.

Aus der Tatsache, daß in einem Netzwerk gearbeitet wird, ergibt sich nun aber ein Problem: Es ist keineswegs selbstverständlich, daß die Graphikausgabe auf der Systemkonsole erfolgen soll! Um der X-Anwendung (also dem Client) mitzuteilen, wo die Bildschirmausgabe erfolgen soll, dient die Umgebungsvariable DISPLAY. Ihren Inhalt kann man sich folgendermaßen ansehen:

echo $DISPLAY

und erhält dann z.B. die folgende Ausgabe:

methionin.chemie.fu-berlin.de:0.0

oder allgemein: maschinenname:display_nr.screen_nr

Dabei ist maschinenname der Netzwerk-Name des Rechners, auf dem die Bildschirmausgabe erfolgen soll. Die z.Zt. hier eingesetzten Maschinen haben nur ein Display (Nr. 0) und einen "Screen" (Nr. 0); während der Zusatz ":0" (Display) obligatorisch ist, kann das Anhängsel ".0" weggelassen werden. Im obigen Beispiel hätte folgendes ausgereicht:

methionin:0

auf der Konsole reicht auch ein schlichtes :0 aus. Sofern man mit der tcsh oder der csh als "Shell" arbeitet, lautet das Kommando zum Setzen der Display-Variablen folgendermaßen:

setenv DISPLAY maschinenname:0
setenv DISPLAY methionin:0 (im Beispiel)
Wozu ist die Kenntnis dieses Sachverhalts wichtig? Die Systeme sind hier so konfiguriert, daß beim Einloggen an einer Konsole oder einem X-Terminal (über das Kontrollprogramm xdm) die Umgebungsvariable DISPLAY automatisch richtig gesetzt wird. Das gilt aber nicht mehr, wenn man mittels rlogin oder gar telnet den Host-Rechner wechselt! Bei einem X-Terminal wird die DISPLAY-Variable schon nach dem ersten Sprung falsch gesetzt, während an der Konsole (evtl.) durch einen Trick dafür gesorgt wird, daß die DISPLAY-Variable einen korrekten Inhalt hat.

Ein weiteres Problem ergibt sich, wenn wie hier aus Sicherheitsgründen mit einer Zugangskontrolle (access control) gearbeitet wird. Hierzu dient das Kommando xhost. Bei der Einstellung

xhost -

ist der Bildschirm für alle Rechner gesperrt, deren Zugriff nicht ausdrücklich erlaubt ist:

xhost +maschinenname

Eine weitere Sicherheitsstufe ergibt sich durch Einschalten von "xauthority", wozu eine Datei namens .Xauthority im Home-Verzeichnis gehört.

Konfigurierung von xterm

Ein xterm läßt sich auch nach dem Start noch in vielerlei Hinsicht konfigurieren, indem man die Control- (Strg-) Taste und eine der Maustasten drückt. (Hinweis: bei manchen Systemen muß man anstelle der mittleren Maustaste gleichzeitig die linke und die rechte Maustaste drücken!)

Control+rechte_Maustaste
Größe der Schrift (des Fonts) und damit verbunden des xterm-Fensters
Control+mittlere_Maustaste
(bzw. Control+linke_und_rechte_Maustaste)
u.a. Rollbalken, Reset
Control+linke_Maustaste
u.a. Anlegen einer Log-Datei, in der die Sitzung mitprotokolliert wird. Sofern kein Name vereinbart wurde, erscheint die Log-Datei als XtermLog.----- im Home-Verzeichnis.

Weiteres siehe man xterm

Window Manager

Außer dem Motif Window Manager mwm gibt es noch diverse andere. Allerdings kann immer nur ein Window Manager in Aktion sein. Sofern die Sitzung nicht am Window Manager "hängt", ist es möglich, den alten Window Manager "abzuschießen" und durch einen anderen zu ersetzen. Zur Beendigung des alten Window-Managers kann man das Unix-Kommando kill benutzen oder einfacher (falls vorhanden) zap:

zap mwm

Anschließend kann man einen anderen Window Manager starten, z.B. den twm:

twm &

Hierbei sind Dekorationen und Funktionalitäten wesentlich spartanischer als beim mwm. Auf SGI-Maschinen gibt es noch den 4Dwm, der allerdings nur dann zu empfehlen ist, wenn "GL", also die Graphikbibliothek von SGI zur Verfügung steht, d.h., an der Konsole.

Hinweis auf einige weitere X Applikationen

Im folgende seien einige Beispiele für interessante X-Applikationen erwähnt:
xfig
Anfertigung von Zeichnungen
xmgr
Graphiken zur Datenanalyse
xgraph
Anzeige von x,y-Graphiken (z.B. Spektren) auf dem Bildschirm. Die Eingabedaten müssen als xy-Tabelle im ASCII-Format vorliegen.
Mosaic (xmosaic)
weltweites Hypertext-Informationssytem
xarchie
Anfrage bei einem "Archie Server" nach Dateien in Anonymous FTP Servern

weiterführende Hinweise


Burkhard Kirste, 1993/12/02