Fink

Running X11 - 4. X11 starten

4.1 Den Display-Server starten

X11 kann unter Mac OS X auf drei Arten gestartet werden.

Die erste Art ist die X11-Applikation zu starten, d. h. ein Doppelklick auf das Programm im Finder. Unter 10.5-10.7 ist das typischerweise /Applications/Utilities/X11(.app), oder /Applications/Utilities/XQuartz(.app), wenn man Xquartz benutzt (also unter 10.8).

Die zweite Art ist die Eingabe des Kommandos startx in einem Terminalfenster.

Die dritte Art ist, einfach ein Programm in einem Terminalfenster zu starten, das X11 benötigt. Ab 10.5 startet dies automatisch einen X11-Server.

4.2 Modifikationen des Starts über das .xinitrc.d Verzeichnis

Für derzeitige Versionen von X11 ist die bevorzugte Methode seinen Start zu modifizieren, ein Verzeichnis .xinitrc.d im $HOME Verzeichnis anzulegen und mit ausführbaren Skripten zu füllen, die die Programme starten, die man beim Start haben möchte, einschließlich Fensterverwaltungen.

Wichtig: Hinter Programmen, die keine Fensterverwaltungen sind, muss ein '&'stehen. Andernfalls blockieren sie die Ausführung anderer Programme, auch Fensterverwaltungen. Fensterverwaltungen dürfen kein '&' hinter ihrem Namen haben, ansonsten bleiben sie nicht laufen, außer es gibt eine Sessionverwaltung, die nach ihr startet. Das Programm xinit interpretiert diese Situation so, dass nach dem Ende der Session auch der X-Server beendet werden soll.

Beispiel: Soll die Fensterverwaltung WindowMaker mit dem Start des X11-Server starten, geben sie folgende Komanndos ein:

mkdir -p $HOME/.xinitrc.d
nano $HOME/.xinitrc.d/94-wmaker.sh

Sie können auch ihren Lieblingseditor statt nano verwenden. Tragen sie folgenden Inhalt in 94-wmaker.sh ein:

. /opt/sw/bin/init.sh
quartz-wm --only-proxy &
exec wmaker

Speichern sie die Datei und führen sie folgendes Kommando aus:

chmod a+x 94-wmaker.sh

Damit wird das Skript ausführbar. (quartz-wm --only-proxy wird in einem späteren Abschnitt diskutiert).

Beispiel: Soll das Programm xlogo mit dem Start des X11-Server starten, geben sie folgende Komanndos ein:

mkdir -p $HOME/.xinitrc.d
nano $HOME/.xinitrc.d/74-xlogo.sh

(wie oben: wenn sie wollen, nehmen sie ihren Lieblingseditor). Tragen sie folgenden Inhalt in 74-xlogo.sh ein:

. /opt/sw/bin/init.sh
xlogo &

Speichern sie die Datei und führen sie folgendes Kommando aus:

chmod a+x 74-xlogo.sh

Damit wird das Skript ausführbar.

Erstellen sie die beiden Skripts, resultiert daraus, dass beim Start von X11 das Programm xlogo ausgeführt wird und dann die Fensterverwaltungwmaker.

Beispiel: Vollständige GNOME-Session. Erzeugen sie die ausführbare Datei 94-gnome-session.sh mit folgendem Inhalt:

. /opt/sw/bin/init.sh
quartz-wm --only-proxy &
metacity &
exec gnome-session

Beispiel: "rootless" GNOME-Session. Erzeugen sie die ausführbare Datei 94-gnome-panel.sh mit folgendem Inhalt:

. /opt/sw/bin/init.sh
quartz-wm --only-proxy &
metacity &
exec gnome-panel

Beispiel: KDE3. Erzeugen sie die ausführbare Datei 94-startkde.sh mit folgendem Inhalt:

. /opt/sw/bin/init.sh
exec startkde

(startkde startet automatisch eine Fensterverwaltung und nutzt quartz-wm --only-proxy)

Beispiel: KDE4. Erzeugen sie die ausführbare Datei 94-startkde.sh mit folgendem Inhalt:

. /opt/sw/bin/init.sh
exec /opt/sw/opt/kde4/x11/bin/startkde

Beachte:

4.3 Die Datei .xinitrc

Notiz: Es ist besser, mit Skripten im Verzeichnis $HOME/.xinitrc.d zu arbeiten.

Existiert eine Datei mit dem Namen .xinitrc im Heimatverzeichnis, wird sie benutzt, um X-Klienten zu starten, eine Fensterverwaltung, einige xterm Terminals oder eine Schreibtischumgebung wie GNOME. Die Datei .xinitrc ist ein /bin/sh-Skript mit den Kommandos dafür. Das übliche #!/bin/sh in der ersten Zeile wird nicht benötigt; die Datei muss auch nicht ausführbar sein. xinit wird die Datei immer mit der Shell /bin/sh ausführen.

Gibt es keine Datei .xinitrc im Heimat-Verzeichnis und auch kein Verzeichnis $HOME/.xinitrc.d, dann benutzt X11 die Voreinstellungen in der Datei /usr/X11/lib/X11/xinit/xinitrc. Die Voreinstellungen kann man auch gut als Ausgangspunkt für eine eigene Datei .xinitrc verwenden:

cp /usr/X11/lib/X11/xinit/xinitrc ~/.xinitrc

Damit auch Fink-Programme in .xinitrc funktionieren, sollte gleich am Anfang der Datei die Zeile . /opt/sw/bin/init.sh stehen, damit die Umgebung korrekt aufgesetzt wird.

Man kann so ziemlich alles in die Datei .xinitrc schreiben, aber einiges sollte man dabei doch beachten. Erstens: Die Shell, die die Datei abarbeitet, wartet bis bei jedem Programm bis es beendet wird, bevor das nächste Programm gestartet wird. Sollen mehrere Programme parallel laufen, muss man der Shell mitteilen, sie in den Hintergrund zu verschieben, indem man am Ende der Zeile ein & anhängt.

Zweitens: xinit Wartet bis das Skript in .xinitrc beendet ist und inerpretiert diese Situation, dass die Session beendet ist und der X-Server jetzt auch beendet werden soll. Dies bedeutet, dass das letzte Kommando in .xinitrc nicht im Hintergrund ablaufen sollte und ein langlebiges Programm sein sollte. Üblicherweise ist es die Fensterverwaltung oder die Schreibtischumgebung. Tatsächlich gehen die meisten Fensterverwaltungen und Schreibtischumgebungen davon aus, dass xinit auf ihr Ende wartet und dies für den "Log Out" Eintrag in ihren Menus nutzen. (Notiz: Man kann etwas Speicher und CPU-Last zu sparen, wenn man exec an den Anfang der letzten Zeile schreibt, so wie in den folgenden Beispielen.)

Beispiel: Schalte die X11-Klingel aus, starte einige Klienten und zum Schluss die Fensterverwaltung "Enlightenment":

. /opt/sw/bin/init.sh

xset b off

xclock -geometry -0+0 &
xterm &
xterm &

exec enlightenment

Beispiel: GNOME starten:

. /opt/sw/bin/init.sh
quartz-wm --only-proxy &
metacity &
exec gnome-session

Zum Schluss: KDE3 starten:

. /opt/sw/bin/init.sh
exec startkde

4.4 Das Fink-Paket 'xinitrc'

Manche Fink-Pakete müssen beim Start von X11 einige Aktionen ausführen. Dafür gibt es ein Paket namens xinitrc (zugegebenermaßen etwas verwirrend). Eine Nebenwirkung bei der Installation dieses Pakets, das in der Abhängigkeitskette von GNOME und KDE ist, dass die voreingestellte Ausführung der Skripte in $HOME/.xinitrc.d. Es gibt einige Methoden, mit denen man den Start von X11 modifizieren kann und Fink-Paketen erlauben kann, ihre Start-Aktionen auszuführen:

Weiter: 5. Andere Möglichkeiten mit X11