ScreenManager by Bernhard Möllemann all rights reserved Hilfsprogramm zum Verwalten von Public-Screens Version V1.13 ScreenManager (SM) ist ein kleines CLI-Programm, um Public-Screens zu öffnen, schließen oder noch andere Dinge zu tun. Die Screens können mit frei wählbarer Auflösung und Farben geöffnet werden. Sogar die DrawInfo, die bestimmt, welche Farbe für Glanzeffekte verwendet wird, ist wählbar. SM kann aber auch bestimmte Screens zum System-Default-Screen machen und die anderen Public-Screen-Modes ändern. Außerdem ist es möglich, sich eine Liste aller Screens im System ausgeben zu lassen oder sich über Auflösung und andere Eigenschaften eines Screens zu informieren. Diese Anleitung gliedert sich in 6 Teile: Copyright CLI Beispiele Workbench HotKeys Schluß Das Copyright _muß_ jeder lesen! Wer schnell etwas ausprobieren will, sollte danach einfach die Beispiele durchprobieren. Die ernsthaften Anwender kommen allerdings nicht um die Lektüre der CLI-Optionen herum. Copyright --------- Das Programmpaket ScreenManager ist Copyright 1992 Bernhard Möllemann. Alle Rechte vorbehalten. Die Benutzung des Programms ScreenManager geschieht auf eigenes Risiko. Falls durch die Benutzung des Programms irgendein Schaden entsteht, kann der Autor dafür nicht haftbar gemacht werden. Dieses Programm ist frei kopierbar, solange folgende Regeln eingehalten werden: · Alle Dateien müssen kopiert werden. Das sind: ScreenManager ScreenManager.info SM.doc SM.anl SM.doc.info SM.anl.info · Alle obengennanten Dateien müssen sich in einem einzigen Verzeichnis befinden, in dem nichts anderes steht. · Keine der Dateien darf verändert werden. Sie dürfen nur dann als Archiv verbreitet werden, wenn sie sich mit einer frei kopierbaren Amiga-Version eines der folgenden Programme entpacken lassen: Zoo Arc LhArc LhA Zip uudecode compress tar ARJ · Es darf kein Gewinn mit dem Verkauf, Vertrieb oder Kopieren des Programms erwirtschaftet werden. · Es darf ausschließlich auf folgenden Public-Domain Disketten verbreitet werden: AmigaLibDisks von Fred Fish AUGS (Amiga User Group Switzerland) AmigaJUICE SAUG (Saarbrückener Amiga User Group) Time · Es darf nicht ohne meine Einwilligung auf CD-ROMs verbreitet werden, was auch AmigaLibDisks auf CD-ROM einschließt. Alle, die eine der oben ausgeschlossenen Formen der Verbreitung wünschen, müssen eine schriftliche Erlaubnis des Autors haben. Die gibt es vielleicht bei: Bernhard Möllemann Luisenstraße 17 D-7500 Karlsruhe 1 CLI --- Wie gesagt, läßt sich mit dem ScreenManager das "Screen-System" des Amiga kontrollieren. Es ist nicht möglich, das mit der Maus zu machen. Vielleicht programmiere ich es noch, wenn genügend Leute Interesse daran haben. Ich _brauche_ es eigentlich nicht, aber je mehr Anfragen bei mir eintrudeln, desto höher wird der Anreiz. Da es Public-Screens erst ab OS2.0 gibt, ist dieses natürlich Voraussetzung. Der ScreenManager sollte jedoch auch mit höheren Betriebssystemversionen laufen. Bliebe eigentlich nur noch zu sagen, daß der ScreenManager auch resi(dent) gemacht werden kann! Es gibt sechs verschiedene Aufgaben, die der ScreenManager lösen kann: Öffnen von Screens Schließen von Screens Informationen über Screen oder Graphikmodus liefern Liste der Graphikmodi ausgeben Schon geöffnete Screens manipulieren Globale Einstellungen ändern Das geschieht über jeweils einen Aufruf mit einer oder mehrerer der folgenden Optionen (bitte nicht erschrecken!): NAME: Name des Screens OPEN: einen neuen Screen öffnen CLOSE: einen bestimmten Screen schließen INFO: gibt Infos über einen Screen aus LIST: listet alle Screens auf EXPERT/FORCE: gibt mehr Infos aus und schaltet einige Abfragen ab TITLE: Screentitel bei OPEN PLANES: Anzahl der Bitplanes bei OPEN MODE: Auflösung bei OPEN. Ein paar Buchstaben DISPID: alternativ zu MODE ist dies die DisplayID eines neuen Screens SIZE/POS: Größe des Screens bei OPEN und Position beim Bewegen DISPCLIP: Größe des sichtbaren Screenbereichs bei OPEN COLORS: Farben bei OPEN. 3-stellige Hexadezimalzahlen PENS: Farbnummern für DrawInfo FONT: Font, der bei OPEN vom Screen benutzt werden soll FONTSIZE: Größe des obigen Fonts CLOSEGAD: versieht Screen mit einem CloseGadget AUTOCLOSE: schließt Screen automatisch beim Schließen des letzten Fensters CX_TOFRONT: HotKey, der den Screen nach vorne bringt CX_DEFAULT: HotKey, der den Screen zum System-Default-Screen macht CX_PRIORITY: Priorität, auf der die HotKeys eingeklinkt werden TOFRONT: Screen nach vorne bringen TOBACK: Screen nach hinten bringen SHANGHAI: Shanghai-Modus einschalten NOSHANGHAI: Shanghai-Modus ausschalten POPPUB: PopPub-Modus einschalten NOPOPUPPUB: PopPub-Modus ausschalten DEFAULT: Screen zum System-Default-Screen machen Das ist ziemlich viel und kompliziert dazu. Aber im Prinzip lassen sich ja nur sechs verschiedene Sachen damit machen, der Rest sind Parameter dafür. 1.1) OPEN Öffnet einen neuen Screen. Wenn der Screen schon existiert, bekommt man eine entsprechende Fehlermeldung serviert. Folgende Argumente können bei OPEN noch angegeben werden: 1.1.1) NAME: Der Name des Screens. Unter diesem Namen wird der Screen als Public-Screen angemeldet. Ist kein TITLE angegeben, wird er auch als Titel verwendet. Der NAME muß angegeben werden. 1.1.2) TITLE: Der Screentitel. Das ist der Text, der in der Titelzeile des Screens zu sehen ist. Sichtbar ist er allerdings nur dann, wenn das aktive Fenster keinen eigenen Titel setzt. 1.1.3) PLANES: Anzahl der Bitplanes. Sie legt hauptsächlich fest, wieviele verschiedene Farben dargestellt werden können - es sind 2^PLANES. Für jeden Graphikmodus gelten bestimmte Grenzen für PLANES. Werden sie überschritten, gibt es eine entsprechende Fehlermeldung. Voreinstellung ist 2. 1.1.4) MODE: legt den Grafikmodus fest. Hier gibt man analog zu den Bezeichnungen in Prefs/ScreenMode den Namen der Auflösung an. Dabei ist es nicht nötig, sich an die Groß- Kleinschreibung zu halten. Wer Modi, die keinen Namen haben, verwenden möchte, gibt einen String an, in dem jeder Buchstabe für eine bestimmte Eigenschaft steht. Wie diese kombiniert werden können, und welche überhaupt verfügbar sind, hängt von Graphikhardware und Monitor ab. Bei ungültigen Eingaben wird eine entsprechende Fehlermeldung ausgegeben. Die einzelnen Buchstaben stehen für: H: Hires (Default: Lores) L: Lace (Default: Kein Interlace) S: Superhires E: Extrahalfbright V: VGA P: Productivity A: A2024 mit 10Hz F: A2024 mit 15Hz X: HAM Der gewünschte Modus wird einfach durch Hintereinanderschreiben der einzelnen Buchstaben angegeben - z.B. MODE=SL für SuperHires-Lace Der Default-Mode kann leider nicht vom Workbench-Screen kopiert werden, da das ein unbeabsichtigtes Öffnen des WB-Screens zur Folge haben kann. 1.1.5) DISPID: DisplayID des zu öffnenden Screens. Sie kann alternativ zu MODE angegeben werden. Es darf allerdings nur MODE oder DISPID aufgeführt sein, nicht beides. Gültige Werte für eine DisplayID sind in graphics/displayinfo.h zu finden, vorausgesetzt, der entsprechende Monitor steht zur Verfügung. (Die Liste gibt auch "ScreenManager LIST DISPID" aus.) Da der ScreenManager keine DualPlayfield-Screens unterstützt, werden entsprechene DisplayIDs nicht akzeptiert. Die DISPID muß hexadezimal angegeben werden. Es dürfen $ oder 0x davor stehen. 1.1.6) SIZE: Größe des Screens in Pixeln. Voreingestellt ist Overscan-Text. Die Größe wird in dem Format LEFT,TOP,WIDTH,HEIGHT angegeben. Da WIDTH und HEIGHT wohl öfter gebraucht werden als LEFT und TOP, gelten, wenn nur zwei Werte angegeben sind, diese als WIDTH und HEIGHT. Zur besseren Lesbarkeit können sie auch als WIDTHxHEIGHT statt WIDTH,HEIGHT angegeben werden. Um die Overscan-Größen bequemer handhaben zu können, kann man auch die Overscan-Bereiche, die das System anbietet, namentlich angeben. Erlaubte Overscan-Namen sind: OSCAN_NORM Hardware-Default. Was C= offiziell als Auflösung angibt. OSCAN_TXT Text-Overscan, wird in Prefs eingestellt (Text auch in Ecken noch lesbar). OSCAN_TEXT ist auch erlaubt. OSCAN_STD Standard-Overscan, wird in Prefs eingestellt (Bild füllt gerade Monitor aus). OSCAN_STANDARD ist auch erlaubt. OSCAN_MAX Maximaler Overscan, wird durch Hardware festgelegt Die tippfaulen Leute können den _ oder das OSCAN auch weglassen. Um von diesen Werten abweichende Größen zu erhalten, schreibt man hinter den Overscan - mit einem Doppelpunkt getrennt - eine Größenangabe. In diesem Fall wird der entsprechende Overscan benutzt und die Größenangaben werden auf die Overscan-Größe _addiert_. Also sieht eine fertige SIZE-Angabe z.B. so aus: SIZE=OSCAN_STD:-10,-10,+20,+20 Das ergibt einen Screen, bei dem die Größe den Standard-Overscan in jeder Richtung um 10 Pixel überragt. 1.1.7) DISPCLIP: Größe des sichtbaren Bereichs des Screens. Hier gilt das gleiche Format wie für SIZE. 1.1.8) COLORS: legt die Farben als RGB-Informationen fest. Sie werden als 3-stellige Hexadezimalzahlen eingegeben und durch Komma getrennt. Dabei darf kein führendes $ oder 0x auftauchen. 1.1.9) PENS: Farbstifte, die für 3D-Darstellung benutzt werden. Dabei ist jeder Stift für bestimmte Effekte vorgesehen. Eine nähere Erläuterung ist in dem Include-File intuition/screens.h bei der Beschreibung der DrawInfo.Pens zu finden. Jedes Zeichen wird als (hexadezimale) Farbnummer der bei COLORS angegebenen Farben interpretiert. Daraus folgt, daß für die Stifte nur die ersten 16 Farben zur Verfügung stehen. Wer _wirklich_ mehr braucht, kann mir ja schreiben. Man muß nicht alle Stifte angeben, aber man muß alle Stifte, die _vor_ einem gewünschten Stift liegen, spezifizieren. Für die Farbstifte gilt: Stift Bezeichnung wird verwendet für ... 1 DETAILPEN Schrift (1.3-kompatibel) 2 BLOCKPEN Fülloperationen (1.3-kompatibel) 3 TEXTPEN normale Beschriftungen 4 SHINEPEN helle Kanten an 3D-Objekten 5 SHADOWPEN dunkle Kanten an 3D-Objekten 6 FILLPEN Hintergrund aktivierter Elemente \ z.B. aktiver 7 FILLTEXTPEN Text auf aktivierten Elementen / Fensterrahmen 8 BACKGROUNDPEN Hintergrund - muß auf 0 gesetzt werden 9 HIGHLIGHTTEXTPEN hervorgehobene Beschriftungen Das klingt ziemlich kompliziert und das Ergebnis ist auch nicht immer ganz vorhersehbar. Am besten fängt man mit einem der unten aufgeführten Beispiele an und modifiziert es, dann bekommt man schnell ein Gefühl dafür. 1.1.10) FONT: Font, der dann Default-Font des Screens wird. Das kann auch ein proportionaler Font sein. Konnte der Font nicht gefunden werden, wird der Screen trotzdem mit dem Default-Font des Systems geöffnet! (Dieser Font wird mit dem Voreinstellungsprogramm "Font" gesetzt.) Das .font am Ende ist optional. Außerdem kann die gewünschte Größe X auch mit .X angehängt werden: z.B. FONT=diamond.12 1.1.11) FONTSIZE: Größe des obigen Fonts. Hier kann so ziemlich alles angegeben werden, da die neue diskfont.library im Zweifelsfalle einen Font anderer Größe entsprechend skaliert. Diese Option gibt hübsche Effekte mit dummen Programmen! 1.1.12) CLOSEGAD: Hängt ein Closegadget an den Screen. Damit wird ein Schließsymbol (Closegadget) in der linken oberen Ecke des Screens eingerichtet. Man kann dann einfach per Mausklick den Screen wie ein Fenster schließen. 1.1.13) AUTOCLOSE: Schließt den Screen automatisch nach Benutzung. Ist diese Option angegeben, wird der Screen nach dem Verschinden des letzten Fensters geschlossen. 1.1.14) CX_TOFRONT: HotKey, um Screen nach vorne zu bringen. Hiermit kann man einen HotKey (keine heiße Taste, sondern eine Abkürzung) definieren, mit dem der Screen bei Bedarf in den Vordergrund gebracht werden kann. Die Definition entspricht dem Standard der commodities.library. Wie eine solche Tastenkombination beschrieben wird, ist weiter unten erläutert. 1.1.15) CX_DEFAULT: HotKey, um Screen zum System-Default-Screen zu machen. Analog zu obigem ist das ein HotKey, mit dem der Screen zum System- Default-Screen erklärt werden kann. Auch hier gelten die weiter unten nochmal aufgeführten Definitionen der commodities.library. 1.1.16) CX_PRIORITY: Priorität für obige HotKeys. Wenn sie nicht angegeben ist, wird ein Default von 0 benutzt. 1.1.17) Weitere Optionen Zusätzlich kann man noch die Optionen SHANGHAI, NOSHANGHAI, POPPUB, NOPOPPUB, DEFAULT, TOFRONT oder TOBACK angeben. Eine nähere Beschreibung folgt noch, da diese auch verwendet werden können, ohne einen Screen zu öffnen. 1.1.18) FORCE: Schaltet einige Sicherheitsabfragen aus. In diesem Modus sind die Tests, ob die Hardware des Rechners die angegebenen Größen für SIZE, DISPCLIP und PLANES überhaupt darstellen kann, ausgeschaltet. Wenn der Rechner dann Müll anzeigt oder gar abstürzt, bitte KEINEN Bugreport an C= oder mich! 1.2) CLOSE Schließt einen vorhandenen Screen. 1.2.1) NAME: Name des Screens. Die Groß-/Kleinschreibung muß nicht korrekt sein. Sind aber mehrere Screens da, die passen könnten, wird der erste genommen, der gefunden wird. Ist der NAME richtig geschrieben, wird _immer_ der entsprechende Screen genommen. Wenn man Angelas pattern.library (Fish 625) installiert hat, kann man sogar ein Pattern angeben - insbesondere wo* für Workbench! Im Moment gibt es zwei spezielle Namen: * steht für den Screen, auf dem die Console dieses Prozesses liegt. . steht für den System-Default-Screen Diese Konventionen für den Namen gelten überall, außer natürlich bei OPEN. 1.2.2) FORCE: Schließt auch fremde Screens. Damit können auch Screens, die weder vom ScreenManager noch von der Workbench stammen, geschlossen werden. Allerdings ist dann das Programm, welches sie geöffnet hat, nicht unbedingt darüber informiert. Wenn es später versucht, ein Fenster auf diesem Screen zu öffnen, kommt es zum Absturz. Auch kann es sein, daß zum Screen gehörige Resourcen (z.B. sein Font) nicht freigegeben werden. 1.3) LIST Gibt eine Liste der Screens oder Auflösungen aus. 1.3.1) : Zeigt die Screenliste an. Ausgegeben werden Name, Titel, Auflösung und Farben des jeweiligen Screens. Dahinter steht , wenn der Screen vom ScreenManager geöffnet wurde. Es kann dort auch noch DEFAULT stehen, wenn es der System-Default-Screen ist, oder PRIVATE, wenn dieser Screen im Moment nicht öffentlich ist. 1.3.2) DISPID: Zeigt sämtliche Auflösungen an. Es wird eine Liste aller Darstellungsmodi, die dem System bekannt sind, ausgegeben. Es stehen, wenn vorhanden, auch der Name und die Verfügbarkeit dabei. 1.3.3) MODE: Zeigt Auflösungen an. Gibt eine Liste der Darstellungsmodi, die dem System namentlich bekannt sind, aus, und zeigt deren Verfügbarkeit an. 1.4) INFO Gibt Informationen über einen Screen oder einen Darstellungsmodus aus. 1.4.1) : Druckt die momentan gültigen Public-Screen-Modes aus. 1.4.2) NAME: Zeigt Eigenschaften dieses Screens. Es werden z.B. seine Auflösung und Farbanzahl ausgegeben. Auch hier gelten die bei CLOSE erwähnten Sonderzeichen. 1.4.3) DISPID/MODE: Gibt Infos über den Darstellungsmodus aus. Es sind z.B. maximale Farbanzahl und minimale/maximale Größe eines solchen Screens dabei. 1.4.4) EXPERT: Gibt etwas mehr Infos aus. Diese Option kann bei allen Parametern von INFO zusätzlich angegeben werden. Es werden dann die Strukturen NameInfo, DisplayInfo, DimensionInfo und MonitorInfo angezeigt. 1.5) Geöffnete Screens manipulieren. Folgende Optionen modifizieren die Modes eines vorhandenen Public-Screens. Dafür muß natürlich auch dessen Name angegeben sein. Auch hier gelten wieder die Abkürzungen, die bei CLOSE erläutert wurden. All diese Optionen können natürlich auch beim Öffnen eines neuen Screens angegeben werden. 1.5.1) COLORS: Nachträgliches Ändern der Farben. Damit kann die Farbpalette eines Screens im nachhinein geändert werden. Die Farben werden als 3-stellige Hexadezimalzahlen eingegeben und durch Komma getrennt. Achtung! Werden die Farben des Workbench-Screens geändert, kriegt der IPrefs-Demon das nicht mit - genausowenig wie Intuition selber. Es kann dann zu "Effekten" bei Benutzung von Prefs/Palette kommen. 1.5.2) POS: Setzt die Screenposition neu. Damit kann die Position eines Screens nachträglich geändert werden. Das Format ist "POS=x,y". 1.5.3) PLANES: Setzt die Anzahl der Planes des Screens neu. Diese Option wird nur zusammen mit FORCE akzeptiert - sonst wird lediglich eine Warnung ausgegeben. Sie ermöglicht es, die Anzahl der Planes des Screens zu erhöhen oder zu reduzieren. Da nicht bekannt sein kann, ob die Größe der BitMap-Struktur, in der für jede Plane ein Zeiger stehen muß, für die verlangte Anzahl der Planes ausreicht, _kann_ es passieren, daß bei Erhöhung der Planes fremder Speicher überschrieben wird!!! Also bitte _mehr_ als vorsichtig sein. 1.5.4) DEFAULT: Screen zum System-Default-Screen machen. 1.5.5) TOFRONT: Screen nach vorne bringen. 1.5.6) TOBACK: Screen nach hinten bringen. 1.5.7) CX_TOFRONT: Ändert den HotKey zum Nach-vorne-bringen des Screens. Mit CX_TOFRONT="" wird er abgeschaltet. 1.5.8) CX_DEFAULT: Ändert den HotKey, der den Screen zum System-Default- Screen macht. Auch er läßt sich mit dem Leerstring ausschalten. 1.6) Globale Einstellungen Ändern. Diese Optionen beeinflussen globale Einstellungen und können auch ohne Screen angewandt werden: 1.6.1) SHANGHAI: Shanghai-Mode einschalten. Im Shanghai-Modus gehen auch die Fenster, die früher auf der Workbench aufgingen, auf dem System-Default-Screen auf. Damit kann man vor allem alte Programme, die noch nichts über das Konzept des Default-Screens wissen, von der Workbench fernhalten. 1.6.2) NOSHANGHAI: Shanghai-Mode ausschalten. 1.6.3) POPPUB: PopPub-Mode einschalten. In diesem Modus kommt der Screen nach vorne, sowie ein Fenster darauf geöffnet wird. 1.6.4) NOPOPPUB: PopPub-Mode ausschalten. Beispiele --------- Hier noch ein paar Beispiele: ScreenManager OPEN NobelScreen MODE=H PLANES=3 PENS=121657404 COLORS=960,DDF,03C,FF1,DC0,730,F83,C30 DEFAULT SHANGHAI POPPUB CLOSEGAD CX_PRI=10 CX_TOFRONT="LCOMMAND s" CX_DEFAULT="LCOMMAND SHIFT s" ScreenManager OPEN BlueScreen DISPID=$00029004 PLANES=3 PENS=171657404 SIZE=OSCAN_TEXT:+100,+100 DISPCLIP=OSCAN_TEXT COLORS=13B,AAC,D30,FFF,CC2,015,7AF,13F FONT=courier.13 DEFAULT TOBACK ScreenManager OPEN NessyScreen MODE=PAL:Hires PLANES=2 SIZE=640×256 PENS=021123103 COLORS=69A,FEE,002,F7C DEFAULT AUTOCLOSE CLOSEGAD POPUP ScreenManager OPEN SimpleWB MODE=H DEFAULT SHANGHAI POPPUB ScreenManager LIST ScreenManager LIST DISPID ScreenManager INFO DISPID=$00031004 EXPERT ScreenManager CLOSE BlueScreen Diese Kommandos müssen in jeweils _einer_ Zeile eingegeben werden. Um auf einem solchen Screen Fenster öffnen zu können, muß man natürlich ein Programm haben, das sich nicht krampfhaft an die Workbench klammert, sondern seine Fenster auf dem System-Default-Screen öffnet. Das tun zumindest die Voreinstellungseditoren Time und Font sowie CON: (und fälschlicherweise IconEdit *ärger*). Ein Console-Window kann aber auch auf einem Screen, der _nicht_ System-Default-Screen ist, aufgehen: CON:0/15/640/185/MeinFenster/CLOSE/SCREEN#NobelScreen. Der Display-Handler der WShell kann das natürlich auch. Workbench --------- Damit die Freunde der Workbench nicht ganz leer ausgehen, kann der ScreenManager auch die Merkmale (ToolTypes) als Argumente interpretieren. Die ToolTypes entsprechen den oben aufgeführten Kommandozeilenargumenten. Es gibt allerdings ein paar Unterschiede: NOSHANGHAI und NOPOPPUB gibt es nicht mehr. Sie müssen durch SHANGHAI=FALSE oder POPPUB=0 ersetzt werden. Es gibt einen zusätzlichen ToolType WINDOW. Das Argument wird als Filename genommen, in den die Ausgaben z.B. bei LIST wandern. Als File gilt natürlich auch eine Fensterbeschreibung wie z.B. CON:////ScreenManager-Output/CLOSE Ist WINDOW nicht angegeben, wird kein Fenster geöffnet und eventuelle Fehler werden über Requester gemeldet. Die Argumente müssen, auch wenn sie Leerzeichen enthalten, ohne Anführungszeichen eingegeben werden, da im Gegensatz zur Kommandozeile ja klar ist, wo das Argument aufhört. Wurde ein Projekt mit dem ScreenManager als Default-Tool angeklickt, werden die ToolTypes des ScreenManager als Defaults genommen und dann von denen des Projekts überschrieben. So kann man sich beispielsweise für jeden Screen, den man oft benutzt (bei mir ShellScreen und Workbench), ein Projekt mit NAME= anlegen und einen ScreenManager mit dem ToolType DEFAULT. Klickt man jetzt erst auf das Projekt-Icon und dann zweimal mit gedrückter Shift-Taste auf den ScreenManager, wird der Screen zum System-Default-Screen. Je nachdem, welches Pärchen ich "doppelklicke", kann ich so den ShellScreen oder den Workbench-Screen zum System-Default-Screen machen. Das Gleiche geht z.B. auch mit POS - und fertig ist der WB-Klick-Baukasten. HotKeys ------- Für die, die den dicken Schuber gerade nicht greifbar haben, hier noch die Sondertasten von Commodities V37. (kein Anspruch auf Vollständigkeit 8-): Events: RawKey, RawMouse, Event, PointerPos, Timer, NewPrefs, DiskRemoved, DiskInserted Größtenteils nicht sehr sinnvoll, aber ganz lustig, wenn bei einem DiskInsert der Screen mit der Shell nach vorne kommt. Außerdem ist Timer noch ganz interessant, da man sonst keinen Qualifier allein ansprechen kann. Aber natürlich will ich das nicht empfehlen. Allerdings bin ich der Meinung, daß sich jeder sein System kaputt- konfigurieren darf, wie er will - nur beschweren darf er sich dann nicht. Qualifier: LShift, RShift, CapsLock, Control, LAlt, RAlt, LCommand, RCommand, NumericPad, Repeat, RelativeMouse, Shift, Caps, Alt, UpStroke Keys: (MidButton, RButton, LeftButton) Comma, Space, BackSpace, Tab, Enter, Return, Esc, Del Up, Down, Right, Left F1, F2, F3, F4, F5, F6, F7, F8, F9, F10 Help sowie alle normalen druckbaren Zeichen, die dann für sich selbst stehen Eine Hotkey-Definition daraus sieht so aus: [ ... ] | Da die Qualifier von der auslösenden Taste durch ein Leerzeichen getrennt werden, muß der ganze Ausdruck in Anführungszeichen gepackt werden. Also etwa so: CX_TOFRONT="LCommand s" CX_DEFAULT="LCommand Shift s" oder CX_DEFAULT="LCommand S" Sämtliche Bezeichner können sowohl groß als auch klein eingegeben werden. Um HotKeys mit großen Buchstaben auslösen zu können (wie die Alternative des zweiten Beispiels), muß dann natürlich noch die Shift-Taste gedrückt werden (oder die KeyMap ist maximal mystisch...). Schluß ------ Vielen Dank an Franky (Frank Neumann) für die englische Übersetzung. Vielen Dank auch an Angela Schmidt für Bug-Reports und Anregungen. Ich danke auch: Holger Gzella Michael (Mick) Hohmann Martin Horneffer Georg (Gio) Magschok und Ralph Babel für sein Guru-Buch. Bug-Reports, Verbesserungsvorschläge, Glückwünsche, Schokokugeln, Flames, GUIs und anderes (keine Briefbomben oder Raubkopien) an: zza@rz.uni-karlsruhe.de oder Bernhard Möllemann Luisenstraße 17 7500 Karlsruhe 1 Germany