[OpenBSD]

[FAQ-Index] [Zum Kapitel 10 - Systemverwaltung] [Zum Kapitel 12 - Hardware- und Plattformspezifische Fragen]

11 - Das X Fenstersystem


Inhaltsverzeichnis


11.1 - Einführung in X

Das X Fenstersystem (»X Window System«; manchmal nur »X« oder fälschlicherweise »X Windows« genannt) ist eine grafische Umgebung, die Grafikanwendungen unter OpenBSD und anderen Unix-basierten Systemen benötigte Funktionen anbietet. X selbst stellt aber nur wenig bereit: Man muss ebenfalls einen »Window Manager« haben, um eine Benutzerschnittstelle zu schaffen. Das meiste der sogenannten »Personality« von X wird vom Windowmanager ausgehen statt von X selbst. OpenBSD bringt freie Versionen der fvwm(1) und cwm(1) Fenstermanager mit. Wenn du möchtest, kannst du auch einen der anderen Windowmanager verwenden, die als Pakete bereitgestellt werden. Verwende das Suchwort »window manager«, um eine Liste der vielen verfügbaren Windowmanager zu erhalten.

X wird als »Client-Server«-strukturiertes Protokoll aufgefasst, obwohl die Terminologie manchmal etwas verwirrend ist. Der Computer, der die Grafik auf dem Bildschirm anzeigt, ist der »X-Server«. Die Anwendung, die dem X-Server mitteilt, was auf dem Bildschirm angezeigt werden soll, ist der »X-Client«, selbst wenn es sich hierbei um einen leistungsstärkeren Computer in einem Rechenzentrums handelt. Dieses Modell kann genutzt werden, um rechenintensive Anwendungen (X-Clients) auf sehr leistungsstarken Maschinen auszuführen, die den X-Server als Benutzerschnittstelle verwenden, der auf einer kleinen und stromsparenden Maschine auf deinem Schreibtisch läuft.

Es ist möglich, X-Clients auf einem System auszuführen, das über keine grafische Ausgabemöglichkeit verfügt. Man könnte zum Beispiel eine Anwendung (den X-Client) auf einer mvme88k ausführen und die Ausgabe auf einem Bildschirm einer Alpha anzeigen lassen (der X-Server). Da X ein klar definiertes und plattformübergreifendes Protokoll ist, ist es sogar möglich, eine X-Anwendungen auf einer (beispielsweise) Solaris-Maschine auszuführen und auf einer OpenBSD-Maschine anzeigen zu lassen.

Der Client und der Server können auch auf dem gleichen System laufen. Im Rest dieses Kapitels gehen wir hiervon aus.

11.1.1 - Wieviel Rechenleistung benötige ich, um X verwenden zu können?

X selbst ist ein recht großes Programm, sodass ein schneller Rechner bestens geeignet ist, wenn du es regelmäßig an- und ausstellst. Wenn es aber erst einmal läuft, dann reicht auch ein sehr bescheidener Rechner. Eine Plattformen benötigen X grundsätzlich für eine responsive Bildschirmausgabe, sogar für die reinen Texts. Diese Plattformen, zu denen sparc und sparc64 gehören, wurden für die Benutzung über eine grafische Oberfläche entworfen, und die Performance ihrer Textkonsolen ist sehr schlecht.

Soweit zur Grundlage. X wird normalerweise gestartet, um X-Anwendungen aufrufen zu können. Einige X-Applikationen sind sehr genügsam, andere scheinen sich hingegen alle Rechenleistung und verfügbaren RAM unter den Nagel zu reißen. Selbstverständlich gibt es auch Leute, die X verwenden, um eine große Anzahl xterm(1)s aufzurufen - hierfür reicht auch sehr schlichte Hardware.

11.1.2 - Kann ich auch Grafiken ohne X verwenden?

Angenommen dir genügen ASCII-Grafiken nicht, so musst du auf eine Art von Framebuffer-Konsolentreibern zurückgreifen. Einige Betriebssysteme stellen diese zur Verfügung, doch gibt es momentan keine für OpenBSD. Unter den Entwicklern hat auch niemand großes Interesse daran.

11.2 - Konfiguration von X

Gute Neuigkeiten: Für die überwiegende Mehrheit an Hardware der meisten Plattformen benötigt X überhaupt keine Konfiguration, sondern funktioniert einfach.

Die Details der manuellen Konfiguration von X unterscheidet sich deutlich zwischen den einzelnen Plattformen. In allen Fällen gibt es aber Anleitungen und andere plattformspezifische Informationen in /usr/X11R6/README, die auf einem installierten System vorgefunden werden kann.

Viele Plattformen benötigen den X-Aperturetreiber xf86(4), der direkten Zugriff auf den Speicher und die Ein-/Ausgabeports des VGA-Boards und der PCI-Konfigurationsregister ermöglicht, was für die X-Server eine Voraussetzung ist. Dieser Treiber muss aktiviert werden, bevor er genutzt werden kann - entweder indem mit »Yes« auf die Frage

Do you expect to run the X window System [no]
geantwortet wird (diese ist während der Installation zu sehen) oder indem man machdep.allowaperture in der /etc/sysctl.conf auf einen der Plattform entsprechenden Wert setzt (dieser darf nicht 0 sein) und neustartet, da diese Sysctl aus Sicherheitsgründen nach dem Bootvorgang nicht mehr geändert werden kann. Die Verwendung des Treibers zieht Sicherheitsbedenken nach sich. Du solltest ihn nicht aktivieren, wenn du nicht unbedingt auf ihn angewiesen bist.

11.2.1 - alpha

/usr/X11R6/README für alpha.

Setze machdep.allowaperture=1 in /etc/sysctl.conf.

Die TGA- und einige VGA-Karten werden unterstützt. Es sollte keine weitere Konfiguration notwendig sein.

11.2.2 - amd64

/usr/X11R6/README für amd64.

Setze machdep.allowaperture=2 in /etc/sysctl.conf.

Für die überwiegende Mehrheit von Benutzern wird X auf amd64 erfolgreich automatisch konfiguriert, sodass keinerlei weitere Konfiguration nötig ist. WENN eine weiterführende Konfiguration nötig ist, benutze X -configure wie weiter unten beschrieben.

11.2.3 - armish

Es stehen keine X-Server bereit, nur X-Clients.

11.2.4 - hp300

/usr/X11R6/README für hp300.

11.2.5 - hppa

Es stehen keine X-Server bereit, nur X-Clients.

11.2.6 - i386

/usr/X11R6/README für i386.

Setze machdep.allowaperture=2 in /etc/sysctl.conf.

Für die überwiegende Mehrheit von Benutzern wird X auf i3864 erfolgreich automatisch konfiguriert, sodass keinerlei weitere Konfiguration nötig ist. WENN eine weiterführende Konfiguration nötig ist, benutze X -configure wie weiter unten beschrieben.

11.2.7 - landisk

Es stehen keine X-Server bereit, nur X-Clients.

11.2.8 - loongson

Es wird keine Konfiguration benötigt.

11.2.9 - luna88k

Es stehen keine X-Server bereit, nur X-Clients.

11.2.10 - macppc

/usr/X11R6/README für macppc.

Setze machdep.allowaperture=2 in /etc/sysctl.conf.

Unterstützte Macintosh-PPC-Systeme können auf zwei unterschiedliche Weisen verwendet werden: »beschleunigt« oder »Framebuffer« (unbeschleunigt).

Im »Framebuffer«-Modus wird das System mit 8 Bits pro Pixel arbeiten und die Videoauflösung wird von der Macintosh-Umgebung geregelt. Das bedeutet, dass du eine kleine MacOS-Partition auf deiner Platte belassen möchtest, um von dort aus diese Einstellungen anzupassen. Dieser Modus hat den Vorteil, dass er »einfach funktioniert«, doch kann es frustrierend einschränkend sein (zum Beispiel setzt eine Änderung der Auflösung einen Boot von MacOS voraus).

Wenn dein Macintosh ein ATI-basiertes Videosystem hat, kannst du es mit einem beschleunigten X-Server verwenden. Dieser liefert bessere Geschwindigkeiten und mehr Kontrolle in deiner OpenBSD-Umgebung. Die NVIDIA-Grafikkarten einiger macppc-Systeme werden auch in vielen Fällen funktionieren. Die Datei README hat Details über die Konfiguration beschleunigter Treiber, starte daher mit der dort gezeigten Beispieldatei.

Während die README-Datei detailliert auf die Verwendung der Standardmaus von Apple mit nur einer Taste unter X eingeht, wird dir dringend dazu geraten, dir einfach eine USB-Maus eines Drittanbieters mit drei oder mehr Knöpfen zu kaufen - es sei denn, du verwendest einen Laptop.

Röhrenmonitor-iMacs und X

iMacs haben einen (für die heutige Zeit) sehr ungewöhnlichen Röhrenmonitor, da dieser über eine feste horizontale Ablenkfrequenz verfügt. Der Versuch, eine horizontale Bildaufbaugeschwindigkeit jenseits eines sehr engen Bereichs zu nutzen, wird dazu führen, dass der Monitor nicht leuchtet. Die folgenden Zeilen, hinzugefügt zu dem Abschnitt Section "Monitor" der Datei xorg.conf, scheint viele Röhrenmonitor-basierte iMacs aus dem Bereich 333 MHz bis 500 MHz (und vielleicht mehr) dazu zu bringen, ordentlich zu laufen:
        HorizSync       60.0 - 60.0
        VertRefresh     43.0 - 117.0 
Vielleicht möchtest du die untere Grenze von VertRefresh auf Werte beschränken, die du eher akzeptabel findest, zum Beispiel 70.

11.2.11 - mvme68k

Es stehen keine X-Server bereit, nur X-Clients.

11.2.12 - mvme88k

Es stehen keine X-Server bereit, nur X-Clients.

11.2.13 - sgi

X läuft auf dem O2 Bildpuffer (»frame buffer«) des Systems im unbeschleunigten Modus.

11.2.14 - sparc

/usr/X11R6/README für sparc.

Mit nur einem unterstützten Framebuffer wird keine Konfiguration benötigt. Wenn du eine Multihead-Konfiguration verwenden möchtest, wirf einen Blick auf die zuvor genannte README-Datei für weitere Details.

Die Auflösung wird von der Firmware eingestellt, bevor OpenBSD bootet.

11.2.15 - sparc64

/usr/X11R6/README für sparc64.

Die meisten einfachen Konfigurationen »laufen einfach«. Tut es deine nicht, oder solltest du wünschen raffiniert zu werden, lies die oben angeführte README-Datei.

11.2.16 - vax

/usr/X11R6/README für vax.

Der X-Server funktioniert momentan nur auf VAXstation-4000-Modellen mit einem lcg(4)- oder lcspx(4)-Framebuffer.

11.2.17 - zaurus

/usr/X11R6/README für zaurus.

Es wird keine Konfiguration benötigt, X »funktioniert einfach«.

11.3 - Konfiguration von X auf amd64 und i386

Wenn du noch nicht versucht hast, X einfach zu starten, so warte! Produziere für dich selbst keine Arbeit, wenn du nicht musst! Die meisten Nutzer von i386 und amd64 werden auch ohne manuelle Konfiguration schlichtweg ein funktionierendes X vorfinden.

11.3.1 - Konfiguration von X.Org

Manchmal funktioniert X nicht »einfach so« wie gewünscht, und manchmal muss man Dinge anpassen, obwohl sie funktionieren.

Funktioniert X nicht wie gewünscht auf einem System, so muss man eine Konfigurationsdatei erzeugen. Ein guter Startpunkt (und manchmal bereits das Ziel!) ist das Ausführen von Xorg(1) im Modus »X -configure«. Letzterer wird alle verfügbaren Grafikkartentreiber laden, andere Hardware austesten, und, basierend auf dem, was vorgefunden wurde, eine Datei xorg.conf schreiben, die funktionieren kann, aber nicht muss. Selbst wenn sie nicht funktionieren sollte, wird sie immer noch als nützliche Grundlage für eine dienen, die funktioniert wie gewünscht.

Eine altehrwürdige Methode zur Konfiguration von X ist die Benutzung deiner favorisierten Suchmaschine, um nach jemanden zu suchen, der dein Problem bereits für dich gelöst hat. Ebenfalls bemerkenswert ist, dass die xorg.conf-Dateien anderer UNIX-ähnlicher Betriebssysteme oft nützliche Tipps darüber enthalten, was letztendlich benötigt wird, um X auf ähnlicher Hardware zum Laufen zu bringen. Obwohl dies kein schlechter Weg ist, wird auf diese Methode hier nicht näher eingegangen.

11.3.2 - Unsere Beispielmaschine

Als Demonstration, wie man X einrichtet, werden wir ein altes System mit einem Celeron 400 MHz und einem AGP-Steckplatz verwenden. Bei der Grafikkarte handelt es sich um eine alte AGP-Karte, die wie folgt in der Dmesg aufgelistet wird:
vga1 at pci1 dev 0 function 0 "3DFX Interactive Banshee" rev 0x03
Dies war einmal eine Highend-Grafikkarte mit 16 MB RAM, doch wird sie heutzutage von »gängigen« Betriebssystemen fast nicht mehr unterstützt. Des Weiteren wird ein Sony Multiscan G400 19" CRT als Monitor angeschlossen. Es wäre schön, wenn dieser Monitor bei einer Auflösung von 1280x1024, einer angenehmen Bildwiederholrate und 24 Bit Farbtiefe genutzt werden kann.

Nachdem OpenBSD mit X installiert wurde (wir haben sichergestellt, dass der Aperturetreiber im Kernel aktiviert wurde) werfen wir zuerst einen Blick auf die automatische Erkennung und Konfiguration von X.Org - vielleicht haben wir Glück. So, wir loggen uns einfach ein und rufen startx(1) auf. Der Bildschirm wird für ein paar Momente schwarz, dann erhalten wir den »Schachbrett«-Hintergrund von X, den »X«-Cursor und ein xterm-Fenster.

Es funktioniert!

Mehr oder weniger. Obwohl das System voll einsatzfähig ist, scheint es keine Funktionalitäten des Monitors erkannt zu haben und läuft auf einer eindeutig zu niedrigen Auflösung (640x480). Wir hoffen mal, dass wird das noch besser hinbekommen - damit meine ich sehr viel besser. Das heißt also, dass wir unsere eigene xorg.conf-Datei erstellen müssen.

Wir verwenden die »X -configure«-Methode, um eine Grundlage für unsere xorg.conf-Datei zu schaffen. Du musst folgenden Befehl als root ausführen:

# X -configure
 [...]
Your xorg.conf file is /root/xorg.conf.new

To test the server, run 'X -config /root/xorg.conf.new'
Im Übrigen muss die Meldung ernst genommen werden - verwende den vollständigen Pfad zu deiner xorg.conf.new-Datei, selbst wenn du dich im gleichen Verzeichnis befindest. Dies nicht zu tun führt dazu, dass X(7) die Datei nicht findet, und ohne weitere Meldung die Standardkonfiguration benutzen; und wenn diese funktioniert hätte, dann hättest du diesen Vorgang ja nicht durchgeführt! Es kann die Fehlersuche deutlich vereinfachen. Vertraue uns in diesem Punkt.

Wir führen also aus, was uns gesagt wird:

# X -config /root/xorg.conf.new
Alles was wir kriegen ist ein schwarzes Bild. Dabei hat es so gut angefangen ...

Nun ist ein guter Zeitpunkt gekommen, um über die unterschiedlichen Möglichkeiten zu sprechen, X zu beenden, wenn es auf diese Weise gestartet wurde. Nach Vorzug sortiert sind es:

Zum Glück verrichtet STRG-ALT-Backspace erfolgreich seine Dienste und wir befinden uns wieder in der Kommandozeile. Nun müssen wir herausfinden, was fehlgeschlagen ist. Zuerst sollten wir nachsehen, was Xorg über die Hardware denkt. Das können wir in der Datei /var/log/Xorg.0.log nachlesen. In diesem Fall denkt X, dass alles einwandfrei läuft - keine offensichtlich schwerwiegenden Fehler werden in der Logdatei aufgeführt (Zeilen, die mit »EE« beginnen, sind Fehler).

An dieser Stelle kommt unser Wissen über die Hardware ins Spiel. Wenn wir das System an einen anderen Monitor anschließen, während ein schwarzes Bild angezeigt wird, gibt er uns eine »Sync. out of Range«-Meldung auf dem Bildschirm aus. Offensichtlich scheint die Konfiguration von X nicht mit diesem Monitor zu funktionieren. Eventuell läuft diese Konfiguration auf KEINEM Monitor, wenn ein Videomodus ausgewählt wurde, der mit der Karte nicht zusammen funktioniert (beachte bitte, dass X sich am Chip auf der Karte und dessen Leistung orientiert - nicht daran, wie der Hersteller die Komponenten zusammengestellt hat). Unterschiedliche Monitore werden verschieden reagieren, wenn die Rate falsch ist. Einige werden versuchen, das Bild anzuzeigen, andere werden in den Energiesparmodus wechsel, andere schreckliche Geräusche von sich geben und wieder andere werden hilfreiche Meldungen auf dem Bildschirm angeben. Dieser Bildschirm scheint zu keiner der zuvor genannten Arten gehören. Wir merken uns einfach, diesen Monitor NIE wieder für grundlegende X-Konfigurationen zu verwenden.

Während wir durch die erstellte xorg.conf.new-Datei gehen, sehen wir folgenden Eintrag:

Section "Monitor"
        #DisplaySize      370   270     # mm
        Identifier   "Monitor0"
        VendorName   "SNY"
        ModelName    "SONY CPD-G400"
 ### Comment all HorizSync and VertSync values to use DDC:
        HorizSync    30.0 - 107.0
        VertRefresh  48.0 - 120.0
        Option      "DPMS"
EndSection
Zum Testen werden wir einen DDC-Monitor (»Data Display Channel« - damit kann der Monitor dem Computer und der Grafikkarte mitteilen, wozu er in der Lage ist) verwenden und sehen, was geschieht. Dieses Mal erhalten wir wieder das Schachbrettmuster von X und einen beweglichen Cursor. Das ist alles, was wir von X erwarten, wenn wir es so aufrufen (wir beenden X mit dem STRG-ALT-Backspace-Trick von vorhin). Es ist (wieder) eine niedrige Auflösung, doch es funktioniert. Wir können also davon ausgehen, dass wir ein Raten- und Auflösungsproblem haben. Wir werden zuerst die »HorizSync«- und »VertRefresh«-Zeilen wiederherstellen, da wir die Spezifikationen des Monitors im Internet gefunden und überprüft haben.

Wir werden nun versuchen, Xorg auf eine bestimmte Auflösung zu trimmen und zu sehen, ob wir damit Glück haben. In Section "Screen" der xorg.conf-Datei werden wir ein paar Zeilen hinzufügen, die hier fett gedruckt sind:

Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
        DefaultDepth   24
        SubSection "Display"
                Viewport   0 0
                Depth     1
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     4
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     8
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     15
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     16
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     24
                Modes	"1280x1024"
        EndSubSection
EndSection
Diese beiden Änderungen teilen X mit, dass wir eine Farbtiefe von 24 Bit verwenden möchten und für 24 Bit Farbtiefe eine Auflösung von 1280x1024. Da keine andere Auflösung unter »Depth 24« aufgelistet ist, wird das System dazu gezwungen sein, diese Auflösung zu verwenden.

Wir testen die neue Konfiguration und ... ERFOLG! Wir scheinen ein schönes und hoch auflösendes Display zu besitzen. Beachte, dass wir NUR ein Schachbrettmuster (das sehr gut geeignet ist, um die Qualität deines Bildschirms zu prüfen und um LCDs zu kalibrieren [»root weave«]) und einen beweglichen Cursor erwarten. An diesem Punkt erwarten wir noch keine voll einsatzfähige Oberfläche.

Nun werden wir die xorg.conf-Datei installieren, sodass wir den alltäglichen Aufruf von X testen können.

# cp xorg.conf.new /etc/X11/xorg.conf
Wir können nun versuchen, X mit dem normalen startx(1)-Kommando zu starten. Es funktioniert!

Es wäre auch nicht schlecht, zu überprüfen, ob es sich wirklich um die Auflösung und Farbtiefe handelt, die wir angestrebt haben. Das ganze soll selbstverständlich auch mit einer angenehmen Bildwiederholrate angezeigt werden. Wir können dies mit den Kommandos xrandr(1) und xdpyinfo(1) überprüfen. Neben anderen Informationen liefert xdpyinfo(1):

    [...]
screen #0:
  print screen:    no
  dimensions:    1280x1024 pixels (433x347 millimeters)
  resolution:    75x75 dots per inch
  depths (7):    24, 1, 4, 8, 15, 16, 32
  root window id:    0x44
  depth of root window:    24 planes
    [...]
Die Antwort ist also »ja, wir verwenden 1280x1024 mit einer Tiefe von 24 Ebenen (Bits).«

Folgende Ausgabe liefert xrandr(4):

 SZ:    Pixels          Physical       Refresh
*0   1280 x 1024   ( 433mm x 347mm )  *85   75   60
 1   1280 x 960    ( 433mm x 347mm )   85   60
    [...]
Das sagt uns, dass wir mit einer Bildwiederholrate von 85 Hz arbeiten. Die meisten Anwender empfinden dies als eine sehr angenehme Einstellung.

11.3.3 - Was ist, wenn es nicht so »einfach« ist?

Manchmal passen Dinge einfach nicht zusammen. Hier sind ein paar Tipps.

11.4 - X starten

Es gibt zwei übliche Wege, X auszuführen:

11.4.1 - nach Bedarf:

Melde dich wie gewöhnlich an einer Konsole an und führe dann startx(1) aus.

11.4.2 - boote direkt in X:

Dies wird mit xdm(1) realisiert, dem X Display Manager. xdm(1) wird als root ausgeführt (normalerweise über rc) und zeigt einen Anmeldeprompt an. Nach erfolgreicher Anmeldung wird eine X-Sitzung für diesen Benutzer erstellt. Wenn diese X-Sitzung beendet werden soll (zum Beispiel über STRG-ALT-Backspace), wird xdm(1) wieder die Kontrolle übernehmen und den Benutzer erneut nach seinen Anmeldedaten fragen. Aus diesem Grund sollte xdm(1) NICHT von /etc/rc.conf.local aus aufgerufen werden, bis du dir sicher bist, dass X so läuft wie du es dir gedacht hast - ansonsten wird deine Maschine sehr schlecht zu warten sein! (Schlimmster Fall: Boote in den Singleuser-Modus als hättest du dein Passwort vergessen und editiere die xdm_flags-Zeile deiner /etc/rc.conf.local-Datei.)

Auf einigen Plattformen musst du das für die Konsolen zuständige getty(8) deaktivieren, um xdm(1) starten zu können.

11.5 - X anpassen

11.5.1 - Einführung

Die standardmäßige X-Umgebung von OpenBSD ist voll funktionsfähig, aber du könntest es anpassen wollen. Du könntest das Muster oder die Farbe des Hintergrunds ändern wollen, oder es könnte dir einfallen, den Fensterverwalter (das Programm, das deine X-Umgebung am meisten definiert) zu ändern, oder aber welche Programme automatisch gestartet werden, wenn X gestartet wird.

Der Standard-Fensterverwalter von OpenBSD ist fvwm(1). fvwm ist ein guter Allzweck-Fensterverwalter, aber keineswegs deine einzige Auswahl; es ist noch nicht einmal der einzige Fensterverwalter, der standardmäßig in OpenBSD vorhanden ist (siehe cwm(1) und twm(1)). Eine große Auswahl an Fensterverwaltern ist außerdem als Paket verfügbar.

Ähnlich den Systemstart-Skripts folgt X einem definierten Ablaufplan, um die Benutzerumgebung einzurichten. Genauer gesagt existieren mehrere solche Startprozedere; welchem gefolgt wird, hängt davon ab, wie X gestartet wird. Zu verstehen, wie X startet, wird dir helfen zu verstehen, wie deine Arbeitsumgebung exakt so anzupassen ist, dass es deinen Wünschen entspricht.

Man kann die Umgebung sowohl auf System-, als auch auf Benutzerebene anpassen. Es ist vielleicht besser, Änderungen auf Benutzer-, als auf Systemebene durchzuführen, da die Benutzerskripte in dem Heimatverzeichnis des Benutzers gespeichert werden, sodass weniger Dateien vereinigt werden müssen, wenn du dein OpenBSD auf eine neue Version nachrüstest (»upgrade«). Die systemweit gültigen Standards befinden sich in /etc/X11 und werden ursprünglich von dem xetcXX.tgz Dateiset installiert, welches von dem vorgeschlagenen Nachrüstprozedere nicht erfaßt wird, d. h. werden Änderungen an den systemweiten Daten vorgenommen, so werden diese zwar bestehen, jedoch wird es eventuell nötig sein, diese Änderungen manuell in spätere Versionen der entsprechenden Dateien einfließen zu lassen.

11.5.2 - startx(1)-Start

startx(1) sucht die Datei .xinitrc in dem Heimatverzeichnis des Benutzers. .xinitrc ist normalerweise ein Shellskript, der so viele X »Klienten« (Anwendungen, die X benutzen) starten kann wie gewünscht. Wird dieser Skript beendet, schließt sich der X-Server. Im Allgemeinen sollten die meisten Programme, die von diesem Skript gestartet werden, im Hintergrund laufen, obgleich das Letzte im Vordergrund laufen sollte (typischerweise ist dies der Fensterverwalter); wird es beendet, beendet sich der Skript, und X wird geschlossen.

Im einfachsten Fall braucht es aus nicht mehr als dem Namen des gewünschten Fensterverwalters zu bestehen, der ausgeführt werden soll:

cwm
Oder man kann ein wenig ausgefallener sein:
xconsole -geometry -0+0 -fn 5x7 &
oclock -geometry 75x75-0-0 &
xsetroot -solid grey &
cwm
Dies startet die xconsole(1), die eine Kopie ein jeden Texts zeigt, den der Kernel auf die Konsole geschrieben hätte (die jetzt ja von einem grafischen Bildschirm eingenommen wird), eine analoge Uhr, oclock(1), und konfiguriert den Hintergrund zu einer geschlossenen grauen Fläche mit Hilfe von xsetroot(1), und dies alles bevor der cwm(1) Fensterverwalter gestartet wird. Beachte, wie einzig der Fensterverwalter nicht durch das Anhängen eines »&«-Zeichens »in den Hintergrund geschickt wird«. Dies bedeutet, das X solange laufen wird, bis cwm(1) beendet wird.

Besitzt das Heimatverzeichnis eines Benutzers keine Datei .xinitrc, so wird die des Systems, /etc/X11/xinit/xinitrc, benutzt. Diese Datei kann dich mit einigen zusätzlichen Ideen für deinen eigenen .xinitrc-Skript versorgen.

11.5.3 - xdm(1)-Start

xdm(1) wird normalerweise von den Systemstart-Skripten gestartet, aber für Testzwecke (empfohlen, es sei denn du weißt, dass deine X-Konfiguration in Ordnung ist) kann man ihn als root starten.

xdm(1) besitzt viel mehr Funktionalität als hier besprochen wird, aber für unsere Zwecke gilt, dass xdm dem Benutzer einen Anmeldebildschirm präsentieren wird, den Namen und das Passwort eines Benutzers abfragen und verifizieren wird, um letztlich dem Benutzer seine X-Umgebung zur Verfügung zu stellen. Beendet sich X, entweder absichtlich oder aus Versehen, so wird xdm es erneut starten. Dies ist der Grund, warum man sicherstellen sollte, dass X korrekt konfiguriert ist, bevor man xdm(1) benutzt, und in jedem Fall bevor xdm(1) beim Systemstart gestartet wird, das es ansonsten schwierig werden könnte, die Kontrolle über die Maschine zu erlangen.

Wenn xdm(1) startet, führt es /etc/X11/xdm/Xsession aus; dies wiederum wird versuchen, eine Datei .xsession in dem Heimatverzeichnis des Benutzers zu finden. D. h., wünschst du die Änderung deines standardmäßigen Fensterverwalters, führe ihn (und möglicherweise andere Sachen) in .xsession aus. Wieder gilt, dass alle Programme, die mit X gestartet werden sollen (zum Beispiel drei xterm(1)s), hier platziert werden müssen, dass alle im Hintergrund auszuführen sind, ausgenommen des Fensterverwalters, der, wie zuvor, wenn beendet, die X-Sitzung ebenfalls beendet. In letzterem Fall wird xdm(1) X erneut starten und einen Anmeldebildschirm präsentieren.

11.5.4 - Das Ausprobieren eines neuen Fensterverwalters

Man kann einen speziellen Fensterverwalter beim Start von X ausführen, ohne jegliche Standardwerte anzupassen, und zwar so:
$ startx /usr/local/bin/fluxbox
Verschiedene Fensterverwalter (einschließlich cwm(1) und fvwm(1)) bieten die Möglichkeit der Änderung des Fensterverwalters vom Fleck weg, ohne das X oder eine andere Anwendung neu gestartet werden müssen. Der neue Fensterverwalter ersetzt den alten; das Beenden des neu gestarteten Fensterverwalters beendet X, und führt nicht zum Vorherigen zurück. fvwm(1) erlaubt das Starten eines anderen Fensterverwalters durch einen Linksklick auf den Hintergrund (»root window«), der Auswahl von »(Re)Start« und dann des gewünschten Fensterverwalters (es ist allerdings anzumerken, dass dafür die alternativen Fensterverwalter in der .fvwmrc-Datei des Benutzers angeführt sein müssen [die systemweiten Standards sind in /usr/X11R6/lib/X11/fvwm/.fvwmrc]). cwm(1) erlaubt das Ausführen eines anderen Fenstermanagers durch Nutzung der Tastenkombination Ctrl-Alt-w (Steuerungstaste-Meta-w), und Eingabe des Verwalters, zu dem gewechselt werden soll.

Sobald du den Fensterverwalter gefunden hast, den du magst, kannst du ihn als zuletzt auszuführendes Programm in deine Startskripte schreiben, wie oben beschrieben.

[FAQ-Index] [Zum Kapitel 10 - Systemverwaltung] [Zum Kapitel 12 - Hardware- und Plattformspezifische Fragen]


[back] www@openbsd.org
$OpenBSD: faq11.html,v 1.39 2012/11/07 09:26:25 ajacoutot Exp $