手動によるアクションの作成アクション手動による作成
アクションを作成するには、次の2つの方法があります。
アクション作成デスクトップ・アプリケーションを使用する
手動でアクション定義を作成する
手動でアクションを作成するには、データベース・ファイルを編集する必要があります。この章では、アクション定義を手動で作成する方法について説明します。
関連項目
アクションの概要については、
を参照してください。
アクション作成ツールの使用の詳細については、
を参照してください。
アクション定義の参照情報については、
dtactionfile(4) のマニュアル・ページを参照してください。
手動でアクションを作成しなければならない理由
アクション〜の型
アクションには次の3つの基本型があります。
COMMAND
MAP
TT_MSG
アクション作成ツールは、 COMMAND アクションと MAP アクション型を作成するように設計されています。すべての TT_MSG アクションは手動で作成しなければなりません。
詳細については、
を参照してください。
COMMAND アクションCOMMAND アクションアクションCOMMAND
コマンド・アクション は、アプリケーションまたはユーティリティを起動するコマンド、シェル・スクリプト、またはオペレーティング・システム・コマンドを実行します。アクションの定義には、実行されるコマンド EXEC_STRING) も含まれます。
アクション作成ツールは、コマンド・アクションのもっとも一般的な型を作成するときに使用できます。しかし、アクションを手動で作成しなければならない状況のときもあります。たとえば、アクションが次のものを指定する場合には、手動で COMMAND アクションを作成しなければなりません。
各引き数に対して異なるプロンプトをもつ複数のファイル用引き数
アクション呼び出し — 他のアクションを呼び出すアクションの機能
引き数の数に依存する動作 — 異なる数のファイル引き数に対してさまざまな動作を行うアクションを作成する機能
リモート実行ホスト — アクション定義をもっているシステム以外のシステムにあるアプリケーションを実行する機能
ユーザの変更 — 異なるユーザとしてアクションを実行する機能(たとえば、root のパスワードをプロンプトしてから root として実行する)
マップ・アクションMAP アクション定義アクションMAP
マップ・アクション は、コマンドや ToolTalk メッセージを直接指定すること以外の、別のアクションに「マップされる」アクションです。
マッピングは、アクションの代替名を指定する機能を提供します。たとえば、[アイコンエディタ]という名前の組み込みコマンド・アクションは、アイコン・エディタを起動します。データベースにも[開く]アクションが含まれていますが(ARG_TYPE フィールドによって)定義はビットマップ・ファイルとピックスマップ・ファイルに制限され、[アイコンエデイタ]アクションにマップされます。これにより、ユーザは、ファイル・マネージャのビットマップ・ファイルまたはピックスマップ・ファイルを選択してから[選択]メニューの[開く]を選択して、アイコン・エディタを起動できます。
アクション作成ツールは、[開く]アクションと[印刷]アクションの制限されたマッピングを提供します。その他のすべてのマップ・アクションは、手動で作成しなければなりません。
TT_MSG (ToolTalk メッセージ) アクションアクションTT_MSG
TT_MSG アクションは、ToolTalk メッセージを送信します。すべての TT_MSG アクションは手動で作成しなければなりません。
手動によるアクションの作成: 一般的な手順アクション手動による作成
この節では、アクション定義の構成ファイルを作成する方法について説明します。
アクションの構成ファイルアクション構成ファイル構成ファイルアクションdt ファイル
アクション定義が入っている構成ファイルは、次の要件を満たしていなければなりません。
ファイルは、name.dt という命名規則を使用しなければなりません。
データベース検索パス検索パスアクション
ファイルは、データベース(アクションとデータ型)検索パス上になければなりません。デフォルトの検索パスは次のとおりです。
個人用アクション
HomeDirectory/.dt/types
システム共通アクション
/etc/dt/appconfig/types/language
組み込みアクション
/usr/dt/appconfig/types/language
ただし、このディレクトリは使用しないでください。
アクションおよびデータ型検索パスの変更の詳細については、
を参照してください。
手動でアクションを作成するにはアクション手動による作成
既存のデータベース・ファイルを開くか、新規のデータベース・ファイルを作成します。
前節の
を参照してください。
次の構文を使用してアクション定義を作成します。
ACTION action_name
{
TYPE action_type
action_field
…
}
構文の意味を次に示します。
action_nameアクション名前
アクションを実行するのに使用する名前
action_typeアクション〜の型
COMMAND (デフォルト)、MAP、または TT_MSG
action_fieldアクションフィールド
この型のアクションの必須またはオプションとしてのフィールドのひとつ。すべてのフィールドは、キーワードと値から成ります。ほとんどのアクション・フィールドについて、この章で説明します。詳細については dtactionfile(4) のマニュアル・ページを参照してください。
ファイルを保存します。
アクション・アイコンが一意のイメージをもつようにするには、アクションのアイコンを作成します。アイコンのデフォルトの位置は次のとおりです。
個人用アイコン: HomeDirectory/.dt/icons
システム共通アイコン: /etc/dt/appconfig/icons/language
デフォルトの language は C です。
詳細については、
を参照してください。
[デスクトップツール]アプリケーション・グループにある[アクションの再読込み]をダブルクリックします。
アクションのアクション・ファイルを作成します。アクション・ファイルは、アクションを表すアイコンをファイル・マネージャまたはアプリケーション・マネージャに作成します(アクションがアプリケーションを起動するために作成される場合、アイコンを
アプリケーション・アイコン
アプリケーション・アイコンと呼びます)。
アクション・ファイルを作成するには、action_name と同じ名前の実行可能ファイルを作成します。書き込み権をもっているディレクトリにそのファイル
を置くことができます。アクション・ファイルは好きな数だけ作成することができます。
COMMAND アクションの作成例COMMAND アクション作成例アクション作成例
次の手順は、リモート・システム AppServerA にあるファックス・アプリケーションを起動する個人用アクションを作成します。ファックス・アプリケーションを起動するためのコマンドは、次のとおりです。
/usr/fax/bin/faxcompose [filename]
ファイル HomeDirectory/.dt/types/Fax.dt を作成します。
次のアクション定義をファイルに記述します。
ACTION FaxComposer
{
TYPE COMMAND
ICON fax
WINDOW_TYPE NO_STDIO
EXEC_STRING /usr/fax/bin/faxcompose -c %Arg_1%
EXEC_HOST AppServerA
DESCRIPTION Runs the fax composer
}
WINDOW_TYPE フィールドと EXEC_STRING フィールドは、アクションの動作を説明します。
WINDOW_TYPE
NO_STDIO キーワードは、アクションが端末エミュレータ・ウィンドウで実行する必要がないように指定します。
を参照してください。
EXEC_STRING
構文 %Arg_1% はドロップされたファイルを受け取ります。アクション・アイコンをダブルクリックすると、アクションは空のファックス作成ウィンドウを開きます。
を参照してください。
ファイルを保存します。
アイコン・エディタを使用して、HomeDirectory/.dt/icons ディレクトリに次のアイコン・イメージ・ファイルを作成します。
fax.m.pm、サイズ 32 × 32 ピクセル
fax.t.pm、サイズ 16 × 16 ピクセル
[デスクトップツール]アプリケーション・グループにある[アクションの再読込み]をダブルクリックします。
書き込み権をもっているディレクトリ(たとえば、ホーム・ディレクトリ)に FaxComposer という名前の実行可能ファイルを作成します。
MAP アクションの作成例MAP アクション作成例アクション作成例
ファックス送信するファイルのほとんどがテキスト・エディタで作成され、データ型 TEXTFILE (フィイル名は *.txt) であるものとします。
次の手順は、データ型の[選択]メニューに Fax メニュー項目を追加します。
前の例で作成したファイル HomeDirectory/.dt/types/Fax.dt を開きます。
次のマップ・アクション定義をファイルに追加します。
ACTION Fax
{
ARG_TYPE TEXTFILE
TYPE MAP
MAP_ACTION FaxComposer
}
ファイルを保存します。
TEXTFILE のデータ型属性定義を /usr/dt/appconfig/types/language/dtpad.dt から新規ファイル HomeDirectory/.dt/types/textfile.dt にコピーします。Fax アクションを ACTIONS フィールドに追加します。
DATA_ATTRIBUTES TEXTFILE
{
ACTIONS Open,Print,Fax
ICON Dtpenpd
…
}
ファイルを保存します。
アプリケーション・マネージャを開き、[デスクトップツール]アプリケーション・グループにある[アクションの再読込み]をダブルクリックします。
アクションおよびデータ型データベースを再読み込みするにはデータ型再読み込みデータ型アクションの再読み込みアクション再読み込みデータベースアクションの再読み込み[アクションの再読込み]アクションデータベース再読み込み[アクションの再読込み]アクション
新規または編集されたアクション定義を有効にするには、デスクトップはデータベースを再読み込みしなければなりません。
[デスクトップツール]アプリケーション・グループを開き、[アクションの再読込み]をダブルクリックします。
または、次のコマンドを実行します。
dtaction ReloadActions
[アクションの再読込み]アクション
ReloadActions は、アイコンのラベルが[アクションの再読込み]であるアクション名です。
アクション・データベースは、次を行う場合にも再読み込みされます。
ログインする
ワークスペース・マネージャを再起動する
[ファイル]メニューから[保存]を選択することにより[アクション作成]ウィンドウにあるアクションを保存する
アクションのアクション・ファイル(アイコン)の作成アクション・アイコン作成アプリケーション・アイコン作成アクション・ファイル作成アクションファイル表現、「アクション・ファイル」を参照してくださいアクション・アイコンアイコンアクション・アイコンアクションアイコン表現
アクション・ファイルアクション・ファイル は、ファイル・マネージャまたはアプリケーション・マネージャにあるアクションを視覚的に表現するために作成されるファイルです。
アプリケーション・マネージャにある「アクション・ファイル」(「アクション・アイコン」または「アプリケーション・アイコン」とも呼ばれます)
アクション・ファイルのアイコンはアクションを表現するので、
アクション・アイコンアクション・アイコンと呼ぶこともあります。基本となるアクションがアプリケーションを起動する場合、アクション・ファイル・アイコンをアプリケーション・アイコンと呼びます。
アクション・アイコンをダブルクリックすると、アクションを実行します。アクション・アイコンはドロップ領域にもなります。
アクション・ファイル(アクション・アイコン)を作成するには
アクション名前
アクション名と同じ名前の実行可能ファイルを作成します。ファイルの内容は関係ありません。
たとえば、アクション定義が次のようになっている場合、アクション・ファイルは MyFavoriteApp という名前の実行可能ファイルになります。
ACTION MyFavoriteApp
{
EXEC_STRING Mfa -file %Arg_1%
DESCRIPTION Runs MyFavoriteApp
ICON Mfapp
}
ファイル・マネージャとアプリケーション・マネージャでは、MyFavoriteApp ファイルはアイコン・イメージ Mfapp.size.type を使用します。 MyFavoriteApp のアイコンをダブルクリックすると、アクションの実行文字列を実行し、アイコンのアイテムヘルプは DESCRIPTION フィールド (Runs MyFavoriteApp) の内容になります。
ヘルプアクション・ファイルについてDESCRIPTION フィールド
アクション・ラベルアクションラベルラベルアクションLABEL アクション・フィールド
アクション定義に LABEL フィールドが含まれている場合、ファイル・マネージャおよびアプリケーション・マネージャでは、ファイル名 (action_name) ではなく、このフィールドの内容によってアクション・ファイルにラベルが付けられます。たとえば、アクション定義に次のものが含まれる場合、アクション・アイコンには「Favorite Application」というラベルが付けられます。
ACTION MyFavoriteApp
{
LABEL Favorite Application
…
}
アクションが使用するアイコン・イメージの指定アクション〜のアイコンアイコンアクション
ICON フィールドを使用して、アクション用に作成されたアクション・アイコン用にファイル・マネージャおよびアプリケーション・マネージャで使用されるアイコンを指定します。
アイコンを指定しないと、システムは
アクションデフォルト・アイコン
デフォルトのアクション・アイコン・イメージ・ファイル /usr/dt/appconfig/icons/language/Dtactn.* を使用します。
デフォルトのアクション・アイコン・イメージ
デフォルトのアクション・アイコンは、次のようなリソースを使用して変更できます。
actionIcon リソース
*actionIcon: icon_file_name
icon_file_name は、ベース名または絶対パス名を指定できます。
ICON フィールドの値は次のようになります。
ICON フィールド可能な値
ベース・ファイル名
ベース・ファイル名
ベース・ファイル名は、アイコン・イメージが入っているファイル名からサイズ (m と t) およびイメージ型 (bm と pm) を表すファイル拡張子を取り除いたものです。たとえば、ファイル名が GameIcon.m.pm と GameIcon.t.pm の場合、GameIcon を使用します。
ベース・ファイル名を使用する場合、アイコン・ファイルは次のアイコン検索パスにあるディレクトリになければなりません。
個人用アイコン: HomeDirectory/.dt/icons
システム共通アイコン: /etc/dt/appconfig/icons/language
アイコン・ファイルへの絶対パス。完全なファイル名も含まれます。
アイコン・ファイルがアイコン絶対パス上にない場合にだけ絶対パスを使用してください。たとえば、アイコン・ファイル GameIcon.m.pm がディレクトリ /doc/projects にある場合、アイコン検索パスにはないので、ICON フィールドの値は /doc/projects/GameIcon.m.pm になります。
は、作成しなければならないアイコンのサイズとそれに対応するファイル名の一覧です。
アイコン名とアクション・アイコンのサイズ
サイズ(ピクセル単位)
ビットマップ名
ピックスマップ名
48 × 48
name.l.bm
name.l.pm
32 × 32
name.m.bm
name.m.pm
16 × 16
name.t.bm
name.t.pm
既存のアクション定義を変更するにはアクション編集アクション変更アクションの変数
システムのどの使用可能なアクション(組み込みアクションも含む)も変更できます。
組み込みアクション・データベースを変更するときは、注意してください。組み込みアクションは、デスクトップ・アプリケーションとよく動作するように設計されています。
変更するアクション定義を検出します。
アクション定義のデフォルトの位置は、次のとおりです。
組み込みアクション: /usr/dt/appconfig/types/language
システム共通アクション: /etc/dt/appconfig/types/language
個人用アクション: HomeDirectory/.dt/types
システム位置が追加されている可能性もあります。アクション用にシステムが使用している位置のリストを参照するには、次のコマンドを実行します。
アクション検索パス、「データベース検索パス」を参照してください
dtsearchpath -vdtsearchpath
システムは、
DTDATABASESEARCHPATH 変数使用方法 DTDATABASESEARCHPATH の下に表示されるディレクトリを使用しています。
必要に応じて、アクション定義のテキストを次のいずれかのディレクトリにある新規または既存のファイルにコピーします。
システム共通アクション: /etc/dt/appconfig/types/language
個人用アクション: HomeDirectory/.dt/types
/usr/dt/appconfig/types/language ディレクトリにあるファイルの編集はできないため、組み込みアクションをコピーしなければなりません。
アクション定義を編集します。編集が終わったらファイルを保存します。
[デスクトップツール]アプリケーション・グループにある[アクションの再読込み]をダブルクリックします。
アクション定義における優先順位アクション優先規則優先順位アクション・データベースの構成
アクションを呼び出すと、システムはデータベースで一致するアクション名を検索します。その名前に対して2つ以上のアクションが存在する場合、システムはどちらを使用すべきかを決定するために優先規則を使用します。
他の優先規則が適用されない場合、優先順位は定義の位置に基づきます。次のリストは、優先度の高い順に並べてあります。
個人用アクション (HomeDirectory/.dt/types)。
システム共通ローカル・アクション (/etc/dt/appconfig/types/language)。
システム共通リモート・アクション
(hostname:/etc/dt/appconfig/types/language)。検索されたリモート・ホストは、アプリケーション検索パス上にあります。
組み込みアクション (/usr/dt/appconfig/types/language)。
指定のディレクトリ内で、*.dt ファイルはアルファベット順に読み込まれます。
ARG_CLASS フィールドARG_CLASS、
ARG_TYPE フィールドARG_TYPE、
ARG_MODE フィールドARG_MODE、または
ARG_COUNT フィールドARG_COUNT
によって制限されたアクションは、制限されていないアクションよりも優先されます(これらの4つのフィールドのデフォルト値は * です)。
2つ以上の制限が適用される場合、優先順位の高い順に並べると次のようになります。
ARG_CLASS
ARG_TYPE
ARG_MODE
ARG_COUNT
2つ以上の制限された ARG_COUNT が存在する場合、優先順位の高い順に並べると次のようになります。
特定の整数値 n
<n
>n
*
たとえば、次のアクション定義の一部分について考えてみます。
ACTION EditGraphics
# EditGraphics-1
{
ARG_TYPE XWD
…
}
ACTION EditGraphics
# EditGraphics-2
{
ARG_COUNT 0
…
}
ACTION EditGraphics
# EditGraphics-3
{
ARG_TYPE *
…
}
EditGraphics アクション・アイコンをダブルクリックすると、引き数が指定されず ARG_COUNT 0 が優先されるので EditGraphics-2 を起動します。XWD 型ファイル引き数を指定すると、XWD ARG_TYPE が優先されるので EditGraphics-1 が使用されます。EditGraphics-3 は、その他のファイル引き数すべてに対して使用されます。
COMMAND アクションの実行文字列の作成アクション実行文字列実行文字列アクションのコマンド行アクション実行文字列COMMAND アクション実行文字列EXEC_STRING フィールド、「実行文字列」を参照してください
COMMAND アクション必要なフィールドCOMMAND アクションには、必ず ACTION と EXEC_STRING の2つのフィールドが必要です。
ACTION action_name
{
EXEC_STRING execution_string
}
実行文字列は、COMMAND アクション定義のもっとも重要な部分です。この文字列は、[端末エミュレータ]ウインドウで実行するコマンド行と類似の構文を使用しますが、ファイルと文字列の引き数を処理するための追加構文も含みます。
実行文字列の一般的な機能実行文字列一般的な機能
実行文字列には次のものが含まれています。
ファイル引き数と非ファイル引き数
シェル構文
実行可能ファイルの絶対パスまたは名前
アクション引き数アクション引き数引き数アクションの〜
引き数は、コマンドまたはアプリケーションを適切に実行するのに必要な情報です。たとえば、テキスト・エディタにあるファイルを開くのに使用できるコマンド行について考えてみます。
dtpad filename
このコマンドでは、filename は dtpad コマンドのファイル引き数です。
アプリケーションやコマンドのようにアクションは引き数をもつことができます。COMMAND アクションが使用できるデータ型は、次の2つです。
ファイル
文字列データ
実行文字列でのシェルの使用実行文字列シェル構文シェル実行文字列の構文
実行文字列は、シェルを介してではなく直接実行されます。しかし、実行文字列でシェルを明示的に呼び出すことができます。
次に例を示します。
EXEC_STRING \
/bin/sh -c \
'tar -tvf %(File)Arg_1% 2>&1 | \${PAGER:-more};\
echo “\\n*** Select Close from the Window menu to close ***”'
実行可能ファイルの名前または絶対パス実行文字列実行可能ファイルの指定
アプリケーションが PATH 変数PATH 変数にリストされているディレクトリにある場合は、単純な実行可能ファイル名を使用できます。アプリケーションが他のどこかにある場合は、実行可能ファイルへの
実行文字列〜の絶対パス
絶対パスを使用しなければなりません。
引き数を使用しないアクションの作成実行文字列引き数なしアクション引き数なしアクションデータなしで
コマンド行からアプリケーションを起動するのに使用する EXEC_STRING に対しても同じ構文を使用します。
例
次の実行文字列は、Xクライアント xcutsel を起動するアクションの一部です。
EXEC_STRING xcutsel
次の実行文字列は、デジタル・クロックでクライアント xclock を起動します。コマンド行にはコマンド行オプションが含まれていますが、引き数は必要ありません。
EXEC_STRING xclock -digital
ドロップされたファイルを受け取るアクションの作成実行文字列ドロップされたファイルアクションドロップされたファイルの受け取りドロップ領域アクション・アイコンドロップされたファイル、受け取るアクション
ファイル引き数に対して、次のいずれかの構文を使用します。
Arg_n 構文
%Arg_n%
あるいは
%(File)Arg_n%
Arg_n に指定された引き数は(デフォルトでは)ファイルとみなされるので、(File) はオプションになります。
(%(String)Arg_n% の構文の使用については、
を参照してください。)
この構文により、アクション・アイコンにデータ・ファイル・オブジェクトをドロップし、そのファイル引き数でアクションを起動できます。コマンド行で n 番目の引き数を置き換えます。ローカル・ファイルまたはリモート・ファイルのどちらでも使用できます。
例
次の実行文字列は、パラメータとしてドロップされたファイルを使用して、wc -w を実行します。
EXEC_STRING wc -w %Arg_1%
次の例は、ディレクトリ引き数によってのみ動作するアクションのための定義の一部を示します。ディレクトリがアクション・アイコンにドロップされると、アクションは読み取り権および書き込み権の両方をもつディレクトリにあるすべてのファイルのリストを表示します。
ACTION List_Writable_Files
{
ARG_TYPE FOLDER
EXEC_STRING /bin/sh -c 'ls -l %Arg_1% | grep rw-'
…
}
ファイル引き数を要求するアクションの作成実行文字列ファイルを要求するアクションファイルを要求する引き数〜を要求するアクションを要求する2
ファイル引き数に対しては、次の構文を使用します。
%(File)“prompt”%
この構文は、アクション・アイコンをダブルクリックしたときに、ファイル名の要求を表示するアクションを作成します。
たとえば、次の実行文字列は、wc -w コマンドのファイル引き数を要求するダイアログ・ボックスを表示します。
EXEC_STRING wc -w %(File)“Count words in file:”%
ドロップされたファイルを受け取るかファイルを要求するアクションの作成アクションドロップされたファイルを受け取るか要求する
ファイル引き数に対して、次のいずれかの構文を使用します。
%Arg_n“prompt”%
あるいは
%(File)Arg_n“prompt”%
この構文は、次の動作を行うアクションを作成します。
ファイル引き数としてドロップされたファイルを受け取る。
アクション・アイコンをダブルクリックしたときに、ファイル名を要求するダイアログ・ボックスを表示する。
たとえば、次の実行文字列は、ドロップされたファイルで lp -oraw を実行します。アイコンをダブルクリックするとアクションが起動される場合、ダイアログ・ボックスが表示され、ファイル名を要求します。
EXEC_STRING lp -oraw %Arg_1“File to print:”%
非ファイル引き数を要求するアクションの作成実行文字列文字列の要求アクション非ファイル引き数引き数非ファイル文字列のアクション引き数アクション引き数、非ファイル
非ファイル・パラメータに対しては、次のいずれかの構文を使用します。
%“prompt”%
あるいは
%(String)“prompt”%
引用符で囲まれたテキストは、デフォルトでは文字列データとして解釈されるので、(String) はオプションになります。この構文は、非ファイル・データを要求するダイアログ・ボックスを表示します。ファイル名を要求するときは、この構文は使用しないでください。
たとえば、次の実行文字列は xwd コマンドを実行し、各ピクセルに追加される値を要求します。
EXEC_STRING xwd -add %“Add value:”% -out %Arg_1“Filename:”%
文字列としてのファイル引き数
引き数に対して次の構文を使用します。
%(String)Arg_n%
たとえば、次の実行文字列は、コマンド lp -tbanner filename. を使用して、ファイル名が入っているバナーとファイルをいっしょに印刷します。
EXEC_STRING lp -t%(String)Arg_1% %(File)Arg_1“File to print:”%
アクションへのシェル機能の提供アクションシェルの提供シェルアクションへの〜シェルアクションで使用される
次のように実行文字列にシェルを指定します。
/bin/sh -c 'command'
/bin/ksh -c 'command'
/bin/csh -c 'command'
例
次の実行文字列は、シェルのパイプを使用するアクションを示します。
EXEC_STRING /bin/sh -c 'ps | lp'
次はさらに複雑な実行文字列で、シェルの処理を必要とし、ファイル引き数を受け取ります。
EXEC_STRING /bin/sh -c 'tbl %Arg_1“Man Page:”% | troff -man'
次の実行文字列では、引き数は圧縮ファイルである必要があります。アクションはファイルの圧縮を解除し、lp -oraw を使用してそのファイルを印刷します。
EXEC_STRING /bin/sh -c 'cat %Arg_1 “File to print:“% | \
uncompress | lp -oraw'
次の実行文字列は、シェル・スクリプトを起動します。
EXEC_STRING /usr/local/bin/StartGnuClient
複数のファイル引き数を処理する COMMAND アクションの作成実行文字列複数のファイル引き数引き数アクションの複数
アクションが複数のファイル引き数を処理するには、次の3つの方法があります。
アクションは繰り返し(各引き数に対しては1回ずつ)実行できます。EXEC_STRING に単一のファイル引き数があり、アクション・アイコンに複数のファイルをドロップすることにより複数のファイル引き数が指定される場合、アクションは各ファイル引き数ごとに別々に実行されます。
たとえば、複数のファイル引き数が次のアクション定義に対して指定される場合、DisplayScreenImage アクションは繰り返し実行されます。
ACTION DisplayScreenImage
{
EXEC_STRING xwud -in %Arg_1%
…
}
アクションは、2つ以上の交換不可能なファイル引き数を使用できます。たとえば、次の例では、特定の順番で並んでいる2つの一意のファイルが必要です。
xsetroot -cursor cursorfile maskfile
アクションは、各ファイル引き数で連続して同じコマンドを実行できます。たとえば、次の例では、1回の印刷ジョブで1つ以上のファイルを印刷します。
pr file [file …]
交換不可能な引き数を処理するアクションの作成アクション交換不可能な引き数引き数交換不可能な、アクションの
次の構文規約のいずれかひとつを使用します。
アクションにファイル名をプロンプトさせる場合、各ファイル引き数ごとに次の構文を使用します。
%(File)“prompt”%
各引き数ごとに異なる prompt 文字列を使用します。
たとえば、次の実行文字列は2つのファイルをプロンプトします。
EXEC_STRING xsetroot -cursor %(File)“Cursor bitmap:”% \
%(File)“Mask bitmap:”%
ドロップされたファイルを受け取るには、各ファイル引き数に対して次の構文を使用します。
%Arg_n%
この場合、各引き数ごとに異なる n の値を使用します。次に例を示します。
EXEC_STRING diff %Arg_1% %Arg_2%
交換可能なファイル引き数を処理するアクションの作成アクション交換可能な、引き数引き数アクションの交換可能な〜
次の構文規約のいずれかひとつを使用します。
ドロップされたファイルを受け取り、command file1 file2 … という形式でコマンドを発行するアクションを作成するには、ファイル引き数に対して次の構文を使用します。
%Args%
複数のドロップされたファイルを受け取る、またはダブルクリックしたときに単一ファイルのプロンプトを表示するアクションを作成するには、ファイル引き数に対して次の構文を使用します。
%Arg_1“prompt”% %Args%
アクションは、command file1 file2 … という形式でコマンドを発行します。
例
次の実行文字列は、複数のファイル引き数をもつアクションを作成します。
EXEC_STRING pr %Args%
この実行文字列は、次のコマンド行を実行します。
pr file1 file2
次の実行文字列は、前の例と似たアクションを作成しますが、この例のアクションをダブルクリックすると、プロンプトを表示します(ファイル引き数はありません)。
EXEC_STRING pr %Arg_1“File(s) to print:”% %Args%
複数のドロップされたファイルを処理するアクションの作成アクション複数のドロップされたファイルの受け取り
複数のドロップされたファイル引き数を受け取り、command file1 file2 … という形式のコマンド行を実行するには、次の構文を使用します。
%Args%
例
次の実行文字列は、複数のファイルに対して Checkout という名前のスクリプトを実行します。
EXEC_STRING /usr/local/bin/Checkout \
%Arg_1“Check out what file?”% %Args%
次の実行文字列は、複数のファイルに対して lp -oraw を実行します。
EXEC_STRING lp -oraw %Arg_1“File to print:”% %Args%
COMMAND アクションのウィンドウ・サポートと端末エミュレータアクション〜のウィンドウ・サポート端末エミュレータアクションの〜
COMMAND アクションがデスクトップ上でウィンドウをサポートするには、次の方法があります。
アプリケーションがそれ自身のウィンドウをもっている場合、追加のウィンドウ・サポートを提供しないようにアクションに書き込むことができます。このオプションは、直接ユーザ入力を必要とせず、出力をもっていないコマンドをアクションが実行するときにも使用されます。
アプリケーションを端末エミュレータ・ウィンドウで実行しなければならない場合、ウィンドウを開いてからアプリケーションを実行するようにアクションに書き込むことができます。この場合、いくつかの端末オプションがあります。
アクションのウィンドウ・サポートの指定
WINDOW_TYPE フィールドを使用して、アクションが必要とするウィンドウ・サポートの型を指定します。
WINDOW_TYPEWINDOW_TYPE フィールド
提供されるウィンドウ・サポート
NO_STDIONO_STDIO ウィンドウ・サポート
提供されません。アプリケーションがそれ自身のウィンドウをもっているか、コマンドが表示できる出力をもっていない場合、NO_STDIO を使用します。
PERM_TERMINALPERM_TERMINAL ウィンドウ・サポート
常時端末エミュレータ・ウィンドウ。アクションは端末ウィンドウを開き、明示的に閉じるまで開いたままにします。ウィンドウにデータを入力できます。入力を行い、出力を作成し、その後終了するコマンド(たとえば ls directory)で使用します。
TERMINALTERMINAL ウィンドウ・サポート
一時端末エミュレータ・ウィンドウ。アクションは端末ウィンドウを開き、コマンドが完了するとすぐに閉じます。全画面コマンド(たとえば vi)で使用します。
端末エミュレータのコマンド行オプションの指定端末エミュレータアクションのコマンド行オプションアクション端末オプション
アクション定義にある TERM_OPTS フィールドを使用して、端末エミュレータのコマンド行オプションを指定します。
たとえば、次のアクションは実行ホストをプロンプトします。
ACTION OpenTermOnSystemUserChooses
{
WINDOW_TYPE PERM_TERMINAL
EXEC_HOST %(String)“Remote terminal on:”%
TERM_OPTS -title %(String)“Window title:”%
EXEC_STRING $SHELL
}
他のデフォルト端末エミュレータの指定端末エミュレータアクションのデフォルトアクション〜の端末エミュレータ・サポートアクションデフォルト端末エミュレータ
アクションが使用するデフォルトの端末エミュレータは、dtterm です。これを別の端末エミュレータに変更できます。デフォルトの端末エミュレータは、アクションが使用する端末エミュレータを明示的に指定しないときに使用されます。
アクションが使用する端末エミュレータは、次のコマンド行オプションをもっていなければなりません。
-title window_title
-e command
次の2つのリソースは、アクションが使用するデフォルトの端末エミュレータを決定します。
localTerminal リソース
localTerminal リソースは、ローカル・アプリケーションが使用する端末エミュレータを指定します。
*localTerminal: terminal
次に例を示します。
*localTerminal: xterm
remoteTerminal リソースは、リモート・アプリケーションが使用する端末エミュレータを指定します。
*remoteTerminal: host:terminal [,host:terminal…]
次に例を示します。
*remoteTerminal: sysibm1:/usr/bin/xterm,syshp2:/usr/bin/yterm
特定の引き数へのアクションの制限アクション引き数の制限引き数アクションの制限
特定の型の引き数にアクションを制限すると、アクションが改良されます。たとえば、PostScript ファイル引き数に対してのみ PostScript ファイルのビューアを呼び出すようにアクションを制限すると有用です。つまり制限があると、PostScript ファイル以外を指定したときに、アクションはエラー・ダイアログを返してきます。
次のことに基づいてアクションを制限することができます。
ファイル引き数のデータ型。
ファイル引き数の数 — たとえば、引き数なしとひとつ以上の引き数を指定する場合とでは、アクション・アイコンのドロップ・アンド・ダブルクリック動作が異なります。
引き数の読み取りまたは書き込みモード。
指定されたデータ型へのアクションの制限アクションデータ型によって制限されたデータ型〜に基づくアクションの制限
ARG_TYPE フィールド
ARG_TYPE フィールドを使用して、アクションが有効であるデータ型を指定します。データ属性名を使用します。
コンマでエントリを区切ってデータ型のリストを入力することができます。
たとえば、次のアクション定義は Gif データ型が作成されたとした場合の例です。
ACTION Open_Gif
{
TYPE COMMAND
LABEL “Display Gif”
WINDOW_TYPE NO_STDIO
ARG_TYPE Gif
ICON xgif
DESCRIPTION Displays gif files
EXEC_STRING xgif
}
引き数の数に基づいたアクションの制限アクション引き数の数の制限引き数アクションの〜の数
ARG_COUNT フィールド
ARG_COUNT フィールドを使用して、アクションが受け入れることができる引き数の数を指定します。有効な値は次のとおりです。
*
(デフォルト) 任意の数の引き数。その他の値は * よりも優先されます。
n
任意の負でない値(0 を含む)。
>n
n よりも大きい引き数。
<n
n よりも小さい引き数。
ARG_COUNT の使用方法のひとつは、アイコンをダブルクリックするか、あるいはそのアイコンにファイルをドロップするかに応じて、異なるアクション・アイコン動作を提供することです。次節の
を参照してください。
異なるダブルクリックとドロップ動作を提供するにはアクション異なるダブルクリックとドロップ機能ARG_COUNT フィールド
次の手順を使用してドロップされたファイルを受け取るアクションを作成しますが、アクション・アイコンをダブルクリックしてもファイルを要求しません。
ダブルクリック機能のためのアクション定義を作成します。
ARG_COUNT フィールドを使用して引き数 0 を指定します。ドロップされた引き数を受け取らない EXEC_STRING の構文を使用します。
ドロップ機能のための2番目のアクション定義を作成します。
ARG_COUNT フィールドを使用して引き数 >0 を指定します。ドロップされたファイルを受け取る EXEC_STRING の構文を使用します。
たとえば、次の2つのコマンド行は vedit という名前のエディタを起動するのに使用できるものとします。
ファイル引き数を使用しないでエディタを起動するには、次のようにします。
vedit
読み込み専用ドキュメントとして開かれるファイル引き数でエディタを起動するには、次のようにします。
vedit -R filename
次の2つのアクションは、Vedit という名前のアクションのためのドロップとダブルクリック機能を作成します。ARG_COUNT 0 は暗黙的なドロップ機能定義の ARG_COUNT * よりも明確なので、データベースで一致するものを検索するときには最初のアクションが優先されます。
# Double-click functionality
ACTION Vedit
{
TYPE COMMAND
ARG_COUNT 0
WINDOW_TYPE PERM_TERMINAL
EXEC_STRING vedit
}
# Drop functionality
ACTION Vedit
{
TYPE COMMAND
WINDOW_TYPE PERM_TERMINAL
EXEC_STRING vedit -R %Arg_1%
}
引き数のモードに基づいたアクションの制限
ARG_MODE フィールドを使用して、引き数の読み込みまたは書き込みモードを指定します。有効な値は、次のとおりです。
*
(デフォルト) 任意のモード
!w
書き込み不可
w
書き込み可
リモート・システムでアプリケーションを実行するアクションの作成アクションリモート・アプリケーションの実行リモート実行アクションによる
アクションとリモート実行について説明する場合、次の2つの用語がよく使用されます。
データベース・ホストデータベース・ホスト
アクション定義が入っているシステム
実行ホスト実行ホスト〜のアクションの作成
実行可能ファイルを実行するシステム
ほとんどの場合、アクションとそのアプリケーションは同じシステム上にあります。つまり、アクションのデフォルトの実行ホストはデータベース・ホストであるため、特別な構文は必要ありません。
しかし、実行ホストがデータベース・ホストとは異なる場合、アクション定義はどこで実行文字列を実行するのか指定しなければなりません。
異なるシステム上にアクションとアプリケーションを配置するための機能は、デスクトップのクライアント/サーバ・アーキテクチャの一部です。ネットワーク・アプリケーションの詳細な説明については、
を参照してください。
リモート・アプリケーションを実行するアクションの作成EXEC_HOST フィールドDatabaseHost%LocalHost%DisplayHost%SessionHost%
EXEC_HOST フィールド実行ホストEXEC_HOST フィールドによって指定された
アクション定義 EXEC_HOST フィールドを使用して、アプリケーションの位置を指定します。
EXEC_HOST の有効な値は次のとおりです。
%DatabaseHost%DataBaseHost キーワード
アクションが定義されるホスト。
%LocalHost%
アクションが呼び出されるホスト (セッション・サーバ)。
%DisplayHost%DisplayHost キーワード
Xサーバを実行中のホスト (X端末では使用できません)。
%SessionHost%SessionHost キーワード
コントロールを行うログイン・マネージャが実行中のホスト。
hostname
名前付きホスト。アクションがひとつの特定ホスト上に必ず呼び出される環境でこの値を使用します。
%“prompt”%
アクションが呼び出されるたびにホスト名をプロンプトします。
デフォルト値は、%DatabaseHost%、%LocalHost% です。
EXEC_HOST フィールドデフォルト値
したがって、EXEC_HOST フィールドが削除されると、アクションはアクション定義が入っているホストでコマンドの実行を最初に試みます。これに失敗すると、アクションはセッション・サーバでコマンドの実行を試みます。
例
このフィールドは、ホスト ddsyd を指定します。
EXEC_HOST ddsyd
このフィールドは、ホスト名をプロンプトします。
EXEC_HOST %“Host containing application:”%
このフィールドは、アクション定義が入っているホストでアプリケーションの実行をアクションが試みるように指定します。これに失敗すると、アクションはホスト ddsyd でアプリケーションの実行を試みます。
EXEC_HOST %DatabaseHost%, ddsyd
アクションおよびデータ型定義における変数の使用変数アクション定義におけるアクション定義における変数データ型定義における変数
文字列変数と環境変数をアクションおよびデータ型定義ファイルに含むことができます。
アクションにおける文字列変数の使用アクション定義における文字列変数アクション〜の文字列変数
文字列変数定義は、定義の位置からファイルの最後まで有効です。データベース用のグローバルな文字列変数はありません。
文字列変数と環境変数が同じ名前の場合、文字列変数が優先されます。
文字列変数を定義するには
次の構文を使用します。
set variable_name=value
変数名に英数字と下線文字 (_) を使用できます。各変数定義は別の行になければなりません。
次に例を示します。
set Remote_Application_Server=sysapp
set Remote_File_Server=sysdata
文字列変数を参照するには
次の構文を使用します。
$[{]variable_name[}]
次に例を示します。
EXEC-HOST $Remote_Application_Server
CWD /net/${Remote_File_Server}/doc/project
アクションおよびデータ型における環境変数の使用環境変数アクション定義アクション環境変数
次の構文を使用して環境変数を参照します。
$[{]variable[}].
データベースが読み込まれると変数は拡張されます(その値に置き換えられます)。文字列変数と環境変数が同じ名前の場合、文字列変数が優先されます。
たとえば、次の実行文字列はログイン名が入っているバナーでファイルを印刷します。
EXEC-STRING lp -t$LOGNAME %(File)Arg_1%
コマンド行からのアクションの呼び出しアクション他のアクションの実行
デスクトップは、コマンド行からアクションを実行するための dtaction コマンドを提供します。dtaction を使用して次の部分からアクションを実行できます。
スクリプト
他のアクション
端末エミュレータ・コマンド行
dtaction の構文dtaction構文
dtaction [-user user_name] [-execHost hostname] action_name [argument [argument]…]
-user user_name
別のユーザとしてアクションを実行するための機能を提供します。dtaction が user_name 以外のユーザによって呼び出される場合、パスワードのプロンプトが表示されます。
-execHost hostname
COMMAND アクションの場合のみ。コマンドが実行されるホストを指定します。
argument
アクションに対する引き数。通常はファイル引き数です。
dtaction クライアントは追加のコマンド行オプションをもっています。詳細については、dtaction(1) のマニュアル・ページを参照してください。
異なるアクションを実行するアクションの作成アクション他のアクションの実行
アクションの EXEC_STRING にある dtaction を使用します。
たとえば、次のアクションは Spell という名前の組み込みアクション(アクションはアプリケーション・マネージャで「スペルチェック」というラベルが付けられています)を使用します。新規アクションはテキスト・エディタと Spell アクションを実行し、別の端末エミュレータ・ウィンドウにスペルミスを表示します。
ACTION EditAndSpell
{
WINDOW_TYPE NO_STDIO
EXEC_STRING /bin/sh -c 'dtaction Spell \
%Arg_1“File:”%; dtpad %Arg_1%'
}
別のユーザとして実行するアクションの作成アクション別のユーザとして実行ユーザ、アクションの〜の変更dtactionユーザを変更するときに使用される
EXEC_STRING にある次の構文を使用します。
EXEC_STRING dtaction -user user_name action_name [file_argument]
新規ユーザ (user_name) は、次のいずれかの機構を介してシステムへのディスプレイ・アクセスをもたなければなりません。
ログイン・ユーザの .Xauthority ファイルにある読み取り権
あるいは、xhost アクセス権
たとえば、次の2つのアクションは、root になるための機能と app-defaults ファイルを編集するための機能を提供します。
ACTION AppDefaults
{
WINDOW_TYPE NO_STDIO
EXEC_STRING /usr/dt/bin/dtaction -user root \
EditAppDefaults %Arg_1“File:”%
}
ACTION EditAppDefaults
{
WINDOW_TYPE TERMINAL
EXEC_STRING /bin/sh -c 'chmod +w %Arg_1%; \
vi %Arg_1%; chmod -w %Arg_1%'
}
ローカライズされたアクションの作成アクションローカライズされたローカリゼーションアクション
データ型の検索パスには言語に依存する位置も含まれています。デスクトップは、LANG の値を使用して、データ型定義が検索される位置を決定します。
ローカライズされたアクションの位置
ローカライズされたアクション定義は、アクション検索パスに応じて適切な言語に依存するディレクトリに置かなければなりません。
デフォルトの検索パスは次のとおりです。
個人用アクション: HomeDirectory/.dt/types
システム共通アクション: /etc/dt/appconfig/types/language
組み込みアクション: /usr/dt/appconfig/types/language
既存のアクションをローカライズするにはアクションラベルラベルアクションローカリゼーションアクション・ラベル
適切な言語に依存するディレクトリ(たとえば /etc/dt/appconfig/types/japanese)にファイルをコピーします。
アクション定義を言語に依存する構成ファイルにコピーします。
たとえば、アクション定義を app_root/dt/appconfig/types/C/file.dt から app_root/dt/appconfig/types/japanese/newfile.dt にコピーします。
LABEL フィールドを追加するか、既存の LABEL フィールドを変更します。
LABEL string
アプリケーション・マネージャとファイル・マネージャは、ラベル文字列を使用してアクションのアイコンを識別します。
アクション定義にある次のいずれかのフィールドをローカライズします。
ローカライズされたアイコンの場合: ICON
ローカライズされたアイテムヘルプの場合: DESCRIPTION
ローカライズされたプロンプトの場合: EXEC_STRING にある引用符で囲まれたテキスト
ToolTalk アプリケーションのアクションの作成TT_MSG アクション作成ToolTalkアプリケーション、〜のアクションToolTalkアクション、「TT_MSG アクション」を参照してください
次の情報は、ToolTalk メッセージをサポートするアプリケーションに対してのみ適用されます。
TT_MSG アクション型を使用して、ToolTalk メッセージを送信するアクションを作成します。
ACTION action_name
{
TYPE TT_MSG
…
}
addressing フィールドと disposition フィールド
ToolTalk addressing フィールドは、常に TT_PROCEDURE に設定されます。
ToolTalk disposition フィールドは、静的メッセージ・パターンの指定がデフォルトの値です。
サポートされていないメッセージ
TT_MSG 型アクションがサポートしていないものは、次のとおりです。
ToolTalk オブジェクト指向メッセージ
メッセージ内のコンテキスト引き数
TT_MSG アクションのキーワードTT_MSG アクションキーワード
キーワード
使用目的
TT_CLASS
ToolTalk class メッセージ・フィールドの値を定義します。
TT_SCOPE
ToolTalk scope メッセージ・フィールドの値を定義します。
TT_OPERATION
ToolTalk operation メッセージ・フィールドの値を定義します。
TT_FILE
ToolTalk file メッセージ・フィールドの値を定義します。
TT_ARGn_MODE
n 番目のメッセージ引き数の ToolTalk mode 属性の値を定義します。
TT_ARGn_VTYPE
n 番目のメッセージ引き数の ToolTalk vtype 属性の値を定義します。
TT_ARGn_VALUE
n 番目のメッセージ引き数の値を定義します。