この章では、デスクトップ・ワークスペース・マネージャのカスタマイズの方法について説明します。
ワークスペース・マネージャは、デスクトップが提供するウィンドウ・マネージャです。他のウィンドウ・マネージャのように、次のものをコントロールします。
ウィンドウ枠コンポーネントの外観
ウィンドウの重なり順やフォーカス動作などのウィンドウの動作
キー割り当てとボタン割り当て
アイコン化されたウィンドウの外観
ワークスペース・メニューとウィンドウ・メニュー
さらに、次のデスクトップ・コンポーネントをコントロールします。
「ワークスペース」。いくつものワークスペースをコントロールし、ワークスペースごとにどのウィンドウを開いているか監視します。
「ワークスペース背景」。スタイル・マネージャを使用して背景を変更しますが、背景の管理はワークスペース・マネージャの機能の 1 つです。
「フロントパネル」。フロントパネルは独自の構成ファイルを使用しますが、そのファイルはワークスペース・マネージャが作成および管理します。
これらのほとんどは、スタイル・マネージャで変更できます。スタイル・マネージャは、よく行われる変更を簡単に素早く実行できるようにします。他のリソースは手動で設定しなければなりません。
ワークスペース・マネージャは dtwm です。Motif ウィンドウ・マネージャに基づきます。
ワークスペース・マネージャについては、dtwm(1) と dtwmrc(4) のマニュアル・ページを参照してください。
ワークスペース・マネージャのリソースの設定については、「アプリケーション・リソースの設定」を参照してください。
フロントパネル構成ファイルについては、第 15 章「フロントパネル拡張機能のカスタマイズ」を参照してください。
リソース設定の追加情報については、「アプリケーション・リソースの設定」を参照してください。
ワークスペース・マネージャは、ウィンドウ・メニュー、ワークスペース・メニュー、ボタン割り当て、および構成ファイルからのキー割り当てに関する情報を獲得します。
ワークスペース・マネージャは、次のいずれかのファイルを使用します。
組み込みファイル: /usr/dt/config/language/sys.dtwmrc
ワークスペース・マネージャは、上記に示した順で構成ファイルを検索し、最初に見つけたファイルを使用します。
2 つ以上のセッション言語を使用するユーザは、個人用の言語依存構成ファイル HomeDirectory/.dt/language/dtwrmc を HomeDirectory/.dt/dtwmrc より優先させて作成できます。
個人用ワークスペース・マネージャ構成ファイルは、HomeDirectory/.dt/dtwmrc です。このファイルが存在している場合は使用します。
[デスクトップツール] アプリケーション・グループの [Dtwmrc の編集] をダブルクリックします。
すでに個人用 dtwmrc ファイルがある場合は、エディタに読み込まれます。ファイルがない場合は、sys.dtwmrc が HomeDirectory/.dt/dtwmrc にコピーされてからエディタに読み込まれます。
ファイルを編集します。
エディタを終了します。
ファイルは、その元のソースに関わらず、個人用 dtwmrc として保存されます。
システム共通のワークスペース・マネージャ構成ファイルは /etc/dt/config/language/sys.dtwmrc です。
HomeDirectory/.dt/dtwmrc が存在する場合は、このファイルを使用しません。
次の構文を使用します。
include { path path ... }
たとえば次の行は、/users/ellen/mymenu ファイルを参照します。
include { /users/ellen/mymenu }
include 文は、構成ファイルをすべてコピーせずに機能を追加する場合に便利です。たとえば、すべての構成ファイルを管理せずに新しいキー割り当てを作成する場合、次の内容の HomeDirectory/.dt/dtwmrc ファイルを作成できます。
include { /etc/dt/config/C/sys.dtwmrc } Keys DtKeyBindings { Alt<Key>F5 root f.menu Applications } Menu Applications { "GraphicsApp" f.exec "/usr/bin/GraphicsApp/GApp" ... }
構成ファイルに対する変更内容を有効にするには、必ずワークスペース・マネージャを再起動してください。
ワークスペース・メニューから [ワークスペースマネージャの再起動] を選択します (ポインタが背景上にあるときにマウス・ボタン 3 を押します)。
ワークスペース名やワークスペース数の変更など、ワークスペースのカスタマイズの多くは、デスクトップのインタフェースを使用して実行できます。ただし、システム共通デフォルトを設定するリソースは、ワークスペース・マネージャが提供します。
デフォルトのデスクトップ設定では、4 つのワークスペースが提供されます。ワークスペース・スイッチに関連付けられたポップアップ・メニューを使用して、ワークスペースの追加や削除ができます。
/usr/dt/app-defaults/C/Dtwm ファイルは、workspaceCount リソースを持っています。このリソースには、次のようにワークスペースのデフォルト数が設定されています。
Dtwm*0*workspaceCount: 4 Dtwm*workspaceCount: 1
画面 0 には、複数のワークスペースが指定されています。他の画面には、1 つのワークスペースが指定されています。
/etc/dt/config/C/sys.resources ファイルを作成して (あるいは、既に存在する場合は、そのファイルを変更して)、ワークステーション上のすべての新規ユーザのために、ワークスペースのデフォルト数を変更できます。
たとえば次のリソースは、一次画面のシステム共通ワークスペース数を 6 に設定します。
Dtwm*0*workspaceCount: 6
ワークスペース・マネージャのリソースの設定については、「アプリケーション・リソースの設定」を参照してください。
たとえば次のリソースは、ワークスペース数を 6 に設定します。
Dtwm*workspaceCount: 6
内部的には、ワークスペースは番号割り当て規則 wsn (n は 0、1、2 など) によって番号が付けられます。たとえば、4 つのデフォルト・ワークスペースは、内部的に ws0 から ws3 までの番号が付けられます。
Dtwm*wsn: name
ワークスペース・マネージャのリソースの設定については、「アプリケーション・リソースの設定」を参照してください。
たとえば次のリソースは、4 つのデフォルト・ワークスペースを指定した名前に設定します。
Dtwm*ws0*title: Anna Dtwm*ws1*title: Don Dtwm*ws2*title: Julia Dtwm*ws3*title: Patti
背景イメージを作成します。ビットマップ・ファイルまたはピックスマップ・ファイルにしてください。
次のいずれかのディレクトリに背景を指定します (ディレクトリを作成しなければならない場合もあります)。
システム共通背景: /etc/dt/backdrops
個人用背景: HomeDirectory/.dt/backdrops
ワークスペース・メニューから [ワークスペースマネージャの再起動] を選択します。
システム共通背景と個人用背景は、/usr/dt/backdrops の組み込み背景に追加されます。
既存の組み込み背景は、同じ名前の個人用背景またはシステム共通背景を作成することによって置き換えることができます。
背景は、ディスプレイのルート・ウィンドウ全体を覆っています。スタイル・マネージャの [背景] ダイアログ・ボックスは、背景が透過的である NoBackdrop 設定を提供します。
すべてのワークスペース背景の背後には、1 つのルート・ウィンドウしかありません。したがって、ルート・ウィンドウにあるグラフィック・イメージは、すべてのワークスペースで存在します。どのワークスペースがルート・ウィンドウを背景で覆うかを指定できます。ただし、NoBackdrop が有効である場合、表示可能なイメージはすべてのワークスペースで同じになります。
グラフィック・イメージを作成します。
これは、ルート・ウィンドウにイメージを表示するためのツールの形式でなければなりません。たとえば xsetroot を使用する場合は、ビットマップ・ファイルを作成しなければなりません。
ファイルが存在しない場合は、実行可能ファイル HomeDirectory/.dt/sessions/sessionetc を作成します。
sessionetc ファイルは、ログインするたびに実行されます。
コマンドを入力して、sessionetc ファイルのイメージを表示します。
たとえば次のコマンドは、ルート・ウィンドウに指定したビットマップを表示します。
xsetroot -bitmap /users/ellen/.dt/icons/root.bm
ワークスペース・マネージャには、次の 3 つのデフォルト・メニューがあります。
ワークスペース・メニュー - ルート・メニューとも呼ばれます。ポインタが背景にあるときに、マウス・ボタン 3 を押すと表示されます。このメニューは、ボタン割り当てによってマウス・ボタンに関連付けられています。
ウィンドウ・メニュー - ポインタがウィンドウ・メニュー・ボタン (ウィンドウ枠の左上隅) 上にあるときに、マウス・ボタン 1 または 3 を押すと表示されます。このメニューは、windowMenu リソースによってボタンに関連付けられています。
フロントパネル・メニュー - ポインタがフロントパネルのウィンドウ・メニュー・ボタン上にあるときに、マウス・ボタン 1 または 3 を押すと表示されます。
ワークスペース・マネージャのメニュー構文は、次のとおりです。
Menu MenuName { selection1 [mnemonic] [accelerator] function [argument] selection2 [mnemonic] [accelerator] function [argument] ... }
selection
メニューに表示されるテキストまたはビットマップ。テキストにスペースを入れるときは、テキストを引用符で囲みます。ビットマップには、@/path 構文を使用します。
mnemonic
メニューが表示されたときに、キーボード・ショートカットとして動作する 1 つの文字。form_character で指定します。
accelerator
メニューが表示されているかどうかに関わらず使用可能なキーボード・ショートカット。アクセラレータの構文は modifier<Key> Keyname で、修飾子は Ctrl、Shift、Alt (拡張文字)、または Lock です。すべての可能なキー名のリストについては、システムの X11 include ディレクトリの keysymdef.h ファイルを参照してください。
function
選択したときに実行される関数。関数のリストについては、dtwmrc(4) のマニュアル・ページを参照してください。
argument
関数の引き数。詳細は、dtwmc(4) のマニュアル・ページを参照してください。
たとえば、次の Restore というラベルの付いたメニュー項目は、ウィンドウを元に戻します。メニューが表示されたときに R と入力してもウィンドウは復元されます。拡張文字 F5 を押しても同じです。
Restore _R Alt<Key> F5 f.normalize
ワークスペース・マネージャのメニュー構文の詳細は、dtwmrc(4) のマニュアル・ページを参照してください。
フロントパネルの [ツール] サブパネルにある、[メニューに項目を追加] をクリックします。
[アイテムをワークスペース・メニューに追加] ダイアログが表示されます。
絶対パスを入力するか [ブラウズ] をクリックし、新しく追加するファイルのパスを選択します。
指定したファイルは、通常はこのホストで使用可能です。このファイルは、実行可能ファイル、またはホストに登録されているデータ型のファイル (たとえばオーディオやマニュアルページ) である必要があります。
ファイル名を含んだ絶対パスが、テキストボックスに表示されます。
[追加] をクリックして、ファイルをメニューに追加します。
ファイルが、ワークスペース・メニューの一番上に追加されます。デフォルトのアイコン (ある場合) とファイル名が、メニュー項目のアイコンとテキストとして使用されます。
ワークスペース・メニューのメニュー項目の位置を変更するには、「ワークスペース・メニューを変更するには」を参照してください。
フロントパネルの [ツール] サブパネルにある [ワークスペース・メニューのカスタマイズ] をクリックします。
ワークスペース・メニューの階層構造がファイル・マネージャの構成フォルダとして表示されます。このフォルダ内のファイルは各メニュー項目を表し、サブフォルダは各サブメニューを表します。ワークスペース・メニューフォルダ内の配列を変更して、ワークスペース・メニューの配列を変更します。
新しい位置に移動したいメニュー項目を、該当するサブフォルダにドラッグ&ドロップします。
ツリー表示モードでファイル・マネージャを使用する場合のヘルプについては、『Solaris 共通デスクトップ環境 ユーザーズ・ガイド』を参照してください。
不要なメニュー項目を削除する場合は、該当するファイルをフロントパネルのごみ箱にドラッグします。
メニュー項目の名前を変更したい場合は、該当するファイル名かフォルダ名を編集します。
すべての変更が完了したら、ファイル・マネージャの [ファイル] メニューから [ワークスペース・メニューの更新] を選択してファイル・マネージャを終了します。
ワークスペース・メニューに、ワークスペース・メニューのフォルダで変更した内容が反映されます。
個人用: HomeDirectory/.dt/dtwmrc
システム共通: /etc/dt/config/language/sys.dtwmrc
これらのファイルの作成方法の詳細は、「ワークスペース・マネージャ構成ファイル」を参照してください。
新規メニューを作成します。
Menu menu_name { ... }
詳細は、「ワークスペース・マネージャのメニュー構文」を参照してください。
ボタン割り当てを作成または編集して新規メニューを表示します。
既存のメニューを新規メニューに置き換える場合は、ワークスペース・メニューを表示するボタン割り当てを編集します。
<Btn3Down> root f.menu menu_name
メニューが追加メニューの場合は、新しいマウス・ボタンを割り当てます。たとえば次のようにボタンを割り当てると、背景上で [Shift] キーとマウス・ボタン 3 を押したときにメニューが表示されます。
Shift<Btn3Down> root f.menu menu_name
ワークスペース・メニューから [ワークスペースマネージャの再起動] を選択します。
ウィンドウ・メニューはワークスペース・マネージャに組み込まれ、通常はカスタマイズされません。アプリケーション間でウィンドウの動作の一貫性を保つには、ウィンドウ・メニューを大幅に変更しないでください。
個人用: HomeDirectory/.dt/dtwmrc
システム共通: /etc/dt/config/language/sys.dtwmrc
これらのファイルの作成方法の詳細は、「ワークスペース・マネージャ構成ファイル」を参照してください。
新規メニューを作成します。
Menu menu_name { ... }
windowMenu リソースを使用して新規メニューを指定します。
Dtwm*windowMenu: menu_name
ワークスペース・メニューから [ワークスペースマネージャの再起動] を選択します。
ボタン割り当ては、ウィンドウ・マネージャ関数と、マウス・ボタンのオペレーションおよび可能なキーボード修飾キーとを関連付けることです。ボタン割り当ては、すべてのワークスペースに適用されます。
デスクトップのデフォルトのボタン割り当ては、DtButtonBindings というボタン割り当てセットのワークスペース・マネージャ構成ファイルに定義されています。
Buttons DtButtonBindings { ... }
ボタン割り当ての構文は次のとおりです。
Buttons ButtonBindingSetName { [modifier]<button_nameMouse_action> context function [argument] [modifier]<button_nameMouse_action> context function [argument] ... }
button_name
Btn1 - 左ボタン
Btn2 - 中央ボタン (3 ボタン・マウスの場合) または左右ボタン (2 ボタン・マウスの場合)
Btn3 - 右ボタン
Btn4 - 3 ボタン・マウスの場合のボタン 1 とボタン 2
Btn5 - 3 ボタン・マウスの場合のボタン 2 とボタン 3
modifier
Ctrl、Shift、Alt、Lock
mouse_action
Down - マウス・ボタンを押し続ける
Up - マウス・ボタンを離す
Click - マウス・ボタンをダブルクリックする
Click2 - マウス・ボタンを押して離す
Drag - マウス・ボタンを押しながらドラッグする
context
割り当てを有効にするには、ポインタがどこにあればいいかを示します。必要に応じて、複数の内容は「|」文字で区切ります。
root - ワークスペースウィンドウ
window - クライアント・ウィンドウまたはウィンドウ枠
frame - 内容を除くウィンドウ枠
icon - アイコン
title - タイトル・バー
app - クライアントのウィンドウ (枠を除く)
function
ウィンドウ・マネージャ関数の 1 つ。有効な関数のリストについては、dtwmrc(4) のマニュアル・ページを参照してください。
argument
任意のウィンドウ・マネージャ関数の必須引き数。詳細は、dtwmrc(4) のマニュアル・ページを参照してください。
たとえば次の行を入力すると、ポインタが (クライアントのウィンドウ内ではなく) ワークスペース・ウィンドウにあるときにマウス・ボタン 3 を押すと、DtRootMenu に記述されたメニューが表示されます。
<Btn3Down> root f.menu DtRootMenu
ボタン割り当て構文の詳細は、dtwmrc(4) のマニュアル・ページを参照してください。
個人用: HomeDirectory/.dt/dtwmrc
システム共通: /etc/dt/config/language/sys.dtwmrc
これらのファイルの作成方法の詳細は、「ワークスペース・マネージャ構成ファイル」を参照してください。
ボタン割り当てを DtButtonBindings 定義に追加します。
クリックおよび押す操作という異なる関数を同じボタンに割り当てないでください。また、2 つ以上の関数を同じボタンおよび内容に割り当てないでください。
ワークスペース・メニューから [ワークスペースマネージャの再起動] を選択します。
個人用: HomeDirectory/.dt/dtwmrc
システム共通: /etc/dt/config/language/sys.dtwmrc
これらのファイルの作成方法については、「ワークスペース・マネージャ構成ファイル」を参照してください。
新規ボタン割り当てセットを作成します。詳細は、「ボタン割り当て構文」を参照してください。
buttonBindings リソースに新しい名前を設定します。
Dtwm*buttonBindings: ButtonBindingsSetName
ワークスペース・メニューから [ワークスペースマネージャの再起動] を選択します。
既存のボタン割り当てを新規のボタン割り当てに置き換えます。保持したいボタン割り当てがある場合は、DtButtonBindings からコピーします。
「キー割り当て」とも呼ばれる「キーボード割り当て」は、キーの組み合わせとワークスペース・マネージャ関数とを関連付けます。キー割り当ては、すべてのワークスペースに適用されます。
キーボード割り当てとして共通キーの組み合わせを使用するときは注意してください。たとえば、[Shift] キーと [A] キーを押すと、通常は現在のウィンドウに文字「A」が表示されます。[Shift] + [A] キーを関数に割り当てた場合は、通常の動作をしません。
デスクトップのデフォルト・キー割り当ては、DtKeyBindings というキー割り当てセットのワークスペース・マネージャ構成ファイルに定義されています。
Keys DtKeyBindings { ... }
キー割り当ての構文は次のとおりです。
Keys KeyBindingSetName { [Modifiers]<Key>key_name context function [argument] [Modifiers]<Key>key_name context function [argument] ... }
Modifiers
Ctrl、Shift、Alt、Lock。複数の修飾子を指定できますが、それぞれをスペースで区切ります。
key_name
関数をマップするキー。文字または数字のキーの場合、key_name 名は通常キーの上に刻印されます。たとえば「a」というキーは「a」、「2」 というキーは「2」と名付けられます。同様に「Tab」キーは 「Tab」、「F3」キーは「F3」です。
他のキーについては、名前が省略されずに書かれます。たとえば、「+」キーは plus と表示されます。システム依存ディレクトリにある keysymdef.h ファイルには、キー名に関する追加情報があります。
context
このアクションを有効にするためのキーボード・フォーカスを必ず持つ要素。割り当てを 2 つ以上の内容に適用すると、内容を連結できます。複数の内容は「|」文字で区切ります。
root - ワークスペース背景
window - クライアントのウィンドウ
icon - アイコン
function
ウィンドウ・マネージャ関数。有効な関数のリストについては、dtwmrc(4) のマニュアル・ページを参照してください。
argument
任意のウィンドウ・マネージャ関数の必須引き数。詳細は、dtwmrc(4) のマニュアル・ページを参照してください。
たとえば、次のようなキー割り当てをすると、[Alt] + [F6] キーを押すことにより、アプリケーションの次の一時ウィンドウへキーボード・フォーカスを切り替えることができます。
Alt<Key>F6 window f.next_key transient
キー割り当て構文の詳細は、dtwmrc(4) のマニュアル・ページを参照してください。
個人用: HomeDirectory/.dt/dtwmrc
システム共通: /etc/dt/config/language/sys.dtwmrc
これらのファイルの作成方法の詳細は、「ワークスペース・マネージャ構成ファイル」を参照してください。
一意の KeyBindingSetName で新規キー割り当てセットを作成します。デスクトップのデフォルト・キー割り当てセット DtKeyBindings をガイドとして使用します。
keyBindings リソースに新規セット名を設定します。
Dtwm*keyBindings: KeyBindingSetName
ワークスペース・メニューから [ワークスペースマネージャの再起動] を選択します。
既存のキー割り当ては、新規のキー割り当てに置き換わります。保持したいキー割り当てがある場合は、DtKeyBindings から新規セットにコピーします。
Motif 1.2 デフォルト動作と CDE デスクトップ・ウィンドウ動作を切り替えるには、次のようにします。
デフォルト動作に切り替えると、フロントパネル、任意のカスタマイズ・キー、およびボタン割り当てが削除されます。