Det finns två sätt att skapa åtgärder:
Använda skrivbordsprogrammet Skapa åtgärd
Skapa en åtgärdsdefinition manuellt
När du skapar en åtgärd manuellt måste du redigera en databasfil. Det här kapitlet beskriver hur du skapar åtgärdsdefinitioner manuellt.
En introduktion till åtgärder finns i Kapitel 10.
Information om hur du använder Skapa åtgärd finns i Kapitel 11.
Referensinformation om åtgärdsdefinitioner finns i direkthjälpen (man) för dtactionfile(4).
Det finns tre grundtyper av åtgärder:
COMMAND
MAP
TT_MSG
Verktyget Skapa åtgärd är utformat för att skapa vissa typer av COMMAND- och MAP-åtgärder. Alla TT_MSG-åtgärder måste skapas manuellt.
Mer information finns i Begränsningar i Skapa åtgärd.
En kommandoåtgärd utför ett kommando som startar ett program eller ett verktyg, kör en kommandofil i skalet eller exekverar ett operativsystemkommando. Definitionen av åtgärden innehåller kommandot som ska köras (EXEC_STRING).
Verktyget Skapa åtgärd kan användas till att skapa de vanligaste typerna av kommandoåtgärder. Det kan dock finnas situationer där du måste skapa åtgärden manuellt. Du måste exempelvis skapa en COMMAND-åtgärd manuellt om åtgärden anger:
Flerfilsargument med olika ledtexter för varje argument.
Åtgärdsanrop – åtgärder som startar andra åtgärder.
Argumentantalsberoende åtgärd – en åtgärd som fungerar olika för olika antal filargument skapas.
Värddator för fjärrkörning – ett program kan köras på ett annat system än det som innehåller åtgärdsdefinitionen.
Användarändring – åtgärden kan köras som en annan användare (t ex kan superanvändarens lösenord efterfrågas, och därefter körs åtgärden som root).
En avbildningsåtgärd är en åtgärd som avbildas på en annan åtgärd i stället för att den direkt anger ett kommando eller ToolTalk-meddelande.
Med tilldelning kan du ange alternativa namn på åtgärder. En inbyggd kommandoåtgärd med namnet IconEditor startar Ikonredigeraren. Databasen innehåller också en Öppna-åtgärd, som i definitionen är begränsad till bitmapps- och bildpunktsfiler (av fältet ARG_TYPE Denna åtgärd har avbildats på åtgärden IconEditor. På så sätt kan användaren starta Ikonredigeraren genom att markera en bitmapps- eller bildpunktsfil i filhanteraren och därefter välja Öppna på Markera-menyn.
Skapa åtgärd erbjuder begränsad tilldelning för Öppna- och Skriv ut-åtgärder. Alla andra tilldelningsåtgärder måste skapas manuellt.
TT_MSG åtgärder skickar ToolTalk-meddelanden. Alla TT_MSG-åtgärder måste skapas manuellt.
Det här avsnittet beskriver hur du skapar en konfigurationsfil för en åtgärdsdefinition.
Konfigurationsfiler som innehåller åtgärdsdefinitioner måste uppfylla följande krav:
Filerna måste använda namngivningskonventionen namn.dt.
Filerna måste finnas i databasens (åtgärder och datatyper) sökväg. Standardsökväg:
Egna åtgärder – Hemkatalog/.dt/types
Åtgärder för hela systemet – /etc/dt/appconfig/types/språk
Inbyggda åtgärder – /usr/dt/appconfig/types/språk. Du bör inte använda den här katalogen.
Mer information om hur du ändrar sökväg för åtgärder och datatyper finns i Ange värde för en sökväg.
Öppna en befintlig databasfil eller skapa en ny.
Se föregående avsnitt, Konfigurationsfiler för åtgärder.
Skapa en åtgärdsdefinition med syntaxen:
ACTION åtgärdsnamn { TYPE åtgärdstyp åtgärdsfält … }
där:
åtgärdsnamn – anger namnet som används för att köra åtgärden
åtgärdstyp – COMMAND (standard), MAP eller TT_MSG.
åtgärdsfält – ett av de nödvändiga eller valfria fälten för den här typen av åtgärd. Alla fält består av ett nyckelord och ett värde.
Många av åtgärdsfälten beskrivs i det här kapitlet. Mer information finns i direkthjälpen (man page) för dtactionfile(4).
Spara filen.
Om du vill att åtgärdsikonen ska ha en unik bild skapar du en ikon till åtgärden. Standardadressen för ikoner är:
Egna ikoner: Hemkatalog/.dt/icons
Systemtäckande ikoner: /etc/dt/appconfig/icons/språk. Standardalternativet för språk är C.
Mer information finns i Ange åtgärdens ikonbild.
Dubbelklicka på Ladda om åtgärder i programgruppen Skrivbordsverktyg.
Skapa åtgärdsfilen för åtgärden. Åtgärdsfilen skapar en ikon i filhanteraren eller programhanteraren som representerar åtgärden. (Om åtgärden är skriven för att starta ett program kallas ikonen för programikon.)
Om du vill skapa en åtgärdsfil skapar du en körbar fil med samma namn som ett åtgärdsnamn. Du kan placera den här filen i en valfri katalog, som du har skrivbehörighet till. Du kan skapa så många åtgärdsfiler du vill.
I följande steg skapas en egen åtgärd som startar ett faxprogram i fjärrsystemet ProgServerA. Kommandot som startar faxprogrammet är:
/usr/fax/bin/faxcompose [filnamn]
Skapa filen Hemkatalog/.dt/types/Fax.dt.
Placera följande åtgärdsdefinition i filen:
ACTION FaxComposer { TYPE COMMAND ICON fax WINDOW_TYPE NO_STDIO EXEC_STRING /usr/fax/bin/faxcompose -c %Arg_1% EXEC_HOST AppServerA DESCRIPTION Kör faxprogrammet
}
Fälten WINDOW_TYPE och EXEC_STRING beskriver åtgärdens uppförande.
WINDOW_TYPE – nyckelordet NO_STDIO anger att åtgärden inte behöver köras i ett terminalemulatorfönster.
See Ange fönsterstöd för åtgärden.
EXEC_STRING – syntaxen %Arg_1% accepterar en släppt fil. Om någon dubbelklickar på åtgärdsikonen, öppnar åtgärden ett tomt faxassistentfönster.
Spara filen.
Skapa följande ikonbildsfiler i Hemkatalog/.dt/icons med hjälp av Ikonredigeraren:
fax.m.pm, 32 gånger 32 bildpunkter
fax.t.pm, 16 gånger 16 bildpunkter
Dubbelklicka på Ladda om åtgärder i programgruppen Skrivbordsverktyg.
Skapa en körbar fil med namnet FaxComposer i en katalog som du har skrivbehörighet till (t ex hemkatalogen).
Anta att de flesta filer du faxar skapas med Textredigeraren och är av datatypen TEXTFILE (filer med namnet *.txt).
Stegen nedan lägger till menyalternativet ''Fax'' på datatypens Markera-meny.
Öppna filen Hemkatalog/.dt/types/Fax.dt, som skapades i föregående exempel.
Lägg till den här tilldelningsdefinitionen i filen:
ACTION Fax { ARG_TYPE TEXTFILE TYPE MAP MAP_ACTION FaxComposer }
Spara filen.
Kopiera en dataattributsdefinition för TEXTFILE från /usr/dt/appconfig/types/språk/dtpad.dt till den nya filen Hemkatalog/.dt/types/textfile.dt. Lägg till åtgärden Fax i fältet ACTIONS .
DATA_ATTRIBUTES TEXTFILE { ACTIONS Open,Print,Fax ICON Dtpenpd … }
Spara filen.
Öppna programhanteraren och dubbelklicka på Ladda om funktioner i programgruppen Skrivbordsverktyg.
För att nya och redigerade åtgärdsdefinitioner ska träda i kraft måste skrivbordet läsa om databasen.
Öppna programgruppen Skrivbordsverktyg och dubbelklicka på Ladda om åtgärder.
Eller kör kommandot:
dtaction ReloadActions
ReloadActions är namnet på den åtgärd vars ikon heter ''Ladda om åtgärder''.
Åtgärdsdatabasen läses också om när användaren:
Loggar in
Startar om arbetsytehanteraren
Sparar en åtgärd i fönstret Skapa åtgärd genom att välja Spara på Fil-menyn.
En åtgärdsfil är en fil som skapas för att visuellt representera åtgärden i filhanteraren eller programhanteraren.
Eftersom en åtgärdsfils ikon representerar en åtgärd, kallas den ibland åtgärdsikon. Om den underliggande åtgärden startar ett program, kallas åtgärdsfilsikonen för programikon.
Om du dubbelklickar på åtgärdsikonen körs åtgärden. Åtgärdsikonen kan också vara ett släppområde.
Om åtgärdsdefinitionen är:
ACTION MyFavoriteApp { EXEC_STRING Mfa -file %Arg_1% DESCRIPTION Kör MyFavoriteApp ICON Mfapp }
blir åtgärdsfilen en körbar fil med namnet MyFavoriteApp. I filhanteraren och programhanteraren använder filen MyFavoriteApp ikonbilden Mfapp.storlek.typ. Om du dubbelklickar på ikonen MyFavoriteApp körs åtgärdens exekveringssträng, och innehållet i fältet DESCRIPTION utgör ikonens objekthjälp (”Kör MyFavoriteApp”).
Om åtgärdsdefinitionen innehåller fältet LABEL , får åtgärdsfilen innehållet i detta fält som namn i filhanteraren och programhanteraren i stället för filnamnet (åtgärdsnamn). Om åtgärdsdefinitionen t ex innehåller:
ACTION MyFavoriteApp { LABEL Mitt favoritprogram … }
kommer åtgärdsikonen att heta "Mitt favoritprogram".
Använd fältet ICON för att ange vilken ikonbild som ska användas i filhanteraren och programhanteraren för den åtgärdsikon som skapas för åtgärden.
Om du inte anger någon ikon används bildfilerna för standardåtgärdsikoner:
Standardåtgärdsikonen ändras med resursen:
*actionIcon: ikonfilnamn
där ikonfilnamn kan vara ett grundnamn eller en absolut sökväg.
Värdet på fältet ICON kan vara:
Ett basfilnamn.
Grundfilnamnet är namnet på filen som innehåller ikonen minus filnamnssuffixen för storlek (m och t) och bildtyp (bm och pm). Använd till exempel GameIcon om filnamnet är GameIcon.m.pm eller GameIcon.t.pm.
Om du använder basfilnamnet måste ikonfilerna placeras i en katalog i ikonsökvägen:
Egna ikoner: Hemkatalog/.dt/icons
Systemtäckande ikoner: /etc/dt/appconfig/icons/språk
En absolut sökväg till ikonfilen, inklusive fullständigt filnamn.
Du ska bara använda den absoluta sökvägen om ikonfilen inte finns i ikonsökvägen. Om till exempel ikonfilen Spelikon.m.pm finns i katalogen /doc/projects, som inte finns i ikonsökvägen, blir värdet i fältet ICON /doc/projects/Spelikon.m.pm.
I Tabell 12–1 finns en lista över de ikonstorlekar du ska skapa och motsvarande filnamn.
Storleken i bildpunkter |
Bitmappsnamn |
Pixmappsnamn |
---|---|---|
48 gånger 48 |
namn.l.bm |
namn.l.pm |
32 gånger 32 |
namn.m.bm. |
namn.m.pm |
16 gånger 16 |
namn.t.bm |
namn.t.pm |
Du kan ändra alla åtgärder som finns tillgängliga i systemet, inklusive inbyggda åtgärder.
Var försiktig när du ändrar databasen för inbyggda åtgärder. De inbyggda åtgärderna är utformade speciellt för att fungera med skrivbordsprogrammen.
Sök reda på definitionen till åtgärd du vill ändra.
Standardsökvägen för åtgärdsdefinitioner är:
Inbyggda åtgärder: /usr/dt/appconfig/types/språk
Åtgärder för hela systemet: /etc/dt/appconfig/types/språk
Egna åtgärder: Hemkatalog/.dt/types
Det kan finnas fler sökvägar i systemet. Om du vill visa en lista med de sökvägar som systemet använder för åtgärder, skriver du kommandot:
dtsearchpath -v
Systemet använder katalogerna som visas i listan under DTDATABASESEARCHPATH.
Om det behövs kopierar du texten till åtgärdsdefinitionen till en ny eller befintlig fil i någon av dessa kataloger:
Åtgärder för hela systemet: /etc/dt/appconfig/types/språk
Egna åtgärder: Hemkatalog/.dt/types
Du måste kopiera inbyggda åtgärder eftersom du inte bör redigera filer i katalogen /usr/dt/appconfig/types/språk.
Redigera åtgärdsdefinitionen.
När du är färdig med redigeringen sparar du filen.
Dubbelklicka på Ladda om åtgärder i programgruppen Skrivbordsverktyg.
När användarna anropar en åtgärd söker systemet i databasen efter ett matchande åtgärdsnamn. När det finns fler än en åtgärd med samma namn används prioritetsregler för att bestämma vilken åtgärd som ska användas.
Om inga andra prioritetsregler gäller, baseras prioriteten på definitionens sökväg. Följande lista är rangordnad från högsta till lägsta prioritet:
Egna åtgärder: Hemkatalog/.dt/types
Lokala åtgärder för hela systemet: /etc/dt/appconfig/types/språk
Fjärråtgärder för hela systemet (värdnamn:/etc/dt/appconfig/types/språk). De fjärranslutna värddatorer som genomsöks är de som listas i programmets sökväg.
Inbyggda åtgärder: /usr/dt/appconfig/types/språk
Inom en viss katalog läses filerna *.dt i alfabetisk ordning.
Åtgärder som begränsas av ARG_CLASS, ARG_TYPE, ARG_MODEARG_COUNT prioriteras framför obegränsade åtgärder. (Standardvärdet för dessa fyra fält är *.)
När fler än en begränsning gäller är prioritetsordningen (från hög till låg):
ARG_CLASS
ARG_TYPE
ARG_MODE
ARG_COUNT
När det finns fler än en begränsad ARG_COUNT är prioritetsordningen (från hög till låg):
Specifikt heltalsvärde n
<n
>n
*
Ta följande del av en åtgärdsdefinition som exempel:
ACTION EditGraphics # EditGraphics-1 { ARG_TYPE XWD … }
ACTION EditGraphics # EditGraphics-2 { ARG_COUNT 0 … }
ACTION EditGraphics # EditGraphics-3 { ARG_TYPE * … }
När du dubbelklickar på åtgärdsikonen för EditGraphics startar EditGraphics-2 eftersom inga argument har angivits och ARG_COUNT 0 har företräde. När filargument av XWD-typ tillhandahålls, används EditGraphics-1 eftersom det angav XWD som ARG_TYPE. EditGraphics-3 används för alla andra filargument.
Minimikraven för en COMMAND-åtgärd är två fält: ACTION och EXEC_STRING.
ACTIONåtgärdsnamn { EXEC_STRING exekveringssträng }
Exekveringssträngen är den viktigaste delen av en COMMAND-åtgärdsdefinition. Den använder syntax som liknar den på kommandoraden i ett terminalfönster, men innehåller ytterligare syntax för hantering av fil- och strängargument.
Exekveringssträngar kan innehålla:
Filargument och icke-filargument
Skalsyntax
Absoluta sökvägar eller namn på körbara filer
Ett argument är information som är nödvändig för att ett kommando eller program ska kunna köras. Kommandoraden nedan kan du t ex använda för att öppna en fil i Textredigeraren:
dtpad filnamn
I det här kommandot är filnamn ett filargument till kommandot dtpad.
Åtgärder kan, på samma sätt som program och kommandon, ha argument. Det finns två typer av data som en COMMAND-åtgärd kan använda:
Filer
Strängdata
I de flesta fall finns funktioner och deras program i samma system. Eftersom den normala värddatorn för exekvering av en funktion är databasvärden, behövs ingen särskild syntax.
Till exempel:
EXEC_STRING \ /bin/sh -c \ 'tar -tvf %(File)Arg_1% 2>&1 | \${PAGER:-more};\ echo "\\n*** Välj Stäng från Fönster-menyn för att stänga***"'
Om ditt program finns i en katalog som är listad i variabeln PATH, kan du ange den körbara filens enkla namn. Om programmet finns någon annanstans måste du använda den absoluta sökvägen till den körbara filen.
Använd samma syntax för EXEC_STRING som du skulle använda för att starta programmet från kommandoraden.
Den här exekveringssträngen är en del av åtgärden som startar X-klienten xcutsel.
EXEC_STRING xcutsel
Den här exekveringssträngen startar klienten xclock med en digital klocka. Kommandoraden omfattar ett kommandoradsalternativ men kräver inga argument.
EXEC_STRING xclock -digital
Använd följande syntax för filargumentet:
%Arg_n%
eller
%(File)Arg_n%
(File) är valfritt eftersom argument för Arg_n som standard antas vara filer. (I Tolka filargument som en strängfinns information om hur du använder %(String)Arg_n%-syntaxen.)
Med den här syntaxen kan användarna släppa ett datafilobjekt på åtgärdsikonen för att starta åtgärden med filargumentet. Den ersätter det n:te argumentet på kommandoraden. Filen kan vara en lokal fil eller en fjärrfil.
Den här exekveringssträngen kör wc -w med en släppt fil som parametern -load.
EXEC_STRING wc -w %Arg_1%
I det här exemplet visas en del av en definition för en åtgärd som bara arbetar med katalogargument. När katalogen släpps på åtgärdsikonen, visas en lista över alla filer i katalogen som har läs- och skrivbehörighet.
ACTION List_Writable_Files { ARG_TYPE FOLDER EXEC_STRING /bin/sh -c 's -l %Arg_1% | grep rw-' … }
Använd följande syntax för filargumentet:
%(File)"ledtext"%
Den här syntaxen skapar en åtgärd som visar en ledtext för ett filnamn när användaren dubbelklickar på åtgärdsikonen.
Den här exekveringssträngen visar t ex en dialogruta som frågar efter filargumentet till kommandot wc -w:
EXEC_STRING wc -w %(File)"Räkna ord i filen:"%
Använd följande syntax för filargumentet:
%Arg_n"ledtext"%
eller
%(File)Arg_n"ledtext"%
Syntaxen skapar en åtgärd som:
Accepterar en släppt fil som filargument.
Visar en dialogruta som frågar efter ett filnamn när användaren dubbelklickar på åtgärdsikonen.
Den här exekveringssträngen utför t ex lp -oraw på en släppt fil. Om åtgärden startas genom att någon dubbelklickar på ikonen visas en dialogruta som frågar efter filnamnet.
EXEC_STRING lp -oraw %Arg_1"Fil som ska skrivas ut:"%
Använd följande syntax för icke-filparametern:
%"ledtext"%
eller
%(String)"ledtext"%
(String) är valfritt, eftersom text inom citattecken normalt tolkas som strängdata. Den här syntaxen visar en dialogruta som frågar efter icke-fildata. Använd inte syntaxen för att fråga efter ett filnamn.
Den här exekveringssträngen kör t ex kommandot xwd och frågar efter ett värde som ska läggas till i varje bildpunkt:
EXEC_STRING xwd -add %"Lägg till värde:"% -out %Arg_1"Filnamn:"%
Använd följande syntax för argumentet:
%(String)Arg_n%
Den här exekveringssträngen skriver t ex ut en fil med en titel som innehåller filnamnet med hjälp av kommandot lp -ttitelfilnamn.
EXEC_STRING lp -t%(String)Arg_1% %(File)Arg_1"Fil som ska skrivas ut:"%
Ange skalet i exekveringssträngen:
/bin/sh -c 'kommando' /bin/ksh -c 'kommando' /bin/csh -c 'kommando'
Den här exekveringssträngen illustrerar en åtgärd som använder skalprogramkoppling.
EXEC_STRING /bin/sh -c 'ps | lp'
Det här är en mer komplicerad exekveringssträng som kräver skalbearbetning och accepterar filargument.
EXEC_STRING /bin/sh -c 'tbl %Arg_1"Man-sida:"% | troff -man'
Den här exekveringssträngen kräver att argumentet ska vara en komprimerad fil. Åtgärden expanderar filen och skriver ut den med lp -oraw.
EXEC_STRING /bin/sh -c 'cat %Arg_1 "Fil som ska skrivas ut:"% | \ uncompress | lp -oraw'
Åtgärder kan använda något av följande tre sätt att hantera flera filargument:
Åtgärden kan utföras en gång för varje argument. När en EXEC_STRING innehåller ett enstaka filargument och flera filargument tillhandahålls genom att flera filer släpps på åtgärdsikonen, körs åtgärden separat för varje filargument.
Om det t ex finns flera filargument för följande åtgärdsdefinition:
ACTION DisplayScreenImage { EXEC_STRING xwud -in %Arg_1% … }
körs åtgärden DisplayScreenImage upprepade gånger.
Åtgärden kan använda två eller flera icke utbytbara filargument: Till exempel:
xsetroot -cursor markörfil maskfil
som kräver två unika filer i en viss ordning.
Åtgärden kan utföra samma kommando för varje filargument i tur och ordning. Till exempel:
pr fil [fil …]
som skriver ut en eller flera filer.
Använd någon av följande syntaxer:
Om du vill att åtgärden ska fråga efter filnamnen använder du den här syntaxen för varje filargument:
%(File)"ledtext"%
Använd en särskild ledtext för varje argument.
Följande exekveringssträng frågar efter två filer.
EXEC_STRING xsetroot -cursor %(File)"Markörbitmapp:"% \ %(File)"Maskbitmapp:"%
Om följande syntax används för filargument, accepteras släppta filer:
%Arg_n%
olika värden på n för varje argument. Till exempel:
EXEC_STRING diff %Arg_1% %Arg_2%
Använd någon av följande syntaxer:
Om du vill skapa en åtgärd som accepterar släppta filer och som skapar ett kommando med formen kommando fil 1 fil 2 …, ska följande syntax för filargument användas:
%Args%
Om du vill skapa en åtgärd som accepterar flera släppta filer, eller visar en ledtext för en enstaka fil när du dubbelklickar på den, använder du följande syntax för filargumenten:
%Arg_1"ledtext"% %Args%
Åtgärden utfärdar kommandot i följande form: kommandofil 1 fil 2 ….
Den här exekveringssträngen skapar en åtgärd som kör:
pr fil 1 fil 2
med flera filargument.
EXEC_STRING pr %Args%
Den här exekveringssträngen skapar en åtgärd som liknar den i föregående exempel, med undantaget att den visar en ledtext när du dubbelklickar (inga filargument).
EXEC_STRING pr %Arg_1"Fil(er) som ska skrivas ut:"% %Args%
För att acceptera flera argument för släppta filer och köra en kommandorad i formatet:
kommando fil 1 fil 2 …
använder du syntaxen:
%Args%
Den här exekveringssträngen kör skriptet Checkout för flera filer:
EXEC_STRING /usr/local/bin/Checkout \ %Arg_1"Fil som ska checkas ut?"% %Args%
Den här exekveringssträngen kör lp -oraw med flera filer.
EXEC_STRING lp -oraw %Arg_1"Fil som ska skrivas ut:"% %Args%
Åtgärden COMMAND stöder fönster på skrivbordet på flera sätt.
Om programmet har ett eget fönster kan åtgärden skrivas så att den inte ger ytterligare fönsterstöd. Det här alternativet används också när en åtgärd kör ett kommando som inte kräver någon direkt användarindata och inte har några utdata.
Om programmet måste köras i ett terminalfönster kan åtgärden skrivas så att den startar ett terminalfönster och sedan kör programmet. Det finns flera terminalalternativ.
Använd fältet WINDOW_TYPE för att ange den typ av fönsterstöd som krävs av åtgärden enligt Tabell 12–2.
Tabell 12–2 Fältet WINDOW_TYPE och tillgängligt fönsterstöd
Tillgängligt fönsterstöd |
|
---|---|
Inget. Använd NO_STDIO om programmet har ett eget fönster eller om kommandot inte har synliga utdata. |
|
Permanent terminalemulatorfönster. Åtgärden öppnar ett terminalfönster som är öppet tills användaren stänger det. Användaren kan skriva data i fönstret. Används tillsammans med kommandon som tar emot vissa indata, skapar vissa utdata och sedan avslutas (t ex ls katalog). |
|
Temporärt terminalemulatorfönster. Åtgärden öppnar ett terminalfönster som stängs så fort kommandot är färdigt. Används tillsammans med fullskärmskommandon (t ex vi). |
Använd fältet TERM_OPTS i åtgärdsdefinitionen för att ange kommandoradsalternativ för terminalemulatorn.
Följande åtgärd frågar t ex efter värddatorn för exekvering:
ACTION OpenTermOnSystemUserChooses { WINDOW_TYPE PERM_TERMINAL EXEC_HOST %(String)"´Fjärrterminal på:"% TERM_OPTS -title %(String)"Fönstertitel:"% EXEC_STRING $SHELL }
Standardterminalemulator för åtgärder är dtterm. Du kan ändra detta till en annan terminalemulator. Standardterminalemulatorn används när åtgärden inte särskilt anger vilken terminalemulator som ska användas.
Terminalemulatorn som används av åtgärderna måste ha dessa kommandoradsalternativ:
-rubrik fönsterrubrik
-e kommando
Två resurser bestämmer vilken standardterminalemulator som används av åtgärderna:
Resursen localTerminal avgör vilken terminalemulator som används av lokala program.
*localTerminal: terminal
Till exempel:
*localTerminal: xterm
Resursen remoteTerminal anger vilken terminalemulator som används av fjärrprogram.
*remoteTerminal: värd:terminal [,värd:terminal…]
Till exempel:
*remoteTerminal: sysibm1:/usr/bin/xterm,syshp2:/usr/bin/yterm
När du begränsar en åtgärd till en viss typ av argument förfinas åtgärden. Du bör t ex begränsa en åtgärd som startar en läsare för PostScript-filer till endast PostScript-filargument. Med en sådan begränsning returnerar åtgärden ett felmeddelande om en icke-PostScript-fil anges.
Du kan begränsa åtgärder baserat på:
Filargumentets datatyp.
Antalet filargument – exempelvis inga argument jämfört med ett eller flera argument. Detta gör att åtgärdsikonen fungerar på olika sätt när någon släpper filer eller dubbelklickar på den.
Argumentets läs- och skrivläge.
Använd fältet ARG_TYPE för att ange vilka datatyper som åtgärden gäller för. Använd datanamnsattributet.
Du kan ange en lista med datatyper. Avgränsa posterna med kommatecken.
I följande åtgärdsdefinition antas till exempel att en GIF-datatyp har skapats.
ACTION Open_Gif { TYPE COMMAND LABEL "Visa Gif" WINDOW_TYPE NO_STDIO ARG_TYPE Gif ICON xgif DESCRIPTION Visar gif-filer. EXEC_STRING xgif }
Använd fältet ARG_COUNT för att ange hur många argument som åtgärden ska acceptera. Giltiga värden är:
* (standard) – hur många argument som helst. Andra värden har företräde före *.
n – vilket icke-negativt heltal som helst, även 0.
>n – fler argument än n.
<n – färre argument än n.
Använd ARG_COUNT för att ange olika funktioner för åtgärdsikoner, beroende på om användaren dubbelklickar på ikonen eller släpper en fil på den. Se nästa avsnitt, ”Ange olika funktioner för dubbelklickning och släppning”.
Använd följande procedur för att skapa en åtgärd som accepterar en släppt fil, men inte frågar efter en fil när någon dubbelklickar på åtgärdsikonen.
Skapa en åtgärdsdefinition för dubbelklickningsfunktionalitet.
Använd fältet ARG_COUNT för att ange 0-argument. Använd en syntax för EXEC_STRING som inte accepterar släppta argument.
Skapa en andra åtgärdsdefinition för släppfunktionen.
Använd fältet ARG_COUNT för att ange >0-argument. Använd en syntax för EXEC_STRING som accepterar en släppt fil.
Anta att följande två kommandorader kan användas för att starta en redigerare med namnet vedit:
Starta redigeraren med ett filargument som öppnas som skrivskyddat dokument:
vedit -R filnamn
Följande två åtgärder skapar släpp- och dubbelklickningsfunktionalitet för en funktion som heter Vedit. Den första åtgärden prioriteras när databasen letar efter en matchning, eftersom ARG_COUNT 0 är mer specifikt än ARG_COUNT * i definitionen av släppfunktionaliteten.
# Funktionalitet vid dubbelklickning ACTION Vedit { TYPE COMMAND ARG_COUNT 0 WINDOW_TYPE PERM_TERMINAL EXEC_STRING vedit } # Funktionalitet vid släppning ACTION Vedit { TYPE COMMAND WINDOW_TYPE PERM_TERMINAL EXEC_STRING vedit -R %Arg_1% }
Använd fältet ARG_MODE för att ange läs- och skrivläge för argumentet. Giltiga värden är:
* (standard) – vilket läge som helst
!w – skrivskyddat
w – skrivbar
När åtgärder och fjärrexekvering behandlas finns det två termer som ofta används:
databasvärd – systemet som innehåller åtgärdsdefinitionen databasvärd
exekveringsdator – det system där den körbara filen körs
I de flesta situationer finns åtgärder och deras program i samma system. Eftersom databasvärden är standardkörvärd för en åtgärd, krävs ingen särskild syntax.
När värddatorn för exekvering däremot är en annan än databasvärden, måste åtgärdsdefinitionen ange var exekveringssträngen ska köras.
Möjligheten att placera åtgärder och program på olika system är en del av skrivbordets klient/server-arkitektur. Mer ingående information om nätverksprogram finns i Administrera programtjänster.
Använd fältet EXEC_HOST i åtgärdsdefinitionen för att ange platsen för programmet.
Giltiga värden för EXEC_HOST är:
%DatabaseHost% – den datorn där åtgärden har definierats.
%LocalHost% – den värd där åtgärden anropas (sessionsservern).
%DisplayHost% – den värddator som kör X-servern (ej tillåtet för X-terminaler).
%SessionHost% – den värddator där den styrande inloggningshanteraren körs.
värdnamn – den namngivna värden. Använd det här värdet för omgivningar där åtgärden alltid ska anropas på en viss värddator.
%"ledtext"% – frågar användaren efter värddatornamnet varje gång åtgärden startas.
Standardvärdet är %DatabaseHost%, %LocalHost%. Det innebär att när fältet EXEC_HOST utelämnas försöker ändå åtgärden först köra kommandot på den värddator som innehåller åtgärdsdefinitionen. Om detta misslyckas försöker åtgärden köra kommandot på sessionsservern.
Detta fält anger att åtgärden försöker köra programmet på värddatorn som innehåller åtgärdsdefinitionen. Om detta misslyckas försöker åtgärden köra programmet på värddatorn ddsyd.
EXEC_HOST %DatabaseHost%, ddsyd
Du kan ta med strängvariabler och miljövariabler i filer med åtgärds- och datatyper.
En strängvariabeldefinition gäller från definitionens adress till slutet av filen. Det finns inga globala strängvariabler för databasen.
Om en strängvariabel och en miljövariabel har samma namn används strängvariabeln.
Använd syntaxen:
set variabelnamn=värde
Variabelnamn kan innehålla alla alfanumeriska tecken samt understreck (_). Varje variabeldefinition måste stå på en separat rad.
Till exempel:
set Remote_Application_Server=sysapp set Remote_File_Server=sysdata
Använd syntaxen:
$[{]variabelnamn[}]
Till exempel:
EXEC-HOST $Remote_Application_Server CWD /net/${Remote_File_Server}/doc/project
Referera till en miljövariabel med följande syntax:
$[{]variabel[}].
Variabeln ersätts med dess värde när databasen laddas. Om en strängvariabel och en miljövariabel har samma namn används strängvariabeln.
Den här exekveringssträngen skriver exempelvis ut en fil med loginnamnet på försättsbladet.
EXEC-STRING lp -t$LOGNAME %(File)Arg_1%
På skrivbordet finns kommandot dtaction som används för att köra åtgärder från kommandoraden. Du kan använda dtaction för att köra åtgärder från:
Skript
Andra åtgärder
Kommandoraden i en terminalemulator
dtaction [-user användarnamn] [-execHost värdnamn] \ åtgärdsnamn [argument [argument]…]
-användare användarnamn – ger dig möjlighet att köra åtgärden som en annan användare. Om dtaction anropas av en annan användare än användarnamn, ombeds användaren ange lösenord.
-execHost värdnamn – endast för COMMAND-åtgärder. Anger värddatorn där kommandot kommer att köras.
argument – argument till åtgärden, vanligen filargument.
Klienten dtaction har ytterligare kommandoradsalternativ. Mer information finns i direkthjälpen (man page) för dtaction(1).
Använd dtaction i åtgärdens EXEC_STRING.
Följande åtgärd använder t ex det inbyggda åtgärdsnamnet Spell (åtgärden ”Kontrollera stavning” i programhanteraren). Den nya åtgärden kör Textredigeraren och åtgärden Spell, samt visar stavfel i ett separat terminalemulatorfönster.
ACTION EditAndSpell { WINDOW_TYPE NO_STDIO EXEC_STRING /bin/sh -c 'dtaction Spell \ %Arg_1"Fil:"%; dtpad %Arg_1%' }
Använd följande syntax i fältet EXEC_STRING:
EXEC_STRING dtaction -user användarnamn åtgärdsnamn [filargument]
Den nya användaren (användardnamn) måste ha visningsbehörighet för systemet via någon av följande mekanismer:
Läsrättigheter till den inloggade användarens .Xauthority-fil
Eller xhost-behörighet:
Följande åtgärder ger exempelvis möjligheten att bli superanvändare och redigera parameterfiler.
ACTION AppDefaults { WINDOW_TYPE NO_STDIO EXEC_STRING /usr/dt/bin/dtaction -user root \ EditAppDefaults %Arg_1"Fil:"% } ACTION EditAppDefaults { WINDOW_TYPE TERMINAL EXEC_STRING /bin/sh -c 'chmod +w %Arg_1%; \ vi %Arg_1%; chmod -w %Arg_1%' }
Sökvägen för datatyper omfattar språkberoende adresser. Skrivbordet använder värdet på LANG för att bestämma på vilka adresser datatypsdefinitioner söks.
Språkanpassade åtgärdsdefinitioner måste placeras i rätt språkberoende katalog i åtgärdens sökväg.
Standardsökväg:
Egna åtgärder: Hemkatalog/.dt/types
Åtgärder för hela systemet: /etc/dt/appconfig/types/språk
Inbyggda åtgärder: /usr/dt/appconfig/types/språk
Skapa en fil i rätt språkberoende katalog (t ex i /etc/dt/appconfig/types/japanese).
Kopiera åtgärdsdefinitionen till den språkberoende konfigurationsfilen.
Anta att du kopierar åtgärdsdefinitionen från
app_root/dt/appconfig/types/C/fil.dt
till
prgm_rot/dt/appconfig/types/japanese/ny_fil.dt
Lägg till fältet LABEL eller ändra det befintliga LABEL -fältet.
LABEL sträng
Programhanteraren och filhanteraren använder namnsträngen för att identifiera åtgärdens ikon.
Språkanpassa något av följande fält i åtgärdsdefinitionen:
Språkanpassade ikoner: ICON
Språkanpassad objekthjälp: DESCRIPTION
Språkanpassade ledtexter: all text inom citattecken i EXEC_STRING
Följande information gäller bara för program som stöder ToolTalk-meddelanden.
Använd åtgärdstypen TT_MSG
för att
skapa en åtgärd som skickar ett ToolTalk-meddelande.
ACTION åtgärdsnamn { TYPE TT_MSG … }
ToolTalk-fältet addressing anges alltid som TT_PROCEDURE.
ToolTalk-fältet disposition använder som standard specifikationen i det statiska meddelandemönstret.
Följande stöds inte av åtgärder av TT_MSG
-typ:
Objektorienterade ToolTalk-meddelanden
Sammanhangsargument i meddelanden
I Tabell 12–3visas nyckelord för och användning av TT_MSG-åtgärder.
Tabell 12–3 TT_MSG Åtgärdsnyckelord och åtgärdsanvändning
Nyckelord |
Användning |
---|---|
TT_CLASS |
Definierar värdet på ToolTalk-meddelandefältet class |
TT_SCOPE |
Definierar värdet på ToolTalk-meddelandefältet scope |
TT_OPERATION |
Definierar värdet på ToolTalk-meddelandefältet operation |
TT_FILE |
Definierar värdet på ToolTalk-meddelandefältet file |
TT_ARGn_MODE |
Definierar värdet på ToolTalk-attributet mode för det n:te meddelandeargumentet |
TT_ARGn_VTYPE |
Definierar värdet på ToolTalk-attributet vtype för det n:te meddelandeargumentet |
TT_ARGn_VALUE |
Definierar värdet för det n:te meddelandeargumentet |