フロントパネルのポップアップ・メニューと、サブパネルのアイコンのインストール・コントロールを使用して、フロントパネルをカスタマイズできます。
この章では、構成ファイルの作成および編集によるフロントパネルのカスタマイズについて説明します。
フロントパネル・コントロールと構成については、dtfpfile(4X) のマニュアル・ページを参照してください。
ワークスペース・マネージャについては、dtwm(1) と dtwmrc(4) のマニュアル・ページを参照してください。
フロントパネルは、構成ファイルのデータベースで定義されます。
構成ファイルは、フロントパネルをカスタマイズする方法を提供します。次のような変更は、構成ファイルを編集しないと実行できません。
新しいコントロールの位置をメイン・パネルに追加する
特殊な型のコントロール (クライアントのウィンドウなど) を追加する
特定のデフォルト動作を変更する。たとえば、フロントパネル・コントロールがシングルクリックとダブルクリックのどちらに反応するかを変更する
パネル構成に最大限の柔軟性を提供するため、構成ファイルは個人用、システム共通、または他のシステムに配置できます。
フロントパネルは、ワークスペース・マネージャによって作成および管理されます。
デフォルトのフロントパネル構成ファイルは、フロントパネル構成ファイル /usr/dt/appconfig/types/language/dtwm.fp で定義されます。
このファイルは変更しないでください。
フロントパネル定義は、ローカルに位置するファイルやリモート・システムのファイルに分散できます。
フロントパネルの定義に使用するファイルは、次の要求事項を満たさなければなりません。
ファイル名が .fp で終わる。例: mail.fp
ファイルがアクション・データベース検索パス上に位置する
デフォルトのアクション・データベース検索パスには、次のディレクトリがあります。次の順番で検索されます。
個人用カスタマイズ - HomeDirectory/.dt/types
システム共通カスタマイズ - /etc/dt/appconfig/types/language
組み込みパネルおよびコントロール - /usr/dt/appconfig/types/language
追加のディレクトリ HomeDirectory/.dt/types/fp_dynamic は、ユーザ・インタフェースで行われる個人用カスタマイズに使用します。このディレクトリは、手動のカスタマイズには使用しないでください。
アクション・データベース検索パスに、システムをネットワーク用に構成するためにディレクトリを追加することもあります。特に、システムがアプリケーション・サーバにアクセスするよう構成する場合は、リモート位置が追加されます。詳細は、「データベース (アクションとデータ型) 検索パス」を参照してください。
フロントパネルは、アクション・データベース検索パス上のすべての構成ファイルで作成されます。
定義のコンポーネントが競合する場合、どの定義を使用するかは優先度規則が決定します。次の場合、2 つのコンポーネントは競合します。
CONTAINER_NAME と CONTAINER_TYPE が同じコントロール名である
2 つのコンポーネントが同じ位置にある (名前は異なるが、CONTAINER_NAME、CONTAINER_TYPE、および POSITION_HINTS が同じである)
フロントパネルは、次の優先度規則を使用します。
コンポーネントのコントロール名、コンテナ名、コンテナ型がすべて同じ場合は、先に読み込まれたコンポーネントを使用します。
たとえば、次のフィールドを持つという点以外は異なるシステム共通コントロールと組み込みコントロールの場合、システム共通コントロールが優先されます。
   CONTROL TextEditor
    {	
      CONTAINER_TYPE				BOX
      CONTAINER_NAME 			Top
      ...
    }
2 つのコンポーネントが同じ位置にある場合は、読み込まれた順番に配置します。
たとえば、メインパネルに新しい個人用コントロール (CONTAINER_TYPE BOX と CONTAINER_NAME Top) を作成して POSITION_HINTS 5 を割り当てた場合、その個人用コントロールは、組み込みコントロールとその他の 5 より高い位置番号を持つすべてのコントロールを 1 つずつ右へずらします。
新規にシステム共通または個人用のコントロールを作成することによってコントロールを変更する場合は、新しいコントロール定義に同じコントロール名 CONTAINER_NAME と CONTAINER_TYPE を指定しなければなりません。指定しない場合は、既存のコントロールと新しいコントロールの両方が表示されます。
[アイコンのインストール] コントロールとポップアップ・メニューを使用してフロントパネルをカスタマイズすると、ファイルは HomeDirectory/.dt/types/fp_dynamic ディレクトリに書き込まれます。
フロントパネルは、追加のファイル HomeDirectory/.dt/sessions/dtwmfp.session を作成します。このファイルは、カスタマイズしたフロントパネルの状態をセッションごとに保存および復元するのに使用します。
フロントパネルのコントロールのポップアップ・メニューと [アイコンのインストール] コントロールを使用して、フロントパネルを大規模にカスタマイズできます。
この節では次のことを説明します。
特定の個人用カスタマイズを回避する方法。たとえば、ユーザがコントロールを削除できないようにする方法など
個人用カスタマイズを元に戻す方法。たとえば、うっかり削除してしまった 1 つのコントロールを復元するよう他のユーザが要求してきた場合の方法など
コントロールが組み込みコントロールの場合は、定義を /usr/dt/appconfig/types/language/dtwm.fp から /etc/dt/appconfig/types/language/name.fp へコピーします。
次の行をコントロール定義に追加します。
LOCKED True
[デスクトップツール] アプリケーション・グループの [フロントパネルの復元] アクションは、ユーザ・インタフェースで行われたフロントパネルのカスタマイズをすべて削除します。このアクションを使用して、フロントパネルのポップアップ・メニューで行なった個人用カスタマイズをすべて削除できます。
個々のコントロールを復元するには、次の手順に従ってください。
HomeDirectory/.dt/types/fp_dynamic ディレクトリで、コントロールを削除したときに作成されたファイルを削除します。コントロールは、削除された元のコントロールと同じ名前になります。
たとえば、アイコン・エディタ・コントロールを削除した場合、fp_dynamic ディレクトリのファイルの内容は次のようになります。
CONTROL IconEditor
{
	  ...
  DELETE   True
	}
サブパネルを削除すると、そのサブパネルとサブパネルの各コントロールに対して、別の動的ファイルが作成されます。
フロントパネルは、フロントパネルのコンポーネントの定義を集めて構築されます。各コンポーネントは、フロントパネル上のコンポーネントの配置と、コンポーネントの外観および動作を定義する構文が必要です。

フロントパネルは、次のように構成されます。
特別なコンテナは 2 種類あります。
フロントパネルの各コンポーネントは、次の構文を使用して別々に定義されます。
COMPONENT name
{
  KEYWORD       value
  KEYWORD       value
  ...
 }
キーワードには、必須なものと省略可能なものがあります。詳細は、dtfpfile(4X) のマニュアル・ページを参照してください。
パネルはトップレベルのコンポーネントです。定義には次のものが含まれます。
フロントパネル名
front_panel_name は、フロントパネルに固有の名前です。デフォルトは「FrontPanel」です。
ボックス定義には次のものが含まれます。
ボックス名
パネル内のボックスの位置 (POSITION_HINTS)
ボックス全体に適用する外観と動作を記述するフィールド
BOX box_name
{
  CONTAINER_NAME					front_panel_name
  POSITION_HINTS					position
  KEYWORD					value
  KEYWORD					value
   ...
}
コントロール定義には次のものが含まれます。
コントロール名
ボックス内のコントロールの位置 (POSITION_HINTS)
コントロールの外観と動作を記述するフィールド
CONTROL control_name
{
 	CONTAINER_TYPE					BOX or SUBPANEL or SWITCH
 	CONTAINER_NAME					box_name or subpanel_name or switch_name
 	TYPE								control_type
 	POSITION_HINTS					position
 	KEYWORD						value
 	KEYWORD						value
	...
}
サブパネル定義には次のものが含まれます。
サブパネル名
サブパネルに固有の外観と動作を記述するフィールド
SUBPANEL subpanel_name
{
	CONTAINER_NAME				control_name
	KEYWORD					value
	KEYWORD					value
   ...
 }
スイッチ定義には次のものが含まれます。
スイッチ名
ボックス内のスイッチの位置 (POSITION_HINTS)
スイッチの外観と動作を記述するフィールド
SWITCH switch_name
{
	CONTAINER_NAME				box_name
	POSITION_HINTS				position
	KEYWORD					value
	KEYWORD					value
	...
}
メイン・パネルは、サブパネルを除くフロントパネルのウィンドウです。

次の変更を実行できます。
コントロールの追加または削除
コントロールの位置の交換
システム共通: /etc/dt/appconfig/types/language/*.fp
個人用: HomeDirectory/.dt/types/*.fp
ファイルにコントロールを定義します。
コントロールのコンテナを指定するために、CONTAINER_NAME フィールドと CONTAINER_TYPE フィールドを使用します。
CONTAINER_NAME Top CONTAINER_TYPE BOX
コントロールの配置を左から右へ指定するために POSITION_HINTS を使用します。カスタマイズは組み込みコントロールに優先するので、新しいコントロールが入ると、同じ位置にあった既存のコントロールは 1 つずつ右へずれます。
構成ファイルを保存します。
フロントパネル・コントロールのアイコンを作成します。
詳細は、「コントロールが使用するアイコンの指定」を参照してください。
ワークスペース・メニューから [ワークスペースマネージャの再起動] を選択します。
たとえば、ファイル /etc/dt/appconfig/types/language/audio.fp にある次のコントロール定義は、オーディオ・アプリケーションのコントロールを [時計] と [カレンダ] コントロールの間に挿入します。
CONTROL AudioApplication
 {
  TYPE             icon
  CONTAINER_NAME   Top
  CONTAINER_TYPE   BOX
  ICON             AudioApp
  POSITION_HINTS   2
  PUSH_ACTION      StartAudioApplication
  PUSH_RECALL      true
 }
システム共通: /etc/dt/appconfig/types/language/name.fp
個人用: HomeDirectory/.dt/types/name.fp
削除するコントロールの定義を新しいファイルにコピーします。
削除するコントロールが組み込みの場合、定義は次のファイルにあります。
/usr/dt/appconfig/types/language/dtwm.fp
定義全体をコピーする必要はありませんが、必ず CONTAINER_NAME と CONTAINER_TYPE のフィールドを含む範囲をコピーしてください。
定義に DELETE フィールドを追加します。
DELETE True
構成ファイルを保存します。
ワークスペース・メニューから [ワークスペースマネージャの再起動] を選択します。
たとえば、ファイル /etc/dt/appconfig/types/language/TrashCan.fp にある次のコントロール定義は、[ごみ箱] コントロールを削除します。
CONTROL Trash
 {
  CONTAINER_NAME  Top
  CONTAINER_TYPE  BOX
  DELETE          True
 }
コントロール定義を変更する必要がある場合 (たとえばアイコン・イメージを変更する場合など) は、次の手順を実行します。
コントロール定義全体を /usr/dt/appconfig/types/language/dtwm.fp から次のファイルにコピーします。
システム共通: /etc/dt/appconfig/types/language/name.fp
個人用: HomeDirectory/.dt/types/name.fp
変更するフィールドを編集します。フィールドを追加することもできます。
ファイルを保存します。
ワークスペース・メニューから [ワークスペースマネージャの再起動] を選択します。
位置を変更するコントロールの定義を /usr/dt/appconfig/types/language/dtwm.fp から次のファイルにコピーします。
システム共通: /etc/dt/appconfig/types/language/name.fp
個人用: HomeDirectory/.dt/types/name.fp
移動するコントロールごとに、コントロール定義全体をコピーしなければなりません。
ファイルを保存します。
ワークスペース・メニューから [ワークスペースマネージャの再起動] を選択します。
たとえば、ファイル /etc/dt/appconfig/types/C/MailHelp.fp にある次のコントロール定義は、[メール] と [ヘルプ・マネージャ] のコントロールの位置を交換し、それらのコントロールを個人の変更に対してロックします。
CONTROL Mail
 {
 	POSITION_HINTS					12
 	LOCKED							True
 	...その他のコントロール定義
 }
CONTROL Help
 {
 	POSITION_HINTS					5
 	LOCKED							True
 	...その他のコントロール定義
 }
たとえば、次の 2 つのコントロールは異なる 2 つの構成ファイルで定義されます。これらのコントロールはコントロール名とコンテナ名が同じなので、同一コントロールと見なされます。
/etc/dt/appconfig/types/C/SysControls.fp にある定義
   Control ImportantApplication
    {
      CONTAINER_NAME					Top
      CONTAINER_TYPE					BOX
      POSITION_HINTS					2
      ...
    }
HomeDirectory/.dt/types/MyControls.fp にある定義
   Control ImportantApplication
    {
      CONTAINER_NAME					Top
      CONTAINER_TYPE					BOX
      POSITION_HINTS					6
      ...
    }
個人用コントロールが優先するので、コントロールは位置 6 に配置されます。
コントロール定義の ICON フィールドは、コントロールが使用するアイコン・イメージを定義します。
ICON フィールドの値は、次のいずれかになります。
ベース・ファイル名
ベース・ファイル名は、アイコン・イメージを格納しているファイル名から、サイズの拡張子 (m と t) とイメージ型 (bm と pm) を除いたものです。たとえば、ファイル名が MyGame.l.pm と MyGame.m.pm の場合は、MyGame を使用します。
ベース・ファイル名を使用する場合、アイコン・ファイルはアイコン検索パス上のディレクトリになければなりません。
個人用アイコン: HomeDirectory/.dt/icons
システム共通アイコン: /etc/dt/appconfig/icons/language
完全なファイル名を含む、アイコン・ファイルへの絶対パス
アイコン・ファイルへの絶対パスは、アイコン・ファイルがアイコン検索パス上にない場合のみ使用してください。
必要なアイコンのサイズは、コントロールの位置により決まります。
メイン・パネル - 48x48 ピクセル (name.l.pm または name.l.bm)
サブパネル - 24x24 ピクセル (name.s.pm または name.s.bm)
アイコン・ファイルを次のいずれかに配置します。
個人用アイコン: HomeDirectory/.dt/icons
システム共通アイコン: /etc/dt/appconfig/icons/language
フロントパネルのポップアップ・メニューを使用して、サブパネルを作成および変更できます。
この節では、システム共通のカスタマイズの方法を説明します。カスタマイズするには、フロントパネル構成ファイルを変更する必要があります。
サブパネルは、メイン・パネル内のコントロールに「接続」されています。

接続は、サブパネルの定義で行われます。CONTAINER_NAME フィールドは、サブパネルが接続されるコントロールを指定します。
CONTROL control_name
{
    ...
 }
SUBPANEL subpanel_name
{
 	CONTAINER_NAME 					control_name
 	...
 }
メイン・パネル上の、サブパネルを接続するコントロールの control_name を検出します。
コントロールが組み込みの場合、定義は次のファイルにあります。
/usr/dt/appconfig/types/language/dtwm.fp
新しいファイル /etc/dt/appconfig/types/language/*.fp を作成します。
サブパネルを定義します。
   SUBPANEL subpanel_name
    {
      CONTAINER_NAME			control_name
      TITLE			value
      KEYWORD			value
      ...
    }
新しい構成ファイルを保存します。
ワークスペース・メニューから [ワークスペースマネージャの再起動] を選択します。
組み込みサブパネルの一般的な属性 (タイトルなど) と内容を変更できます。
システム共通: /etc/dt/appconfig/types/language/name.fp
個人用: HomeDirectory/.dt/types/name.fp
デフォルトのサブパネル定義全体を /usr/dt/appconfig/types/language/dtwm.fp から新しいファイルへコピーします。
   SUBPANEL   subpanel_name
    {
      ...
    }
サブパネル定義を変更します。
新しい構成ファイルを保存します。
ワークスペース・メニューから [ワークスペースマネージャの再起動] を選択します。
たとえば、ファイル /users/janice/.dt/types/PerApps.fp にある次の定義は、[個人アプリケーション] サブパネル名を変更します。
SUBPANEL PersAppsSubpanel
 {
 	CONTAINER_NAME					TextEditor
 	TITLE								Janice's Applications
 }
フロントパネル構成ファイル /etc/dt/appconfig/types/language/name.fp を作成します。
システム共通コントロールをファイルに定義します。
コントロールのコンテナを指定するために、CONTAINER_NAME フィールドと CONTAINER_TYPE フィールドを使用します。
   CONTROL control_name
    {
      CONTAINER_NAME					subpanel_name
      CONTAINER_TYPE					SUBPANEL
      ...
    }
詳細は、「フロントパネル・コントロール定義」を参照してください。
構成ファイルを保存します。
ワークスペース・メニューから [ワークスペースマネージャの再起動] を選択します。
たとえば、新しいファイル /etc/dt/appconfig/types/language/DigitalClock.fp に定義された次のコントロールは、( [デスクトップツール] アプリケーション・グループの) [デジタル時計] を、すべてのユーザの [個人アプリケーション] サブパネルに追加します。
CONTROL DigitalClockControl
 {
 	TYPE						icon
 	CONTAINER_NAME			PerAppsSubpanel
 	CONTAINER_TYPE			SUBPANEL
 	ICON						Dtdgclk
 	PUSH_ACTION				DigitalClock
 	PUSH_RECALL				True
 }
メイン・パネルのコントロールを削除する方法と同じです。詳細は、「コントロールを削除するには」を参照してください。
次のフィールドをサブパネル定義に追加します。
CONTROL_INSTALL False
デフォルトでは、サブパネルを元の位置から移動していない限り、コントロールを選択するとサブパネルも閉じます。
次の手順で、サブパネルを明示的に閉じるまでサブパネルを開いておくようにフロントパネルを構成できます。
システム共通: /etc/dt/appconfig/types/language/*.fp
個人用: HomeDirectory/.dt/types/*.fp
デフォルトのパネル定義を /usr/dt/appconfig/types/language/dtwm.fp から新しいファイルへコピーします。
   PANEL FrontPanel
    {
      ...
    }
次のフィールドをパネル定義に追加します。
SUBPANEL_UNPOST False
新しい構成ファイルを保存します。
ワークスペース・メニューから [ワークスペースマネージャの再起動] を選択します。
アイコンを [アイコンのインストール] コントロールにドロップすることで、個人用のコントロールを作成できます。
この方法によって簡単にカスタマイズできますが、提供される機能はフロントパネル・コントロールの機能のサブセットになります。たとえば、[アイコンのインストール] コントロールを使用して作成されたコントロールでは、次の作業は実行できません。
アニメーションの提供
クライアント・ウィンドウの表示
イベント発生時の外観の変更 (たとえば新しいメールを受け取った場合など)
この節では、手動でフロントパネル・コントロールを作成する方法を説明します。
フロントパネル・コントロールの構文については、dtfpfile(4X) のマニュアル・ページを参照してください。
フロントパネル定義の構造は次のとおりです。
CONTROL control_name
{
  TYPE            control_type
  CONTAINER_NAME  value
  CONTAINER_TYPE  value
  外観と動作を定義している他のフィールド
}
コントロール定義の TYPE フィールドは、コントロールの基本的な動作を指定します。
| TYPE フィールド | コントロールの動作 | 
|---|---|
| icon | (デフォルト) コントロールは、コントロールをクリックするかファイルをコントロール上にドロップすると、指定されたアクションを実行します。 | 
| blank | |
| busy | ビジー・ライト。アクションが起動されると、コントロールが点滅します (イメージを切り替えます)。 | 
| client | |
| clock | |
| date | |
| file | 
この節では、コントロールを定義する一般的な手順と、さまざまな型のコントロールの作成方法を説明します。
コントロールに PUSH_ACTION と DROP_ACTION のいずれかが関連付けられている場合は、アクション定義を作成します。
これらは、コントロールをクリック、またはファイルをコントロール上にドロップすると実行されるアクションです。
コントロールのアイコン・イメージ・ファイルを作成します。
アイコンのサイズ、名前、および位置については、「アイコン・イメージ・ファイル」を参照してください。
システム共通: /etc/dt/appconfig/types/language/*.fp
個人用: HomeDirectory/.dt/types/*.fp
ファイルにコントロール定義を追加します。
ファイルを保存します。
ワークスペース・メニューから [ワークスペースマネージャの再起動] を選択します。
コントロールの動作を定義するには、次のフィールドを使用します。
たとえば、[個人アプリケーション] サブパネルに入る次のコントロールは、ユーザが獲得したゲームを実行します。
CONTROL Ball
 {
 	TYPE							icon
 	CONTAINER_NAME				PersAppsSubpanel
 	CONTAINER_TYPE				SUBPANEL
 	ICON							ball
 	PUSH_ACTION					RunBallGame
 	HELP_STRING					"Choose this control to play Ball."
 }
次のコントロールは、スイッチの左上隅に配置されます。このコントロールは、CutDisp という名前のアクションを起動します。
CONTROL StartCutDisp
 {
   TYPE							icon
   CONTAINER_NAME			Switch
   CONTAINER_TYPE			SWITCH
   POSITION_HINTS			first
   ICON							cutdisp
   HELP_STRING				"Choose this control to run cutdisp."
   PUSH_ACTION				CutDisp
 }
コントロールの動作を定義するには、次のフィールドを使用します。
ファイルのデータ型に Open アクションが定義されていなければなりません。
たとえば、次のコントロールはメイン・パネルの右側奥に配置されます。このコントロールは、テキスト・エディタをデータファイル /users/ellen/PhoneList.txt で起動します。*.txt ファイルの Open アクションは、デフォルト・アクション・データベースの一部です。
CONTROL EditPhoneList
 {
 	TYPE							file
 	FILE_NAME					/users/ellen/PhoneList.txt
 	CONTAINER_NAME				Top
 	CONTAINER_TYPE				BOX
 	POSITION_HINTS				last
 	ICON							PhoneBook
 	HELP_STRING					"This control displays Ellen's phone list."
 	PUSH_ACTION					Open
 }
ファイルをコントロール上にドロップしたときに実行されるアクションは、DROP_ACTION フィールドに指定します。このアクションは、ファイル引き数を受け取れなければなりません。
コントロール定義に PUSH_ACTION フィールドと DROP_ACTION フィールドの両方を含む場合が多いです。同じアクションをプッシュ&ドロップ・アクションに使用できます。
たとえば、[個人アプリケーション] サブパネルにある次のコントロールは、ファイル引き数を受け取る X クライアント xwud を実行します。
CONTROL Run_xwud
 {
 	CONTAINER_NAME				PerAppsSubpanel
 	CONTAINER_TYPE				SUBPANEL
 	POSITION_HINTS				2
 	ICON							XwudImage
 	PUSH_ACTION					RunXwud
 	DROP_ACTION					RunXwud
 }
コントロールの動作を定義するには、次のフィールドを使用します。
TYPE - 次のいずれかの値を指定します。
icon - コントロールに PUSH_ACTION、DROP_ACTION のいずれかを指定する場合は、この型を使用します。
file - コントロールを選択したときに、ファイル・マネージャでファイル・アイコンをダブルクリックしたときのような動作を実行する場合は、この型を使用します。
MONITOR_TYPE - イメージを変化させる条件を記述します。次のいずれかの値を使用します。
mail - コントロールは、ファイルに情報が追加されると外観が変わります。
file - コントロールは、指定されたファイルが空でなくなると外観が変わります。
たとえば、次のコントロールは、anonymous ftp を使用して自分のシステムに転送されることになっている、meetings という名前のファイルの有無を確認します。このコントロールは、[個人アプリケーション] サブパネルの一番上に配置されます。
CONTROL MonitorCalendar
 {
 	TYPE							file
 	CONTAINER_NAME				PersonalApps
 	CONTAINER_TYPE				SUBPANEL
 	POSITION_HINTS				first
 	FILE_NAME					/users/ftp/meetings
 	MONITOR_TYPE				file
 	ICON							meetingsno
 	ALTERNATE_ICON				meetingsyes
 }
1 インスタンス・コントロールは、PUSH_ACTION によって起動されたプロセスがすでに実行中かどうかをチェックします。プロセスが実行中でない場合は、PUSH_ACTION が実行されます。プロセスが実行中の場合は、ウィンドウが現在のワークスペースのウィンドウの重なりの一番上に移動します。
コントロールの動作を定義するには、次のフィールドを使用します。
PUSH_RECALL - True に設定します。
CLIENT_NAME - コントロールにクライアント名を指定します。
CLIENT_NAME の値は、アプリケーションのトップレベル・ウィンドウの WM_CLASS 属性の一番目の文字列 (res_name) に一致しなければなりません。詳細は、xprop(1) のマニュアル・ページを参照してください。
PUSH_ACTION - コントロールをクリックしたときに実行されるアクションを記述します。
たとえば次のコントロールは、MyEditor という名前のアクションを持つアプリケーションのインスタンスを 1 つ実行します。
CONTROL MyEditor
 {
 	TYPE							icon
 	CONTAINER_NAME				Top
 	CONTAINER_TYPE				BOX
 	POSITION_HINTS				15
 	PUSH_RECALL					True
 	CLIENT_NAME					BestEditor
 	PUSH_ACTION					StartMyEditor
 	ICON							MyEd
 }
クライアント・ウィンドウ・コントロールは、フロントパネルにはめ込まれたアプリケーション・ウィンドウです。たとえば、xload クライアントのウィンドウ・コントロールを作成することで、システム負荷メータをフロントパネルに入れることができます。
コントロールを定義します。
コントロールの動作を定義するには、次のフィールドを使用します。
TYPE - client に設定します。
CLIENT_NAME - 起動するクライアントを指定します。
CLIENT_NAME の値は、アプリケーションのトップレベル・ウィンドウの WM_CLASS 属性の一番目の文字列 (res_name) に一致しなければなりません。詳細は、xprop(1) のマニュアル・ページを参照してください。
ワークスペース・メニューから [ワークスペースマネージャの再起動] を選択します。
端末エミュレータのコマンド行からクライアントを起動します。
たとえば、次のコントロールは 30x20 ピクセルの負荷メータを表示します。
CONTROL LoadMeter
 {
 	TYPE							client
 	CONTAINER_NAME				Top
 	CONTAINER_TYPE				BOX
 	CLIENT_NAME					xload
 	CLIENT_GEOMETRY			30x20
 }
セッション中にクライアントが保存および復元されない場合、コントロールをクリックすると、そのコントロールがクライアントを起動するように構成するとします。たとえば、次の行を定義に追加すると LoadMeter コントロールが xload を起動するように構成できます。
PUSH_ACTION StartXload
次のアクションを作成します。
ACTION StartXload
 {
 	WINDOW_TYPE				NO_STDIO
 	EXEC_STRING				/usr/contrib/bin/X11/xload
 }
アニメーション・シーケンスを接続してコントロールを選択するか、オブジェクトをコントロール上にドロップしたときに使用できます。
アニメーション・シーケンスを指定するには、コントロールは次の条件が必要です。
型が icon である
PUSH_ACTION または DROP_ACTION を持っている
ANIMATION コンポーネントを使用して、アニメーション・シーケンスを指定します。
	ANIMATION animation_name
 	{
 		ANIMATION	icon1				[milisecond_delay]
 		ANIMATION	icon2				[milisecond_delay]
 		...
    }
icon1 や icon 2 は、アイコン名で、milisecond_delay は、アニメーション・アイコン間のミリ単位の遅延時間です。デフォルトの遅延時間は 200 ミリ秒です。
PUSH_ANIMATION フィールドと DROP_ANIMATION フィールド、またはそのどちらかをコントロール定義に追加します。値は ANIMATION シーケンス名です。
たとえば次の行は、BestEditor アプリケーションを起動するコントロールをアニメーション化します。アイコン間の遅延時間は 300 ミリ秒です。この例では、アイコン・ファイル frame1、frame2 などを作成してあると想定しています。
CONTROL BestEditor
 {
 	...
 	PUSH_ANIMATION BestEdAnimation
 	...
 }
ANIMATION BestEdAnimation
 {
 	frame1			300
 	frame2
 	...
 }
コントロールにヘルプを提供するには、次の 2 つの方法があります。
コントロール定義にヘルプ文字列を提供する
コントロールのアイテムヘルプを起動すると、ヘルプ文字列がヘルプ・ビューアに表示されます。ヘルプ文字列にはフォーマット (ヘッダなど) やリンクを指定できません。
ヘルプ文字列を表示するには、コントロール定義にヘルプ文字列を指定します。
HELP_STRING help_string
登録済みヘルプ・ボリュームにヘルプ・トピックを指定する
ヘルプ・トピックは、ヘルプ・システムの全機能を使用して書かれた情報です。ヘルプ・トピックを記述するには、デスクトップのヘルプ開発者用キットを使用する必要があります。
ヘルプ・トピックを表示するには、ヘルプ・ボリュームとトピック ID をコントロール定義に指定します。
HELP_VOLUME help_volume_name HELP_TOPIC topic_id
ワークスペース・スイッチをカスタマイズするには、次のいくつかの方法があります。
ワークスペースの数を変更する
スイッチの配置を変更する
スイッチのコントロールを変更する
次のワークスペース・マネージャ・リソースを変更します。
Dtwm*workspaceCount: n
詳細は、「システム共通ベースのワークスペース数を変更するには」を参照してください。
たとえば、次の例は 3 列のスイッチを定義します。
SWITCH Switch
 {
 	CONTAINER_NAME				box_name
 	NUMBER_OF_ROWS				3
   ...
 }
たとえば次のコントロールは、スイッチに端末エミュレータ・コントロールを入れます。
	CONTROL SwitchTerminal  
{    
	TYPE                  icon    
	CONTAINER_NAME        Switch    
	CONTAINER_TYPE        SWITCH    
	POSITION_HINTS        3    
	ICON                  Fpterm    
	LABEL                 Terminal    
	PUSH_ACTION           Dtterm    
	HELP_TOPIC            FPOnItemTerm    
	HELP_VOLUME           FPanel  
}
このコントロールは、組み込みアイコンと、[個人アプリケーション] サブパネルの端末エミュレータ・コントロールが使用するのと同じヘルプ・トピックを使用します。
フロントパネルのパネル構文により、次の作業を実行できます。
フロントパネルの位置を変更する
ウィンドウ装飾を変更する
コントロールの一般的な外観と動作を設定する
デフォルトのパネルの記述は、/usr/dt/appconfig/types/language/dtwm.fp にあります。
その他の詳しい情報については、dtfpfile(4X) のマニュアル・ページを参照してください。
新しいフロントパネル構成ファイルを /etc/dt/appconfig/types/language または HomeDirectory/.dt/types に作成します。
デフォルトのパネルの記述を /usr/dt/appconfig/types/language/dtwm.fp から新しいファイルにコピーします。
パネルの記述を編集します。
新しいパネルの記述はデフォルトに優先します。
たとえば、次のパネルは右上隅にあります。
PANEL SpecialFrontPanel
 {
   PANEL_GEOMETRY      -1+1
   ...
 }
LABEL が指定されていない場合は、control_name を使用します。
コントロールの PUSH_ACTION を実行する方法を指定するには、パネル定義の CONTROL_BEHAVIOR フィールドを使用します。
single_click - コントロールをクリックして PUSH_ACTION を実行します。
double_click - コントロールをダブルクリックして PUSH_ACTION を実行します。
フロントパネルを大幅に変更する場合は、新しく作成した方がよいでしょう。
組み込みのフロントパネル・コンポーネントとの競合を避けるために、新しいフロントパネルでは、パネルとその他のコンテナに新しい名前を付けてください。
新しいフロントパネル用のパネル・コンポーネントを作成します。固有の名前を指定します。
   PANEL front_panel_name
    {
      ...
    }
新しいコンテナ名を使用して、新しいボックスとコントロールを作成します。
既存のコンポーネントを使用する場合は、それらの定義をコピーしてから CONTAINER_NAME の値を変更する必要があります。
ワークスペース・メニューから [ワークスペースマネージャの再起動] を選択します。
次の例では、デフォルトのフロントパネルを、コントロールが 3 列になるように変更します。
/usr/dt/appconfig/types/language/dtwm.fp を HomeDirectory/.dt/types/MyFrontPanel.fp にコピーします。ファイルに書き込み権を与えます。
このファイルを編集して、新しいフロントパネルを提供します。
フロントパネル名を変更します。
PANEL NewFrontPanel
Top という名前のボックス名を変更し、そのコンテナ名を編集します。
   BOX NewFrontPanelTop
    {
      CONTAINER_NAME					NewFrontPanel
      POSITION_HINTS					first
      ... 
    }
中段と下段のボックス定義を追加します。
   BOX NewFrontPanelMiddle
    {
      CONTAINER_NAME						NewFrontPanel
      POSITION_HINTS						second
    }
   BOX NewFrontPanelBottom
    {
      CONTAINER_NAME						NewFrontPanel
      POSITION_HINTS						second
    }
次のコントロールの CONTAINER_NAME を NewFrontPanelTop に変更します。
Clock (時計)
Date (カレンダ)
Home (ホーム・フォルダ)
TextEditor (テキストエディタ)
Mail (メール)
次のコントロールの CONTAINER_NAME を NewFrontPanelBottom に変更します。
Printer (デフォルト)
Style (デスクトップ・スタイル)
Applications (アプリケーション)
Help (ヘルプ・マネージャ)
Trash (ごみ箱)
Switch (スイッチ) の CONTAINER_NAME を NewFrontPanelMiddle に変更します。
ワークスペース・メニューの [ウィンドウ] サブメニューから [ワークスペースマネージャの再起動] を選択します。