Forum

Von Null auf X

Nutzung des X-Window-Systems unter AmigaOS

Seit Veröffentlichung des "Technology Brief" steht fest, dass die grafische Benutzeroberfläche der angekündigten neuen Amiga-Rechner weitgehend auf dem sogenannten X-Window-System basieren wird. Dieses ist jedoch auch aus Sicht eines Amiga-Anwenders nicht nur für die Zukunft relevant. Denn für die Classic Amigas sind in letzter Zeit einige Programme portiert worden, die auf diesem System basieren. Zu denken wäre da in erster Linie an die sehr mächtige Bildbearbeitungssoftware "GIMP" und das Strategiespiel "FreeCiv". Dieser "Grundlagen"-Artikel soll einen sehr kurzen Überblick über das X-Window-System geben und dann vor allem die Einrichtung eines solchen Systems auf AmigaOS-Basis erläutern. Dabei wird wie im Artikel "Von Null auf Online" des "Grundlagen"-Teils der vierzigsten "AmigaGadget"-Ausgabe bewußt auf Vereinfachung gesetzt und nur die rudimentären Funktionen beschrieben werden, die man kennen muss, um X-Window-basierte Programme nutzen zu können.


Das X-Window-System

Das Massachusetts Institute of Technology (MIT) hat im Rahmen des "Project Athena" eine speziell auf die Bedürfnisse einer Unix-Netzwerkumgebung zugeschnittene Benutzeroberfläche entwickelt. Dabei entstand ein System mit dem schlichten Namen "X". Seit Ende der achtziger Jahre wird dieses System von allen größeren Workstation-Herstellern wie etwa DEC, HP, SUN und IBM unterstützt. Die schon seit Jahren aktuelle und gebräuchliche elfte Version, von der man üblicherweise als "X11" spricht, wird inzwischen von der "X.Org" <http://www.x.org> der "Open Group" betreut, auf die sämtliche, früher dem "X Consortium" zustehenden Rechte übertragen wurden. Dabei handelt es sich um eine nicht auf Profiterzielung ausgerichtete Organisation, der u.a. SGI, HP, SUN und Compaq angehören, und deren Sinn und Zweck es ist, von Zeit zu Zeit neue Versionen, bzw. Veröffentlichungen ("Releases") und Revisionen des X-Window-Systems öffentlich zu machen, um so eine gewisse Standardisierung garantieren zu können. Aktuell ist derzeit die sechste Veröffentlichung von X11, die in der vierten Revision vorliegt. In der der IT-Branche üblichen Kurzschreibweise spricht man diesbezüglich von "X11 R6.4". Spätestens seit dem Siegeszug von Linux ist X inzwischen auch auf Endanwender-PCs salonfähig geworden, da das Unix-Derivat von Linus Torvalds erst mit Hilfe von X zu einer grafischen Benutzeroberfläche kommt. Das X-Window-System selbst ist dabei auch im Sourcecode frei zugänglich und Public Domain. Konkrete Implementierungen sowie darauf aufsetzende Programme oder bestimmte Oberflächen werden jedoch u.U. als Shareware oder auch kommerziell vertrieben.

Ein komplettes X-Window-System besteht grundsätzlich aus drei Komponenten: dem Server und den Clients sowie dem Protokoll, auf dessen Basis diese miteinander kommunizieren. Der X-Server ist dabei das Programm, das für die Ausgaben und die Entgegennahme von Eingaben des Benutzers verantwortlich ist. Es kümmert sich um die Bildschirmausgabe und nimmt zur Kenntnis, ob eine Taste gedrückt oder die Maus bewegt wurde. Aus diesem Grunde ist der X-Server (bzw. die ihm zur Verfügung stehenden Gerätetreiber) sehr stark von der verwendeten Hardware abhängig, er verwaltet im Rahmen des X-Window-Systems die Eingabegeräte (Tastatur, Maus) und die Ausgabegeräte (Bildschirm).

X-Clients hingegen kommunizieren primär mit dem X-Server. Es handelt sich bei ihnen um die eigentlichen Programme, die Applikationen oder Spiele. Sie teilen dem Server mit, welche (Bildschirm)Ausgaben erforderlich sind. Im Gegenzug übermittelt der X-Server den X-Clients Informationen darüber, ob und wann der Benutzer in das zugehörige Fenster geklickt oder dort eine sonstige Eingabe getätigt hat. Wie diese Eingaben zu verarbeiten sind, und wie auf sie zu reagieren ist, entscheidet einzig und allein der jeweilige X-Client. Die Programmierung der Clients wird dadurch, dass die eigentliche Kommunikation mit der Hardware und dem Betriebssystem vom X-Server erledigt wird, weitgehend rechnerunabhängig. Sauber programmierte X-Clients sind von daher sehr leicht portierbar.

Die Kommunikation zwischen X-Server und X-Clients letztlich erfolgt über das asynchrone X-Protokoll. Dieses Prinzip macht X netzwerkfähig, so dass Server und Client nicht auf demselben Rechner laufen müssen. Entscheidend ist einzig, dass der X-Client Zugriff auf den X-Server hat. Man spricht insoweit von einem "transparenten" Netzwerk. Skizzenhaft kann man sich den Ablauf in einem Beispielssystem mit zwei beteiligten Rechner und zwei X-Clients somit wie folgt vorstellen:

                 -------------------------------------------
    Benutzer <=> | X-Server <===X-Protokoll===> X-Client 1 | Rechner A
                 --------------------||---------------------
                                     ||
                                     || Netzwerk
                 ----------------    //
    Rechner B    | X-Client 2 <======
                 ----------------
  
Ein ganz besonderer X-Client soll schließlich nicht unerwähnt bleiben. Mit einem sogenannten "Window-Manager" wird das Design der Fenster der anderen Clients maßgeblich beeinflußt. Insbesondere bestimmt der Window-Manager das Aussehen der Fensterrahmen und Titelbalken. Außerdem gibt er dem Benutzer die Möglichkeit, selbst - etwa durch entsprechende Gadgets in der Titelleiste - auf Position und Größe der Fenster der X-Clients einzuwirken.

In sprachlicher Hinsicht ist zu beachten, dass das Window-System korrekterweise X, X-Window-System oder X11 heißt. Man liest hingegen oftmals - u.a. etwa im "Technology Brief" der Firma Amiga (oder in den Fragen des "AmigaGadget"-Interviews mit Holger Kruse ("AmigaGadget"#29)) - die Bezeichnung "X-Windows" oder "X Windows". Diese ist nicht ganz korrekt. Das MIT selbst schreibt dazu:

"It is a window system called X, not a system called X windows."

Für den Amiga existieren verschiedene X11-Implementierungen. Schon älter ist eine sehr teuere kommerzielle Lösung der Firma GfxBase, für die eine Demoversion im Aminet unter

   /gfx/x11/GfxBaseX11Demo.lha
  
existiert, sowie die Freeware-Portierung "DaggeX", deren Version 0.91 es ebenfalls im Aminet, und zwar unter
   /gfx/x11/DaggeX-0.91.lha
  
gibt. Da der Programmierer Kari Mattinen den Sourcecode verloren hat, wurde dieses System nicht weiterentwickelt und verblieb daher in einem unfertigen Stadium. Um die damit auf der Hand liegenden Limitationen dieser beiden Implementierungen zu umgehen, hat der "Miami"-Autor Holger Kruse ein eigenes X-Window-System für den Amiga geschrieben. Sein "AmiWin" ist bei einem akzeptablen Preis das wohl leistungsfähigste der genannten Systeme. Eine Demoversion des Shareware-Projektes ist im Aminet unter
   /gfx/x11/AmiWin222d.lha
  
vorhanden.

Die nachfolgende Installations-Beschreibung soll sich jedoch auf keine dieser drei Lösungen beziehen. Statt dessen wird ein vierter X11-Port Verwendung finden. Im Rahmen des wesentlich von Fred Fish mitgestalteten "Geek Gadgets"-Projektes hat Hans Verkuil "Xgeek" entwickelt, einen frei kopierbaren X-Server für AmigaOS. Er liegt für X11 R6.3 vor.


Systemvoraussetzungen für eine AmigaOS-Installation

Um die X-Implementierung des "Geek Gadget"-Projektes nutzen zu können, benötigt man mindestens einen 68020er-Prozessor. Da X sehr ressourcenhungrig ist, sollte man über ausreichend Speicherplatz verfügen - 16 MByte dürften wohl das Minimum für sinnvolles Arbeiten sein, theoretisch dürfte das System jedoch auch mit weniger Speicher noch funktionieren.

Für die Grafikdarstellung reichen sogar OCS oder ECS aus, man sollte in diesem Fall aber natürlich keine Wunder erwarten. Neben den Amiga-Treibern für OCS, ECS und AGA gibt es auch spezielle Treiberversionen für die Picasso II-Grafikkarte und für CyberGraphX. Während der Treiber für die Picasso II im Test nicht mit der Picasso IV zusammenarbeitete, kann der CyberGraphX-Treiber dank der API-Kompatibilität mit gewissen hinnehmbaren Einschränkungen auch zusammen mit dem Picasso'96-System verwendet werden.

Im folgenden wird es erforderlich sein, auf zahlreiche Dateien der "Geek Gadgets"-Sammlung zurückzugreifen. Diese können via FTP über

   ftp.ninemoons.com/pub/geekgadgets/amiga/m68k/snapshots/current/
  
bezogen werden. Da die benötigten Dateien jedoch einen Umfang von mehreren Megabyte haben, empfiehlt sich dieser Weg wohl nur, wenn man Zugriff auf ein System mit Internet-Standleitung hat. Aus diesem Grund wird hier von dem bislang letzten auf CD-ROM veröffentlichten "Geek Gadgets"-Snapshot zurückgegriffen werden. Dieser stammt zwar aus dem Mai 1998 und ist von daher schon etwas älter, die benötigte Funktionalität ist dennoch gegeben. Bezogen werden kann der "Geek Gadgets Snapshot May 98" bei jedem gut sortierten Amiga-Versandhändler. Auf dem "Ninemoons"-FTP-Server ist der Inhalt dieser CD-ROM ebenfalls abrufbar:
   ftp.ninemoons.com/pub/geekgadgets/amiga/m68k/snapshots/980523/
  
Einige der nachfolgend genannten Programmpakete wurden in der Zwischenzeit weiterentwickelt und liegen in aktuellerer Form vor. Dennoch sollen hier, um die Vergleichbarkeit mit dem Stand von Mai 1998 sicherzustellen, die alten Versionen Verwendung finden und genannt werden. Prinzipiell sollten die beschriebenen Installationsschritte aber auch mit den aktuellen Programmversionen entsprechend durchgeführt werden können.

Da die "Geek Gadgets"-Dateien nicht im Aminet-typischen LhA-Format, sondern in dem in der Unix-Welt üblichen tgz-Format archiviert sind, benötigt man des weiteren entsprechende Dearchivierungssoftware. Zum einen kann man tgz-Archive mit einer Kombination aus "gzip" und einem De-Tar-Programm (z.B. "GNUTar" von Andreas R. Kleinert) entpacken. Dies erfolgt in zwei Schritten:

   gzip -d ARCHIVNAME.tgz

   GNUTar -xvf ARCHIVNAME.tar
  
Einfacher - und für die hier beschriebene X-Installation empfohlen - ist jedoch die Verwendung eines speziellen tgz-Dearchivierungsprogrammes. Dieses trägt den Namen "untgz" und wurde von Oliver Wagner auf den Amiga portiert. Die Syntax lautet hier einfach
   untgz ARCHIVNAME.tgz ZIEL:
  
Zu finden ist dieses Programm im Aminet unter
   util/arc/untgz.lha
  
oder auf der CD-ROM a des fünften Aminet-Sets.


Einrichtung des "Geek Gadgets"-Grundgerüstes

Bevor man die eigentlichen X-Dateien installieren kann, muss man sicherstellen, dass ein gewisses Grundgerüst der "Geek Gadgets"-Umgebung, insbesondere die berühmt-berüchtigte "ixemul.library", vorhanden ist. Es empfiehlt sich, für diese "Geek Gadgets"-Umgebung ein eigenes Verzeichnis anzulegen. Dieses soll nachfolgend "GeekGadgets" genannt werden und auf Laufwerk "DH1:" liegen. Man müßte also in der AmigaShell
   makedir DH1:GeekGadgets
  
eingeben. Um nun die Installation zu vereinfachen, empfiehlt es sich, einen Assign "GG:" auf dieses Verzeichnis zu legen, zumal dieser Assign später ohnehin standardmäßig in der "User-Startup" eingerichtet werden wird (dazu aber später mehr). Der temporäre Assign wird mit
   assign GG: DH1:GeekGadgets
  
gesetzt. Nun kann das Verzeichnis "DH1:GeekGadgets" direkt mit "GG:" angesprochen werden. Benötigt wird nun von der "Geek Gadgets"-CD-ROM die Datei "GG-misc-bin.tgz", die das eigentliche Grundgerüst der "Geek Gadgets"-Installation zur Verfügung stellt. Angenommen, die CD-ROM liegt im CD-Laufwerk "CD0:", wird das Archiv mit
   untgz CD0:bin/GG-misc-bin.tgz GG:
  
entpackt. Nun werden die "ixemul.library", die auf dem Amiga regelmäßig als Basis für Portierungen von Unix-Programmen verwendet wird, und der in der "ixemul.library"-Distribution enthaltenen "ixpipe-handler" benötigt. Das X-Window-System der "Geek Gadgets"-Distribution setzt mindestens die Version 45.1 der Library voraus, auf der CD-ROM ist Version 47.3 enthalten. Mit
   untgz CD0:bin/ixemul-47.3-bin.tgz GG:
  
wird das Archiv entpackt. Standardmäßig wird dabei eine Libraryversion für den 68000er installiert, die aber auch mit allen anderen Prozessoren der 68k-Reihe zusammenarbeitet. Will man eine optimierte Version installieren, hält das gerade entpackte Archiv zahlreiche entsprechend angepaßte Library-Compilate bereit. Diese finden sich jetzt unter
   GG:Sys/Libs
  
Verfügt man beispielsweise über einen 68060er-Prozessor, so kann die darauf optimierte Library-Version wie folgt installiert werden:
   copy GG:Sys/Libs/ixemul-060-fpu.library GG:Sys/Libs/ixemul.library
   copy GG:Sys/Libs/ixemul-060-fpu.trace GG:Sys/Libs/ixemul.trace
   copy GG:Sys/Libs/ixnet-060.library GG:Sys/Libs/ixnet.library
  
Sollte es nach einer solchen Anpassung bei nachfolgend beschriebener Installation Probleme geben, so kann man den Ausgangszustand mit
   copy GG:Sys/Libs/ixemul-000.library GG:Sys/Libs/ixemul.library
   copy GG:Sys/Libs/ixemul-000.trace GG:Sys/Libs/ixemul.trace
   copy GG:Sys/Libs/ixnet-000.library GG:Sys/Libs/ixnet.library
  
wiederherstellen. Zu beachten ist hierbei allerdings, dass es sich bei "ixnet-000.library" um eine leicht von der ursprünglichen "ixnet.library" abweichende Version handelt.

Der nächste (einfache) Schritt besteht darin, den "fifo-handler" und die PD-Korn-Shell "pdksh" zu installieren:

   untgz CD0:bin/fifolib-38.4-bin.tgz GG:
   untgz CD0:bin/pdksh-4.9-bin.tgz GG:
  
Das "Geek Gadget"-Grundgerüst steht damit.


Einrichtung des X-Window-Systems

Nun gilt es, von der "Geek Gadgets"-CD-ROM die X-spezifischen Dateien, neben den Binaries also die Fonts, die Dokumentation, usw., zu entpacken:
   untgz CD0:bin/X-11R6.3-100dpi-bin.tgz GG:
   untgz CD0:bin/X-11R6.3-75dpi-bin.tgz GG:
   untgz CD0:bin/X-11R6.3-bin.tgz GG:
   untgz CD0:bin/X-11R6.3-fonts-bin.tgz GG:
   untgz CD0:bin/X-11R6.3-inc-bin.tgz GG:
   untgz CD0:bin/X-11R6.3-ixlib-bin.tgz GG:
   untgz CD0:bin/X-11R6.3-lib-bin.tgz GG:
   untgz CD0:bin/X-11R6.3-man-bin.tgz GG:
   untgz CD0:bin/X-11R6.3-xkb-bin.tgz GG:
  
Damit man nicht auch noch die Dokumentationspfade ueber verschiedene Verzeichnisse leiten muss, sollte man nun den Inhalt des Verzeichnisses "GG:X-11R6.3/man" komplett in "man" kopieren:
   copy GG:X-11R6.3/man/ ALL GG:man/
  
Danach kann man das Unterzeichhnis "man" in "GG:X-11R6.3" mitsamt allen Dateien löschen (wobei, wie immer beim Löschen von Dateien, höchste Vorsicht und Aufmerksamkeit geboten sind):
   delete GG:X-11R6.3/man/ ALL
  
Damit man X später mittels eines einzigen Befehls einfach und unkompliziert starten kann, sollte man nun mit einem ASCII-Texteditor ("DME", "GoldED", etc.) eine Batch-Datei anlegen. Als Name soll hier "GG:GeekX" gewählt werden. Zunächst muss der X-Server selbst gestartet werden. Das geschieht einfach mit dem Befehl "run X". Allerdings verfügt "Xgeek", wie der X-Server hier intern heißt, über diverse Parameter, von denen man einige beachten sollte. So kann man mit "-pri" festlegen, welche Priorität dem X-Server vom System zugewiesen werden soll. Es ist empfehlenswert, eine Priorität zu wählen, die leicht über dem Normalwert liegt, also etwa "-pri 1". Des weiteren ist eine Besonderheit des X-Window-Systems zu beachten. Wenn der letzte X-Client beendet wird, wird der Bildschirm des X-Servers geschlossen und der Server startet sich automatisch neu. Obwohl man der X-Server auch mit einer bestimmten Tastenkombination beenden kann (dazu weiter unten), kann man an diesem Verhalten ansetzen, um eine elegantere Steuerbarkeit des X-Window-Systems zu erzwingen. Ausgangspunkt der Überlegung ist hierbei, dass regelmäßig ein Window-Manager Verwendung findet und dieser dann der letzte X-Client ist, welcher beendet wird. "Xgeek" kennt nun die weitere Option "-terminate", die zur Folge hat, dass bei Beendigung des letzten X-Clients der X-Server nicht automatisch neu gestartet wird. Setzt man diesen Parameter, so zieht das Verlassen des Window-Managers automatisch auch eine Beendigung des X-Systems nach sich. Zu guter letzt sollte man auch noch der Option "-pn" (partial network) Beachtung schenken. Sie ermöglicht nämlich, den X-Server auch ohne laufenden TCP/IP-Stack zu benutzen. Zwar benötigen manche X-Clients einen solchen, so dass man früher oder später nicht umhin kommen wird, einen TCP/IP-Stack zu installieren und vor dem Aufruf der Batch-Datei "GeekX" zu starten. Die Demoversion von "Miami" reicht hierzu völlig aus, da der Stack nur laufen muss, man braucht nicht online zu gehen. Allerdings soll vorerst der Einfachheit halber das TCP/IP-Erfordernis umgangen werden, so dass zunächst einmal die "-pn"-Option genutzt werden muss. Der Aufruf des X-Servers sieht damit wie folgt aus:
   run x -pri 1 -terminate -pn
  
Da der Start des Servers ein wenig Zeit in Anspruch nimmt, kann man nicht sofort den ersten X-Client, in der Regel also einen Window-Manager, starten, sondern muss ein wenig abwarten. Zu diesem Behufe gibt es den Befehl "WaitForX", den man einfach im Anschluß an den Aufruf des X-Servers der Batchdatei hinzufügt:
   WaitForX
  
Sobald der X-Server gestartet ist, wird "WaitForX" beendet und das Skript weiter abgearbeitet. Daher kann nun der Window-Manager gestartet werden. Standardmäßig liegt X11 der "Tab Window Manager", kurz "twm" genannt, bei. Er wird einfach mittels
   run twm
  
aufgerufen. Somit sieht die fertige "GeekX"-Batch-Datei wie folgt aus:
   run x -pri 1 -terminate -pn
   WaitForX
   run twm
  
Das X-Window-System ist nun im Prinzip einsatzbereit.


Abschluß der Installation

Damit die vorgenommene Installation später komfortabel genutzt werden kann, sind noch Änderungen an zwei bereits existierenden Batch-Dateien erforderlich. Hierfür muß man erneut auf einen ASCII-Texteditor zurückgreifen. Die erste Datei, die modifiziert werden muss, ist die "GG:Sys/S/GG-Startup", welche vor allem einige zum Betrieb der "Geek Gadgets"-Installation erforderliche Assigns einrichtet. Dieser muss man die Zeile
   assign C:       GG:X11R6.3/bin  ADD
  
hinzufügen, wobei es sich anbietet, sie unmittelbar hinter die bereits vorhandenen Zeile
   assign C:       GG:bin          ADD
  
einzufügen.

Damit der Assign "GG:" nach einem Rechner-Neustart überhaupt erkannt und die Datei "GG:Sys/S/GG-Startup" abgearbeitet wird, sind auch noch Anpassungen an der Startup-Datei "S:User-Startup" erforderlich (Kickstart 1.x-Nutzer müssen eventuell statt dessen die Datei "S:Startup-Sequence" edieren). Und zwar sind, vor einem etwaigen Aufruf der Workbench ("loadwb", "run loadwb" oder ähnliches), mit einem ASCII-Texteditor folgende Zeilen der Datei "S:User-Startup" hinzuzufügen:

   assign GG: DH1:GeekGadgets
   setenv DISPLAY :0
   resident GG:bin/sh force
   execute GG:Sys/S/GG-Startup
  
Der "setenv"-Befehl ist für den Betrieb des X-Window-Systems erforderlich, wohingegen die Resident-Machung der Shell "sh" lediglich Voraussetzung zur Verwendung derselben ist. Hat man diese Einfügung in "S:User-Startup" vorgenommen und alle offenen Dateien wieder abgespeichert, so kann (und sollte) man den Rechner neu booten. Alle erforderlichen Assigns müßten jetzt vorgenommen und die weiteren Vorbereitungen für den ersten Start des neu installierten X-Window-System getroffen sein.


Inbetriebnahme von X

Nach dem Rechnerneustart steht der Inbetriebnahme von X nichts mehr im Wege. Man wechselt einfach mit
   GG:
  
in das "Geek Gadgets"-Verzeichnis und startet dann den X-Server und den Window-Manager "twm" mit:
   execute GeekX
  
Es müßte sich nun ein neuer Bildschirm öffnen, der mit einem Schwarz-Weiß-Muster hinterlegt ist, und auf dem ein Mauszeiger zu sehen ist. Drückt man die linke Maustaste, erscheint eine Art Pop-Up-Menü mit weißer Schrift auf grünem Hintergrund. Das ist die Kontrolleiste des "twm". Die in einem ersten Block zusammengefaßten Optionen ("Iconify", "Resize", "Move", "Raise", "Lower") stehen dabei für die vorhandenen Möglichkeiten, die Fenster später zu startender X-Clients zu manipulieren. Möchte man das einmal an einem praktischen Beispiel ausprobieren, kann man nun mit einem Mausklick in die rechte obere Bildschirmecke oder mit der Tastenkombination "linke Amiga-Taste + n" zum Workbench/AmigaOS-Bildschirm zurückwechseln und dort die mit X11 R6.3 mitgelieferte Uhr "XClock" starten:
   run XClock
  
Wechselt man mit dem "Screen in den Vordergrund"-Gadget am rechten oberen Rand der Bildschirm-Titelleiste oder erneut mit der beschriebenen Tastenkombination zurück zum Bildschirm des X-Servers, sieht man nun die Umrisse eines Fensters. Dieses muss man jetzt an einem beliebigen Ort plazieren. Ein Druck auf die linke Maustaste veranlaßt den X-Server, das Fenster jetzt komplett an diesem Ort darzustellen. Möchte man dann das so auf den Bildschirm gebrachte Fenster, in dem (das Bild) eine(r) analoge(n) Uhr ticken müßte, manipulieren, kann man entweder aus der "twm"-Kontrolleiste die gewünschte Option aussuchen, oder direkt das zugehörige Bedienelement in der Fenster-Titelleiste anwählen. Wichtig sind auch die beiden Befehle, die im zweituntersten Block der Kontrolleiste zusammengefaßt sind ("Delete", "Kill"). Wählt man "Kill" an, so verwandelt sich der Mauszeiger in einen Totenkopf. Jetzt kann man, indem man auf das Fenster eines X-Clients klickt, diesen X-Client über die X-Benutzeroberfläche selbst direkt beenden.

Hat man genug herumexperimentiert, sollte man sich einer wichtigen Funktion zuwenden, die die Beendigung des X-Servers ermöglicht. Ganz unten in der "twm"-Kontrolleiste befinden sich zwei Menüpunkte, die direkte Auswirkungen auf das Verhalten des Window-Managers selbst haben. Dem geschilderten Ziel dient dabei insbesondere der Punkt "Exit". Wählt man diesen an, so wird, sofern keine anderen X-Clients mehr laufen, der Window-Manager selbst beendet. Aufgrund des Serveraufrufes mit der Option "-terminate" wird anschließend nicht nur der neue Bildschirm geschlossen, sondern darüber hinaus auch der X-Server beendet. Der Workbench/AmigaOS-Schirm gelangt automatisch wieder in den Vordergrund.

Da mit den vorhandenen Einstellungen ein gewöhnlicher PAL-HighRes-Screen geöffnet wird, liegt es nahe, sich als nächstes mit den Möglichkeiten, die Daten des vom X-Server zu öffnenden Bildschirmes zu verändern, zuzuwenden. Hierzu gibt es den "-screen"-Parameter. Diesem folgend muss man den zu verwendenden Bildschirm-Treiber angeben, also "amiga", "picasso" oder "cybergraphx". Beläßt man es dabei, wird unter Verwendung dieses Treibers ein Bildschirm mit Standardmaßen geöffnet. Man kann jedoch auch, mit einem "@" vom Namen des Treibers getrennt, bestimmte Werte für die Maße und die Tiefe des Bildschirmes angeben. Hier ist die Syntax jedoch treiberabhängig, so dass auf die Dokumentation der einzelnen Treiber verwiesen sei. Interessanter ist die stets gegebene Möglichkeit, nach dem Treibernamen "@ask" anzugeben. Dann wird nur in Ausnahmefällen ein Bildschirm mit Standardmaßen geöffnet. Sowohl der "amiga"- als auch der "cybergraphx"-Treiber öffnen jedenfalls statt dessen einen Bildschirm-Requester, mit dessen Hilfe man sich einen genehmen Bildschirm aussuchen kann. (Es ist jedoch zu beachten, dass es im Testsystem nicht möglich war, einen "cybergraphx"-Bildschirm mit einer Tiefe von 24 Bit zu öffnen. Entsprechende Versuche führten stets zu einem Systemabsturz. Die Wahl von 16-Bit-Bildschirmen führte hingegen zu keinerlei Schwierigkeiten.) Läuft auf dem eigenen Rechner ein Grafiksystem, dessen API CyberGraphX-kompatibel ist (also CyberGraphX selbst oder Picasso'96), so kann man nun den X-Server-Aufruf in "GeekX" wie folgt anpassen:

   run x -pri 1 -pn -terminate -screen cybergraphx@ask
  
Besitzt man weder ein solches System noch eine Picasso II-Grafikkarte, so kann man den Aufruf in
   run x -pri 1 -pn -terminate -screen amiga@ask
  
ändern. Jetzt öffnet sich nach dem Aufruf
   execute GeekX
  
ein Screenrequester und danach ein Bildschirm mit den dort gewählten Einstellungen. Dabei wird man jedoch schnell merken, dass der X-Bildschirm nicht immer so aussieht, wie man es sich vorgestellt hatte. Gelegentlich hat das sogar zur Folge, dass man in der "twm"-Kontrolleiste nicht mehr an den Menüpunkt "Exit" herankommt. Um den X-Server dennoch beenden zu können, muss man sich der dazu vorgesehenen Tastenkombination "Linke Amiga-Taste + rechte Amiga-Taste + Q" bedienen.

Die letzte Anpassung der "GeekX"-Batch-Datei betrifft die Verwendung des "partial network"-Modus. Da dieser spätestens beim Starten ihn nicht unterstützender X-Clients ohnehin obsolet ist, sollte man am besten schon nach Ende der ersten Experimentierphase auf ihn verzichten. Der Parameter "-pn" ist somit einfach zu entfernen, so dass sich die endgültige "GeekX"-Batch-Datei - auf einem CyberGraphX-kompatiblen System - wie folgt darstellt:

   run x -pri 1 -terminate -screen cybergraphx@ask
   WaitForX
   run twm
  
Jetzt verfügt man über ein X-Window-System, mit dem man u.a. "GIMP" und "FreeCiv" laufen lassen und die Fertigstellung des Amiga NG in Ruhe abwarten kann.

(c) 1999 by Andreas Neumann

Zurück