Es gibt zwei Möglichkeiten, Aktionen zu erstellen:
Mit der Desktop-Anwendung 'Aktion erstellen'.
Durch das manuelle Erstellen einer Aktionsdefinition.
Um eine Aktion manuell zu erstellen, müssen Sie eine Datenbankdatei bearbeiten. Dieses Kapitel beschreibt, wie Aktionsdefinitionen manuell erstellt werden.
"Fensterunterstützung und Terminal-Emulationen für COMMAND-Aktionen"
"Aktionen erstellen, die Anwendungen auf entfernten Systemen ausführen"
Eine Einführung in die Arbeit mit Aktionen finden Sie in Missing Cross Reference Target".
Informationen über die Anwendung 'Aktion erstellen' finden Sie in Missing Cross Reference Target".
Referenzinformationen zu Aktionsdefinitionen können Sie der Hilfeseite dtactionfile(4) entnehmen.
Es gibt drei verschiedene Aktionstypen:
COMMAND
MAP
TT_MSG
Mit dem Werkzeug 'Aktion erstellen' können bestimmte Arten von COMMAND- und MAP-Aktionen erstellt werden. Alle TT_MSG-Aktionen (ToolTalk-Meldungen) müssen manuell erstellt werden.
Weitere Informationen finden sie im AbschnittMissing Cross Reference Target.
Eine Befehlsaktion führt einen Befehl aus, der eine Anwendung oder ein Hilfsprogramm startet, ein Shell-Skript ausführt oder einen Betriebssystembefehl aufruft. Die Definition der Aktion besteht aus dem auszuführenden Befehl (EXEC_STRING).
Mit dem Werkzeug 'Aktion erstellen' können die am häufigsten verwendeten Befehlsaktionen erstellt werden. Es gibt jedoch Situationen, in denen eine COMMAND-Aktion manuell erstellt werden muß:
Es werden mehrere Dateien mit jeweils eigener Eingabeaufforderung als Argument angegeben.
In der Aktion werden andere Aktionen aufgerufen.
Die Aktion führt je nach Anzahl der Dateiargumente unterschiedliche Funktionen durch.
Eine Anwendung wird auf einem anderen System als dem mit der Aktionsdefinition ausgeführt (Fernausführung).
Die Aktion wird für einen anderen Benutzer ausgeführt (um beispielsweise das Root-Paßwort abzufragen und als Benutzer 'Root' auszuführen).
Bei einer Zuordnungsaktion wird eine Aktion einer anderen Aktion "zugeordnet", anstatt direkt einen Befehl oder eine ToolTalk-Meldung anzugeben.
Die Zuordnung ermöglicht es dem Benutzer, alternative Namen für Aktionen anzugeben. So startet beispielsweise eine integrierte Befehlsaktion mit dem Namen IconEditor den Symboleditor. Die Datenbank enthält auch eine Öffnen-Aktion, die in der Definition auf Bitmap- und Pixmap-Dateien (im Feld ARG_TYPE) beschränkt und der Aktion IconEditor zugeordnet ist. So kann der Benutzer den Symboleditor starten, indem eine Bitmap- oder Pixmap-Datei im Dateimanager ausgewählt und dann 'Öffnen' im Menü 'Ausgewählt' gewählt wird.
Die Anwendung 'Aktion erstellen' ermöglicht eine eingeschränkte Zuordnung für die Aktionen 'Öffnen' und 'Drucken'. Alle anderen Zuordnungsaktionen müssen manuell erstellt werden.
TT_MSG-Aktionen senden eine ToolTalk-Meldung. Alle TT_MSG- Aktionen müssen manuell erstellt werden.
In diesem Abschnitt wird erläutert, wie eine Konfigurationsdatei für eine Aktionsdefinition erstellt wird.
Konfigurationsdateien mit Aktionsdefinitionen müssen folgende Bedingungen erfüllen:
Die Dateien müssen die Namenskonvention name.dt verwenden.
Die Dateien müssen sich im Datenbanksuchpfad (Aktionen und Datentypen) befinden. Der Standardpfad lautet:
Persönliche Aktionen - Home-Verzeichnis/.dt/types
Systemweite Aktionen - /etc/dt/appconfig/types/Sprache
Integrierte Aktionen - /usr/dt/appconfig/types/Sprache. Dieses Verzeichnis sollte nicht verwendet werden.
Informationen über das Ändern des Suchpfads für Aktionen und Datentypen finden Sie im Abschnitt "Wert eines Suchpfads setzen".
Öffnen Sie eine vorhandene Datenbankdatei, oder erstellen Sie eine neue Datei.
Informationen finden Sie im vorhergehenden Abschnitt "Konfigurationsdateien für Aktionen "".
Erstellen Sie die Aktionsdefinition mit folgender Syntax:
ACTION Aktionsname { TYPE Aktionstyp Aktionsfeld ... }
Die Parameter haben folgende Bedeutung:
Aktionsname - Der Name, mit dem die Aktion ausgeführt wird.
Aktionstyp - COMMAND (Standardwert), MAP oder TT_MSG.
Aktionsfeld - Eines der erforderlichen oder optionalen Felder für diesen Aktionstyp. Alle Felder bestehen aus einem Schlüsselwort und einem Wert.
Viele dieser Aktionsfelder werden in diesem Kapitel beschrieben. Weitere Informationen finden Sie auf der Hilfeseite dtactionfile(4).
Speichern Sie die Datei.
Soll das Aktionssymbol eine eindeutige Grafik verwenden, erstellen Sie die Symbole für die Aktion. Die Symbole befinden sich normalerweise im folgenden Verzeichnis:
Persönliche Symbole: Home-Verzeichnis/.dt/icons
Systemweite Symbole: /etc/dt/appconfig/icons/sprache. Der Standardwert für sprache ist C.
Weitere Informationen finden Sie im Abschnitt "Das Symbol für eine Aktion festlegen ".
Doppelklicken Sie auf 'Aktionen neu laden' in der Anwendungsgruppe Desktop-Werkzeuge.
Erstellen Sie eine Aktionsdatei für die Aktion. Diese Datei erstellt für die Aktion ein Symbol im Dateimanager oder Anwendungsmanager (wird mit der Aktion eine Anwendung gestartet, heißt das Symbol Anwendungssymbol).
Um eine Aktionsdatei zu erstellen, muß eine ausführbare Datei mit dem Namen Aktionsname angelegt werden. Sie können die Datei in jedes Verzeichnis einfügen, für das Sie Schreibzugriffsrechte haben. Es können beliebig viele Aktionsdateien erstellt werden.
In diesem Beispiel wird eine persönliche Aktion erstellt, mit der eine Fax-Anwendung auf dem entfernten System AppServerA gestartet werden kann. Der Befehl zum Starten der Fax-Anwendung lautet:
/usr/fax/bin/faxcompose [Dateiname]
Erstellen Sie die Datei Home-Verzeichnis/.dt/types/Fax.dt.
Fügen Sie die folgenden Aktionsdefinitionen in die Datei ein:
ACTION FaxComposer { TYPE COMMAND ICON fax WINDOW_TYPE NO_STDIO EXEC_STRING /usr/fax/bin/faxcompose -c %Arg_1% EXEC_HOST AppServerA DESCRIPTION Startet das Faxprogramm
}
Die Felder WINDOW_TYPE und EXEC_STRING beschreiben die Funktionsweise der Aktion.
WINDOW_TYPE - Das Schlüsselwort NO_STDIO legt fest, daß die Aktion nicht in einem Terminalemulationsfenster ausgeführt werden muß.
Weitere Informationen finden Sie im Abschnitt "Fensterunterstützung für die Aktion festlegen".
EXEC_STRING - Die Syntax %Arg_1% akzeptiert eine übergebene Datei. Beim Doppelklicken auf das Aktionssymbol wird ein leeres Faxfenster geöffnet.
Weitere Informationen finden Sie im Abschnitt "Ausführungszeichenfolge für eine COMMAND-Aktion erstellen".
Speichern Sie die Datei.
Erstellen Sie mit dem Symboleditor die folgenden Symboldateien im Verzeichnis Home-Verzeichnis/.dt/icons:
fax.m.pm, Größe 32 x 32 Pixel
fax.t.pm, Größe 16 x 16 Pixel
Doppelklicken Sie auf 'Aktionen neu laden' in der Anwendungsgruppe Desktop-Werkzeuge.
Erstellen Sie eine ausführbare Datei mit dem Namen FaxComposer in einem Verzeichnis, für das Sie über Schreibzugriffsrechte verfügen (zum Beispiel in Ihrem Home-Verzeichnis).
Das Beispiel setzt voraus, daß die meisten zu faxenden Dateien mit dem Texteditor erstellt werden und den Datentyp TEXTFILE (Dateien mit dem Namen *.txt) besitzen.
Mit den folgenden Arbeitsschritten wird der Menüpunkt 'Fax' dem Menü 'Ausgewählt' des Datentyps hinzugefügt.
Öffnen Sie die im letzten Beispiel erstellte Datei Home-Verzeichnis/.dt/types/Fax.dt.
Fügen Sie folgende Zuordnungsdefinition hinzu:
ACTION Fax { ARG_TYPE TEXTFILE TYPE MAP MAP_ACTION FaxComposer }
Speichern Sie die Datei.
Kopieren Sie die Datenattributdefinition für TEXTFILE aus dem Verzeichnis /usr/dt/appconfig/types/Sprache/dtpad.dt in die neue Datei Home-Verzeichnis/.dt/types/textfile.dt. Fügen Sie die Aktion 'Fax' dem Feld ACTIONS hinzu.
DATA_ATTRIBUTES TEXTFILE { ACTIONS Open,Print,Fax ICON Dtpenpd ... }
Speichern Sie die Datei.
Öffnen Sie den Anwendungsmanager, und doppelklicken Sie auf 'Aktionen neu laden' in der Anwendungsgruppe Desktop-Werkzeuge.
Damit neue oder bearbeitete Aktionsdefinitionen wirksam werden, muß die Datenbank erneut gelesen werden.
Öffnen Sie die Anwendungsgruppe Desktop-Werkzeuge, und doppelklicken Sie auf 'Aktionen neu laden'.
Oder führen Sie den folgenden Befehl aus:
dtaction ReloadActions
ReloadActions ist der Name der Aktion mit dem Namen 'Aktionen neu laden'.
Die Datenbank wird auch erneut gelesen, wenn der Benutzer folgende Aktionen durchführt:
Anmelden
Neustarten des Workspace Manager
Speichern einer Aktion mit dem Befehl 'Speichern' im Menü 'Datei' des Fensters 'Aktion erstellen'.
Eine Aktionsdatei ist eine sichtbare Repräsentation der Aktion im Dateimanager oder Anwendungsmanager.
Da das Symbol einer Aktionsdatei eine Aktion repräsentiert, wird es manchmal als Aktionsdatei bezeichnet. Wird durch die Aktion eine Anwendung gestartet, nennt man das Symbol Anwendungssymbol .
Durch Doppelklicken auf das Aktionssymbol wird die Aktion ausgeführt. Das Aktionssymbol kann auch eine Ablagezone sein.
Erstellen Sie eine ausführbare Datei mit dem Namen der Aktion. Der Inhalt der Datei ist nicht von Bedeutung.
Ein Beispiel: Die Aktion ist folgendermaßen definiert:
ACTION MyFavoriteApp { EXEC_STRING Mfa -file %Arg_1% DESCRIPTION Startet MyFavoriteApp ICON Mfapp }
Die Aktionsdatei ist dann eine ausführbare Datei mit dem Namen MyFavoriteApp. Im Dateimanager und Anwendungsmanager wird dann für die Datei MyFavoriteApp das Symbol Mfapp Größe.Typ verwendet. Durch Doppelklicken auf das Symbol MyFavoriteApp wird die Ausführungszeichenfolge ausgeführt. Als Online-Hilfe des Symbols wird der Inhalt des Feldes DESCRIPTION angezeigt ("Startet MyFavoriteApp").
Enthält die Aktionsdefinition das Feld LABEL, erhält die Aktionsdatei im Datei- und Anwendungsmanager den Inhalt dieses Feldes als Beschriftung und nicht den Dateinamen (Aktionsname ). Enthält die Aktionsdefinition beispielsweise die Zeile
ACTION MyFavoriteApp { LABEL Lieblingsanwendung ... }
hat das Aktionssymbol die Bezeichnung "Lieblingsanwendung".
Im Feld ICON können Sie das Symbol angeben, das im Datei- und Anwendungsmanager für die Aktion verwendet wird.
Geben Sie kein Symbol an, werden die Standardsymboldateien für Aktionssymbole verwendet (/usr/dt/appconfig/icons/Sprache/Dtactn.*).
Das Standardsymbol einer Aktion kann mit folgender Ressource geändert werden:
*actionIcon: Symbol_Dateiname
Der Parameter Symbol-Dateiname kann als Basisdateiname oder als absoluter Pfad angegeben werden.
Das Feld ICON kann folgende Werte annehmen:
Basisdateiname
Der Basisdateiname ist der Name der Datei mit der Symbolgrafik ohne Namenserweiterungen für die Größe (m und t) und den Grafiktyp (bm und pm). Verwenden Sie beispielsweise für die Dateien GameIcon.m.pm und GameIcon.t.pm den Basisnamen GameIcon.
Wenn Sie einen Basisdateinamen angeben, müssen sich die Dateien im Suchpfad für Symbole befinden:
Persönliche Symbole: Home-Verzeichnis/.dt/icons
Systemweite Symbole: /etc/dt/appconfig/icons/ Sprache
Absoluter Pfad der Symboldatei (einschließlich des vollständigen Dateinamens)
Der absolute Pfad sollte nur angegeben werden, wenn sich die Symboldatei nicht im Suchpfad für Symbole befinden. Liegt die Symboldatei GameIcon.m.pm im Verzeichnis /doc/projects, das nicht im Suchpfad enthalten ist, muß für das Feld ICON der Wert /doc/projects/GameIcon.m.pm angegeben werden.
Tabelle 12-1 enthält die zu erstellenden Symbolgrößen und die zugehörigen Dateinamen.
Größe in Pixel |
Bitmap-Name |
Pixmap-Name |
---|---|---|
48 x 48 |
name.l.bm |
name.l.pm |
32 x 32 |
name.m.bm |
name.m.pm |
16 x 16 |
name.t.bm |
name.t.pm |
Sie können alle im System verfügbaren Aktionen ändern, auch die integrierten.
Gehen Sie beim Ändern der integrierten Aktionen vorsichtig vor. Sie sind genau auf die Zusammenarbeit mit den Desktop-Anwendungen abgestimmt.
Suchen Sie die Definition der zu ändernden Aktion.
Die Aktionsdefinitionen befinden sich in folgenden Standardverzeichnissen:
Integrierte Aktionen: /usr/dt/appconfig/types/Sprache
Systemweite Aktionen: /etc/dt/appconfig/types/ Sprache
Persönliche Aktionen: Home-Verzeichnis /.dt/types
Es können auch weitere Verzeichnisse im System definiert sein. Eine Liste der für Aktionen verwendeten Verzeichnisse erhalten Sie mit dem Befehl:
dtsearchpath -v
Das System verwendet die unter DTDATABASESEARCHPATH aufgeführten Verzeichnisse.
Kopieren Sie gegebenenfalls den Text der Aktionsdefinition in eine neue oder bereits vorhandene Datei in einem der folgenden Verzeichnisse:
Systemweite Aktionen: /etc/dt/appconfig/types/Sprache
Persönliche Aktionen: Home-Verzeichnis /.dt/types
Integrierte Aktionen müssen zunächst kopiert werden, da Dateien im Verzeichnis /usr/dt/appconfig/types/Sprache nicht bearbeitet werden sollten.
Bearbeiten Sie die Aktionsdefinition.
Speichern Sie anschließend die Datei.
Doppelklicken Sie auf 'Aktionen neu laden' in der Anwendungsgruppe Desktop-Werkzeuge.
Ruft der Benutzer eine Aktion auf, durchsucht das System die Datenbank nach dem betreffenden Aktionsnamen. Ist mehr als eine Aktion mit diesem Namen vorhanden, beachtet das System bestimmte Regeln, um die zu verwendende Aktion zu bestimmen.
Werden keine anderen Regeln angewendet, ist die Position der Definitionen entscheidend. In der folgenden Liste sind die Aktionen von oben nach unten angeordnet:
Persönliche Aktionen (Home-Verzeichnis/.dt/types)
Systemweite lokale Aktionen (/etc/dt/appconfig/types/ Sprache)
Systemweite entfernte Aktionen (Rechnername :/etc/dt/appconfig/types/Sprache). Es wird auf den entfernten Rechnern gesucht, die sich im Suchpfad für Anwendungen befinden.
Integrierte Aktionen (/usr/dt/appconfig/types/ Sprache)
In einem gegebenen Verzeichnis werden die *.dt-Dateien in alphabetischer Reihenfolge gelesen.
Aktionen, die durch die Felder ARG_CLASS, ARG_TYPE, ARG_MODE oder ARG_COUNT beschränkt sind, haben Vorrang vor den nicht beschränkten Aktionen (der Standardwert für diese vier Felder ist *.)
Bei mehreren Beschränkungen lautet die Rangfolge von oben nach unten:
ARG_CLASS
ARG_TYPE
ARG_MODE
ARG_COUNT
Sind mehrere einschränkende ARG_COUNT-Felder vorhanden, lautet die Rangfolge von oben nach unten:
Spezifischer ganzzahliger Wert n
<n
>n
*
Im folgenden Beispiel sind Abschnitte verschiedener Aktionsdefinitionen aufgeführt:
ACTION EditGraphics # EditGraphics-1 { ARG_TYPE XWD ... }
ACTION EditGraphics # EditGraphics-2 { ARG_COUNT 0 ... }
ACTION EditGraphics # EditGraphics-3 { ARG_TYPE * ... }
Durch das Doppelklicken auf das Aktionssymbol EditGraphics wird EditGraphics-2 gestartet, da kein Argument angegeben ist und ARG_COUNT 0 Vorrang hat. Wird ein Dateiargument des Typs XWD angegeben, wird EditGraphics-1 verwendet, da hier XWD ARG_TYPE angegeben ist. EditGraphics-3 wird für alle anderen Dateiargumente verwendet.
Bei einer COMMAND-Aktion müssen mindestens zwei Felder angegeben werden - ACTION und EXEC_STRING.
ACTION Aktionsname { EXEC_STRING Ausführungszeichenfolge }
Die Ausführungszeichenfolge ist der wichtigste Teil einer COMMAND-Aktionsdefinition. Die verwendete Syntax entspricht der Befehlszeile in einem Terminal-Fenster, enthält aber zusätzliche Elemente für Datei- und Zeichenfolgenargumente.
Ausführungszeichenfolgen können folgendes enthalten:
Dateiargumente und andere Parameter
Shell-Syntax
Absolute Pfade oder Namen ausführbarer Dateien
Bei einem Argument handelt es sich um Informationen, die von einem Befehl oder einer Anwendung für die Ausführung benötigt werden. So kann beispielsweise mit der folgenden Befehlszeile eine Datei im Texteditor geöffnet werden:
dtpad Dateiname
In diesem Befehl ist Dateiname ein Dateiargument für den Befehl dtpad.
Aktionen können wie Anwendungen und Befehle mit Argumenten aufgerufen werden. Bei einer COMMAND-Aktion können dabei zwei Arten von Daten verwendet werden:
Dateien
Zeichenfolgen
Die Ausführungszeile wird direkt und nicht durch eine Shell ausgeführt. Es kann jedoch explizit eine Shell in der Ausführungszeichenfolge aufgerufen werden.
Ein Beispiel:
EXEC_STRING \ /bin/sh -c \ 'tar -tvf %(File)Arg_1% 2>&1 | \${PAGER:-more};\ echo "\\n*** Zum Schließen im Menü 'Fenster' die Option 'Schließen' wählen ***"'
Befindet sich die Anwendung in einem Verzeichnis, das in der Variablen PATH aufgeführt ist, muß nur der Name der ausführbaren Datei angegeben werden. Ist das Verzeichnis nicht im Pfad enthalten, muß der absolute Pfadname der ausführbaren Datei verwendet werden.
Verwenden Sie für EXEC_STRING dieselbe Syntax wie für den Start der Anwendung von der Befehlszeile.
Die folgende Ausführungszeichenfolge gehört zu einer Aktion, die den X-Client xcutsel startet.
EXEC_STRING xcutsel
Die nächste Zeichenfolge startet den Client xclock mit einer Digitaluhr. Die Befehlszeile enthält eine Befehlszeilenoption, aber es werden keine Argumente benötigt.
EXEC_STRING xclock -digital
Verwenden Sie folgende Syntax für das Dateiargument:
%Arg_n%
Oder
%(File)Arg_n%
(File) ist optional, da an Arg_n übergebene Werte immer als Dateien betrachtet werden (im Abschnitt "Ein Dateiargument als Zeichenfolge interpretieren" finden Sie Informationen zur Verwendung der Syntax %(String)Arg_n%).
Mit dieser Syntax kann der Benutzer ein Dateiobjekt auf dem Aktionssymbol ablegen, um die Aktion mit dem übergebenen Dateiargument zu starten. Dabei wird das nte Argument in die Befehlszeile übernommen. Die Datei kann sich auf dem lokalen oder auf einem entfernten System befinden.
Die folgende Ausführungszeichenfolge führt wc -w aus. Dabei wird eine abgelegte Datei im Parameter -load verwendet.
EXEC_STRING wc -w %Arg_1%
Im folgenden Beispiel können nur Verzeichnisargumente verwendet werden. Wird ein Verzeichnis auf dem Aktionssymbol abgelegt, zeigt die Aktion eine Liste aller Dateien im Verzeichnis an, für die Lese-/Schreibzugriffsrechte vorliegen.
ACTION Beschreibbare_Dateien_anzeigen { ARG_TYPE FOLDER EXEC_STRING /bin/sh -c 's -l %Arg_1% | grep rw-' ... }
Verwenden Sie für das Dateiargument folgende Syntax:
%(File)"Eingabeaufforderung"%
Mit dieser Syntax wird eine Aktion erstellt, die eine Aufforderung zur Eingabe eines Dateinamens anzeigt, sobald der Benutzer doppelt auf das Aktionssymbol klickt.
So zeigt beispielsweise folgende Ausführungszeichenfolge ein Dialogfenster an, in dem der Benutzer zur Eingabe des Dateiarguments für den Befehl wc --w aufgefordert wird:
EXEC_STRING wc -w %(File)"Wörter zählen in Datei:"%
Verwenden Sie für das Dateiargument folgende Syntax:
%Arg_n"Eingabeaufforderung "%
Oder
%(File)Arg_n"Eingabeaufforderung "%
Mit dieser Syntax wird eine Aktion erstellt, die
eine abgelegte Datei als Argument akzeptiert oder
ein Dialogfenster mit einer Aufforderung zur Eingabe eines Dateinamens anzeigt, sobald der Benutzer doppelt auf das Aktionssymbol klickt.
So führt beispielsweise folgende Ausführungszeichenfolge den Befehl lp -oraw für die abgelegte Datei aus. Wird die Aktion durch Doppelklicken auf das Symbol gestartet, erscheint ein Dialogfenster mit einer Aufforderung zur Eingabe des Dateinamens.
EXEC_STRING lp -oraw %Arg_1"Zu druckende Datei:"%
Verwenden Sie für Nicht-Dateiargumente folgende Syntax:
%"Eingabeaufforderung"%
Oder
%(String)"Eingabeaufforderung"%
(String) muß nicht angegeben werden, da in Anführungszeichen gesetzter Text standardmäßig als Zeichenfolge interpretiert wird. Mit dieser Syntax wird ein Dialogfenster angezeigt, in dem der Benutzer zur Eingabe aufgefordert wird. Verwenden Sie sie nicht, um den Benutzer zur Eingabe eines Dateinamens aufzufordern.
Im folgenden Beispiel wird der Befehl xwd ausgeführt. Er fordert zur Eingabe eines Werts auf, der jedem Pixel hinzugefügt wird:
EXEC_STRING xwd -add %"Wert eingeben:"% -out %Arg_1"Dateiname:"%
Verwenden Sie für das Argument folgende Syntax:
%(String)Arg_n%
So druckt beispielsweise folgende Ausführungszeichenfolge mit dem Befehl lp -tbanner Dateiname eine Datei mit einem Deckblatt, das den Dateinamen enthält.
EXEC_STRING lp -t%(String)Arg_1% %(File)Arg_1"Zu druckende Datei:"%
Geben Sie die Shell folgendermaßen in der Ausführungszeichenfolge an:
/bin/sh -c 'Befehl' /bin/ksh -c 'Befehl' /bin/csh -c 'Befehl'
Das folgende Beispiel zeigt den Einsatz des Shell-Piping in einer Aktion.
EXEC_STRING /bin/sh -c 'ps | lp'
In diesem Beispiel wird eine komplexere Ausführungszeichenfolge verwendet, die eine Shell-Verarbeitung voraussetzt und ein Dateiargument akzeptiert.
EXEC_STRING /bin/sh -c 'tbl %Arg_1"Hilfeseite:"% | troff -man'
Die folgende Ausführungszeichenfolge benötigt als Argument eine komprimierte Datei. Die Aktion entkomprimiert die Datei und druckt sie mit dem Befehl lp -oraw.
EXEC_STRING /bin/sh -c 'cat %Arg_1 "Zu druckende Datei:"% | \ uncompress | lp -oraw'
Die folgende Ausführungszeichenfolge startet ein Shell-Skript.
EXEC_STRING /usr/local/bin/StartGnuClient
Aktionen können mehrere Dateiargumente auf drei verschiedene Arten bearbeiten:
Die Aktion wird für jedes Argument einmal ausgeführt. Enthält das Feld EXEC_STRING nur ein Dateiargument und werden mehrere Dateiargumente durch Ablegen auf das Aktionssymbol übergeben, wird die Aktion für jedes Dateiargument separat ausgeführt.
Werden beispielsweise bei folgender Aktionsdefinition mehrere Dateiargumente angegeben
ACTION DisplayScreenImage { EXEC_STRING xwud -in %Arg_1% ... }
wird die Aktion DisplayScreenImage mehrmals ausgeführt.
Die Aktion verwendet zwei oder mehr nicht austauschbare Dateiargumente. So setzt beispielsweise
xsetroot -cursor Cursordatei Maskendatei
zwei eindeutige Dateien in der angegebenen Reihenfolge voraus.
Die Aktion führt denselben Befehl nacheinander für alle übergebenen Dateiargumente aus. So druckt beispielsweise
pr Dateiname [Dateiname ...]
eine oder mehrere Dateien in einem Druckauftrag.
Verwenden Sie eine der folgenden Syntaxkonventionen:
Soll zur Eingabe der Dateinamen aufgefordert werden, verwenden Sie für jedes Dateiargument folgende Syntax:
%(File)"Eingabeaufforderung"%
Verwenden Sie für jedes Argument eine andere Eingabeaufforderung .
So fordert beispielsweise folgende Ausführungszeichenfolge zur Eingabe zweier Dateinamen auf.
EXEC_STRING xsetroot -cursor %(File)"Cursor-Bitmap:"% \ %(File)"Masken-Bitmap:"%
Sollen abgelegte Dateien akzeptiert werden, verwenden Sie folgende Syntax:
%Arg_n%
Verwenden Sie dabei für jedes Argument einen anderen Wert für n. Ein Beispiel:
EXEC_STRING diff %Arg_1% %Arg_2%
Verwenden Sie eine der folgenden Syntaxkonventionen:
Um eine Aktion zu erstellen, die abgelegte Dateien akzeptiert und einen Befehl der Form Befehl Datei 1 Datei 2 ... ausführt, verwenden Sie folgende Syntax für die Dateiargumente:
%Args%
Soll eine Aktion erstellt werden, die mehrere abgelegte Dateien akzeptiert oder bei einem Doppelklick eine Aufforderung zur Eingabe eines Dateinamens anzeigt, verwenden Sie folgende Syntax für die Dateiargumente:
%Arg_1"Eingabeaufforderung"% %Args%
Die Aktion gibt einen Befehl der Form Befehl Datei 1 Datei 2 ... aus.
Die folgende Ausführungszeichenfolge erstellt eine Aktion, die den Befehl
pr Datei 1 Datei 2
mit mehreren Dateiargumenten ausführt.
EXEC_STRING pr %Args%
Die folgende Ausführungszeichenfolge erstellt eine ähnliche Aktion wie im vorhergehenden Beispiel. Jedoch wird hier eine Eingabeaufforderung angezeigt, sobald doppelt auf das Aktionssymbol geklickt wird (keine Dateiargumente).
EXEC_STRING pr %Arg_1"Zu druckende Datei(en):"% %Args%
Um das Ablegen mehrerer Dateien zu akzeptieren und einen Befehl der Form
Befehl Datei 1 Datei 2 ...
auszuführen, verwenden Sie folgende Syntax:
%Args%
Die folgende Ausführungszeichenfolge startet das Skript Checkout für mehrere Dateien:
EXEC_STRING /usr/local/bin/Checkout \ %Arg_1"Welche Datei?"% %Args%
In diesem Beispiel wird der Befehl lp -oraw mit mehreren Dateien ausgeführt:
EXEC_STRING lp -oraw %Arg_1"Zu druckende Datei:"% %Args%
Es gibt mehrere Möglichkeiten für die Fensterunterstützung auf dem Desktop durch COMMAND-Aktionen.
Hat die Anwendung ein eigenes Fenster, muß in der Aktion keine weitere Fensterunterstützung zur Verfügung gestellt werden. Diese Option wird auch verwendet, wenn eine Aktion einen Befehl ohne direkte Benutzereingabe und ohne Ausgaben ausführt.
Muß die Anwendung in einem Terminal-Emulatorfenster ausgeführt werden, kann mit der Aktion ein Fenster geöffnet und dann die Anwendung gestartet werden. Es stehen verschiedene Terminal-Optionen zur Verfügung.
Mit dem Feld WINDOW_TYPE können Sie die Art der Fensterunterstützung für die Aktion festlegen (siehe Tabelle 12-2 ).
Tabelle 12-2 WINDOW_TYPE-Feld und Fensterunterstützung
Bereitgestellte Fensterunterstützung |
|
---|---|
Keine. Verwenden Sie NO_STDIO, wenn die Anwendung über ein eigenes Fenster verfügt oder der Befehl keine sichbare Ausgabe hat. |
|
Permanentes Terminal-Emulatorfenster. Die Aktion öffnet ein Terminal-Fenster, das geöffnet bleibt, bis es vom Benutzer explizit geschlossen wird. In das Fenster können Daten eingegeben werden. Verwenden Sie diesen Typ für Befehle, die Eingaben entgegennehmen, Ausgaben erzeugen und dann beendet werden (z. B. ls Verzeichnis). |
|
Temporäres Terminal-Emulatorfenster. Die Aktion öffnet ein Terminal-Fenster, das sofort nach Beendigung des Befehls wieder geschlossen wird. Verwenden Sie diesen Typ für Befehle, die den ganzen Bildschirm nutzen (z. B. vi). |
Mit dem Feld TERM_OPTS können Sie in der Aktionsdefinition die Befehlszeilenoptionen für den Terminal-Emulator angeben.
Die folgende Aktion fordert beispielsweise zur Angabe des ausführenden Rechners auf:
ACTION OpenTermOnSystemUserChooses { WINDOW_TYPE PERM_TERMINAL EXEC_HOST %(String)"Entferntes Terminal auf:"% TERM_OPTS -title %(String)"Fenstertitel:"% EXEC_STRING $SHELL }
Der von Aktionen verwendete Standard-Emulator ist dtterm. Sie können aber auch einen anderen Terminal-Emulator wählen. Der Standard-Emulator wird automatisch verwendet, wenn in der Aktion nicht explizit ein bestimmter Terminal-Emulator angegeben wird.
Für den von einer Aktion verwendeten Terminal-Emulator müssen folgende Befehlszeilenoptionen angegeben werden:
-title Fenstertitel
-e Befehl
Der Standard-Terminal-Emulator für Aktionen wird durch zwei Ressourcen bestimmt:
Die Ressource localTerminal gibt den von lokalen Anwendungen verwendeten Terminal-Emulator an.
*localTerminal: Terminal
Ein Beispiel:
*localTerminal: xterm
Die Ressource remoteTerminal gibt den von Anwendungen auf entfernten Rechnern verwendeten Terminal-Emulator an.
*remoteTerminal: Host:Terminal [,Host:Terminal...]
Ein Beispiel:
*remoteTerminal: sysibm1:/usr/bin/xterm,syshp2:/usr/bin/yterm
Durch das Beschränken auf einen bestimmten Argumenttyp ist eine genauere Definition einer Aktion möglich. So sollte beispielsweise eine Aktion auf PostScript-Dateiargumente beschränkt werden, wenn sie ein Anzeigeprogramm für PostScript-Dateien aufruft. Die Aktion zeigt eine Fehlermeldung an, wenn eine Datei angegeben wird, die nicht das PostScript-Format hat.
Aktionen können anhand folgender Bedingungen eingeschränkt werden:
Datentyp des Dateiarguments.
Anzahl der Dateiargumente (z. B. kein Argument im Gegensatz zu einem oder mehreren Argumenten). Auf diese Weise können beim Ablegen oder Doppelklicken auf ein Aktionssymbol verschiedene Funktionsweisen implementiert werden.
Lese-/Schreibmodus des Arguments.
Mit dem Feld ARG_TYPE kann festgelegt werden, für welche Datentypen die Aktion verwendet werden kann. Verwenden Sie den Datenattributnamen.
Sie können auch eine Liste mit mehreren Datentypen angeben. Trennen Sie dann die Einträge durch Kommas voneinander.
Die folgende Aktionsdefinition geht beispielsweise davon aus, daß der Datentyp GIF existiert.
ACTION Open_Gif { TYPE COMMAND LABEL " GIF anzeigen" WINDOW_TYPE NO_STDIO ARG_TYPE Gif ICON xgif DESCRIPTION Zeigt GIF-Dateien an EXEC_STRING xgif }
Mit dem Feld ARG_COUNT können Sie die Anzahl der Argumente für die Aktion festlegen. Folgende Werte können angegeben werden:
* (Standard) - Beliebig viele Argumente. Alle anderen Werte haben Vorrang vor *.
n - Beliebige positive Ganzzahl (einschließlich 0).
>n - Mehr als n Argumente.
<n - Weniger als n Argumente.
Mit Hilfe von ARG_COUNT können abhängig davon, ob doppelt auf das Symbol geklickt oder eine Datei abgelegt wird, unterschiedliche Funktionsweisen für das Aktionssymbol implementiert werden (siehe nächster Abschnitt "Unterschiedliche Funktionsweisen für Doppelklicken oder Ablegen implementieren").
Folgendermaßen kann eine Aktion erstellt werden, die eine abgelegte Datei akzeptiert, jedoch bei einem Doppelklick auf das Aktionssymbol keine Aufforderung zur Eingabe eines Dateinamens anzeigt.
Erstellen Sie eine Aktionsdefinition für einen Doppelklick auf das Symbol.
Geben Sie im Feld ARG_COUNT 0 Argumente an. Verwenden Sie eine Syntax für das Feld EXEC_STRING , die abgelegte Dateiargumente nicht akzeptiert.
Erstellen Sie eine zweite Aktionsdefinition für das Ablegen eines Arguments.
Geben Sie mit dem Feld ARG_COUNT >0 Argumente an. Verwenden Sie eine Syntax für das Feld EXEC_STRING, die abgelegte Dateiargumente akzeptiert.
Ein Beispiel: mit den folgenden beiden Befehlszeilen kann der Editor vedit gestartet werden:
Der folgende Befehl übergibt dem Editor als Argument eine Datei, die schreibgeschützt geöffnet wird:
vedit -R Dateiname
Die folgenden beiden Aktionen stellen die Ablegen- und Doppelklickfunktionalität für eine Aktion mit dem Namen Vedit zur Verfügung. Die erste Aktion hat Vorrang, wenn die Datenbank nach einer Übereinstimmung durchsucht wird, da ARG_COUNT 0 spezifischer ist als das implizierte ARG_COUNT * der Definition für die Ablagefunktionalität.
# Doppelklicken ACTION Vedit { TYPE COMMAND ARG_COUNT 0 WINDOW_TYPE PERM_TERMINAL EXEC_STRING vedit } # Ablegen ACTION Vedit { TYPE COMMAND WINDOW_TYPE PERM_TERMINAL EXEC_STRING vedit -R %Arg_1% }
Geben Sie mit dem Feld ARG_MODE den Lese-/Schreibmodus des Arguments an. Folgende Werte können verwendet werden:
* (Standard) - Beliebiger Modus
!w - Nicht schreibbar
w - Schreibbar
Wenn von Aktionen und Ausführung auf fernen Systemen die Rede ist, werden zwei Begriffe häufig verwendet:
Datenbank-Host - Das System mit der Aktionsdefinition.
Ausführungs-Host - Das System mit der ausführbaren Datei.
Meistens befinden sich Aktionen und ihre Anwendungen auf demselben System. Da der Standard-Ausführungs-Host für eine Aktion der Datenbank-Host ist, ist keine spezielle Syntax erforderlich.
Handelt es sich jedoch bei Datenbank- und Ausführungs-Host um unterschiedliche Systeme, muß in der Aktionsdefinition angegeben werden, wo die Ausführungszeichenfolge gestartet werden soll.
Die Fähigkeit, Aktionen und Anwendungen auf verschiedenen Systemen zu suchen, ist Bestandteil der Client/Server-Architektur des Desktop. Weiterführende Informationen zu Netzwerkanwendungen finden Sie im Abschnitt "Anwendungs-Services verwalten".
Mit dem Feld EXEC_HOST können Sie in einer Aktionsdefinition angeben, wo sich die Anwendung befindet.
Folgende Werte können für EXEC_HOST verwendet werden:
%DatabaseHost% - Der Host, auf dem die Aktion definiert ist.
%LocalHost% - Der Host, auf dem die Aktion aufgerufen wird (der Sitzungs-Server).
%DisplayHost% - Der Host, auf dem der X-Server läuft (nicht zulässig für X-Terminals).
%SessionHost% - Der Host, auf dem der kontrollierende Login-Manager ausgeführt wird.
Hostname - Der benannte Host. Verwenden Sie diesen Wert für Umgebungen, in denen die Aktion immer auf einem bestimmten System ausgeführt werden soll.
%"Eingabeaufforderung"% - Fordert den Benutzer bei jeder Ausführung der Aktion zur Eingabe des Hostnamens auf.
Der Standardwert ist %DatabaseHost%, %LocalHost% . Die Aktion führt den Befehl also auf dem Host mit der Aktionsdefinition aus, wenn das Feld EXEC_HOST nicht angegeben wird. Ist dies nicht möglich, führt die Aktion den Befehl auf dem Sitzungs-Server aus.
In diesem Beispiel wird der Benutzer aufgefordert, einen Hostnamen einzugeben:
EXEC_HOST %"Auf welchem Host befindet sich die Anwendung:"%
Im folgenden Beispiel wird festgelegt, daß die Aktion zuerst versuchen soll, die Anwendung auf dem System mit der Aktionsdefinition auszuführen. Ist das nicht möglich, wird versucht, die Anwendung auf dem Host ddsyd zu starten.
EXEC_HOST %DatabaseHost%, ddsyd
In Definitionsdateien für Aktionen und Datentypen können Zeichenfolge- und Umgebungsvariablen verwendet werden.
Der Gültigkeitsbereich einer Zeichenfolgevariable erstreckt sich von ihrer Definition bis zum Ende der Datei. Es gibt keine globalen Zeichenfolgevariablen für die Datenbank.
Sind eine Zeichenfolge- und eine Umgebungsvariable mit demselben Namen vorhanden, wird die Zeichenfolgevariable verwendet.
Verwenden Sie folgende Syntax:
set Variablenname=Wert
Variablennamen können beliebige alphanumerische Zeichen und Unterstriche (_) enthalten. Jede Variable muß in einer eigenen Zeile definiert werden.
Ein Beispiel:
set Remote_Application_Server=sysapp set Remote_File_Server=sysdata
Verwenden Sie folgende Syntax:
$[{]Variablenname[}]
Ein Beispiel:
EXEC-HOST $Remote_Application_Server CWD /net/${Remote_File_Server}/doc/project
Mit folgender Syntax kann eine Umgebungsvariable referenziert werden:
$[{]Variable[}].
Die Variable wird beim Laden der Datenbank erweitert (durch ihren Wert ersetzt). Sind eine Zeichenfolge- und eine Umgebungsvariable mit demselben Namen vorhanden, wird die Zeichenfolgevariable verwendet.
So druckt beispielsweise folgende Ausführungszeichenfolge eine Datei mit einem Deckblatt, das den Anmeldenamen enthält.
EXEC-STRING lp -t$LOGNAME %(File)Arg_1%
Das Desktop stellt den Befehl dtaction zur Verfügung, mit dem Aktionen an der Befehlszeile gestartet werden können. Aktionen können mit dtaction folgendermaßen ausgeführt werden:
In einem Skript
In einer anderen Aktion
In der Befehlszeile eines Terminal-Emulatorfensters
dtaction [-user Benutzername] [-execHost Hostname] \ Aktionsname [Argument [Argument]...]
-user Benutzername - Ermöglicht das Ausführen der Aktion für einen anderen Benutzer. Wird dtaction von einem anderen Benutzer als Benutzername aufgerufen, wird eine Paßwortabfrage angezeigt.
-execHost Hostname - Diese Option wird nur für COMMAND-Aktionen verwendet und gibt den Host an, auf dem der Befehl ausgeführt wird.
Argument - Die Argumente für die Aktion (normalerweise Dateiargumente).
Der Client dtaction verfügt über weitere Befehlszeilenoptionen. Weitere Informationen können Sie der Hilfeseite dtaction(1) entnehmen.
Verwenden Sie dtaction im Feld EXEC_STRING der Aktion.
Die Aktion im folgenden Beispiel verwendet eine integrierte Aktion mit dem Namen Spell (die Aktion hat im Anwendungsmanager die Bezeichnung 'Rechtschreibprüfung'). Die neue Aktion führt den Texteditor und die Aktion Spell aus und zeigt die Rechtschreibfehler in einem separaten Terminal-Emulatorfenster an.
ACTION EditAndSpell { WINDOW_TYPE NO_STDIO EXEC_STRING /bin/sh -c 'dtaction Spell \ %Arg_1"Datei:"%; dtpad %Arg_1%' }
Verwenden Sie folgende Syntax im Feld EXEC_STRING:
EXEC_STRING dtaction -user Benutzername Aktionsname [DDateiargument]
Der neue Benutzer (Benutzername) muß über einen der folgenden Mechanismen den Anzeigezugriff auf das System besitzen:
Leserecht für die Datei .Xauthority des angemeldeten Benutzers
Oder xhost-Rechte
So ermöglichen es beispielsweise die folgenden beiden Aktionen dem Benutzer, sich als Root anzumelden und die Datei app-defaults zu bearbeiten.
ACTION AppDefaults { WINDOW_TYPE NO_STDIO EXEC_STRING /usr/dt/bin/dtaction -user root \ EditAppDefaults %Arg_1"Datei:"% } ACTION EditAppDefaults { WINDOW_TYPE TERMINAL EXEC_STRING /bin/sh -c 'chmod +w %Arg_1%; \ vi %Arg_1%; chmod -w %Arg_1%' }
Der Suchpfad für Datentypen enthält auch sprachabhängige Verzeichnisse. Der Wert der Umgebungsvariablen LANG bestimmt, wo Datentypdefinitionen gesucht werden.
Lokalisierte Aktionsdefinitionen müssen sich in den richtigen sprachabhängigen Verzeichnissen des Aktionssuchpfads befinden.
Folgender Standardsuchpfad wird verwendet:
Persönliche Aktionen: Home-Verzeichnis/.dt/types
Systemweite Aktionen: /etc/dt/appconfig/types/ Sprache
Integrierte Aktionen: /usr/dt/appconfig/types/ Sprache
Erstellen Sie eine Datei im betreffenden sprachabhängigen Verzeichnis (beispielsweise in /etc/dt/appconfig/types/japanese) .
Kopieren Sie die Aktionsdefinition in die sprachabhängige Konfigurationsdatei.
Kopieren Sie beispielsweise eine Aktionsdefinition aus dem Verzeichnis
app_root/dt/appconfig/types/C/Datei.dt
in das Verzeichnis
app_root/dt/appconfig/types/japanese/Neue_Datei.dt
Fügen Sie ein LABEL-Feld hinzu, oder ändern Sie das vorhandene Feld LABEL.
LABEL Zeichenfolge
Die Beschriftung (LABEL) wird im Anwendungsmanager und Dateimanager verwendet, um das Aktionssymbol zu bezeichnen.
Passen Sie die folgenden Felder in der Aktionsdefinition an:
Symbole: ICON
Online-Hilfe: DESCRIPTION
Eingabeaufforderungen: der Text in Anführungszeichen im Feld EXEC_STRING
Die folgenden Informationen betreffen nur Anwendungen, die das Senden von Nachrichten mit ToolTalk unterstützen.
Erstellen Sie mit dem Aktionstyp TT_MSG
eine Aktion, die
eine ToolTalk-Meldung sendet.
ACTION Aktionsname { TYPE TT_MSG ... }
Das ToolTalk-Feld addressing ist immer auf TT_PROCEDURE gesetzt.
Das ToolTalk-Feld disposition verwendet als Standardwert das statische Meldungsmuster.
Die folgenden Meldungen werden von Aktionen des Typs TT_MSG
nicht unterstützt:
Objektbezogene ToolTalk-Meldungen
Kontextargumente in Meldungen
Tabelle 12-3 enthält Informationen über die Schlüsselwörter und deren Verwendung in TT_MSG-Aktionen.
Tabelle 12-3 Schlüsselwörter für TT_MSG-Aktionen und deren Verwendung
Schlüsselwort |
Verwendung |
---|---|
TT_CLASS |
Definiert den Wert des ToolTalk -Meldungsfelds class. |
TT_SCOPE |
Definiert den Wert des ToolTalk -Meldungsfelds scope. |
TT_OPERATION |
Definiert den Wert des ToolTalk -Meldungsfelds operation. |
TT_FILE |
Definiert den Wert des ToolTalk -Meldungsfelds file. |
TT_ARGn_MODE |
Definiert den Wert des ToolTalk -Attributs mode des nten Meldungsarguments. |
TT_ARGn_VTYPE |
Definiert den Wert des ToolTalk -Attributs vtype des nten Meldungsarguments. |
TT_ARGn_VALUE |
Definiert den Wert des n ten Meldungsarguments. |