COMMAND アクションがデスクトップ上でウィンドウをサポートするには、次の方法があります。
アプリケーションがそれ自身のウィンドウを持っている場合、追加のウィンドウ・サポートを提供しないようにアクションに書き込むことができます。このオプションは、直接ユーザ入力を必要とせず、アクションが出力を持っていないコマンドを実行するときにも使用されます。
アプリケーションを端末エミュレータウィンドウで実行しなければならない場合、ウィンドウを開いてからアプリケーションを実行するようにアクションに書き込むことができます。この場合、いくつかの端末オプションがあります。
WINDOW_TYPE フィールドを使用して、アクションが必要とするウィンドウ・サポートの型を表 12-2 のように指定します。
表 12-2 WINDOW_TYPE フィールドと提供されているウィンドウ・サポート
指定されているウィンドウ・サポート |
|
---|---|
指定されません。アプリケーションがそれ自身のウィンドウを持っているか、コマンドが表示できる出力を持っていない場合は、NO_STDIO を使用します。 |
|
常時端末エミュレータ・ウィンドウ。アクションは端末ウィンドウを開き、明示的に閉じるまで開いたままにします。ウィンドウにデータを入力できます。入力を行い、出力を作成し、その後終了するコマンド (たとえば ls directory など) で使用します。 |
|
一時端末エミュレータ・ウィンドウ。アクションは端末ウィンドウを開き、コマンドが完了するとすぐに閉じます。全画面コマンド (たとえば 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: terminal
たとえば、次のようになります。
*localTerminal: xterm