カスタマイズの基礎

次に簡単に、rep コードを書かずにできる sawfish のカスタマイズ方法を中心に概要を説明します。

まず、sawfish の各ユーザ用の設定ファイル、ディレクトリの構成は次のようになっています。

表 2-4. sawfish の設定ファイル

$HOME/.sawfish

各種設定ファイルやそれらを含むサブディレクトリのルートディレクトリ

$HOME/.sawfishrc

このファイルには sawfish の起動時に読み込まれ、実行される rep コードを書くことができます

$HOME/.sawfish/customsawfish-ui プログラム(後述します)が書き出す設定ファイル。直接エディタなどで編集するのは推奨できません
$HOME/.sawfish/lisp/

sawfishrc以外のカスタマイズ用 rep コードを置くディレクトリ

$HOME/.sawfish/themes/

各種テーマをインストールしておくディレクトリ

$HOME/.sawfish/sessions/

セッション管理用のファイルが置かれています

また、起動時の設定ファイルが読み込まれる順番は次のようになっています。

  1. システムのデフォルトの設定ファイル

  2. $HOME/.sawfish/custom

  3. $HOME/.sawfishrc

sawfish-ui によるカスタマイズ

sawfish-ui というのは標準で用意された GUI 設定ツールです。非常に強力でほとんどの基本的なカスタマイズはこれだけで十分可能です。

sawfish-ui プログラム

図 2-1. sawfish-ui

sawfish-ui の起動

sawfish-ui を実行するには GNOME コントロールセンタから sawfish のセクションを選択するか、ルートメニュー(標準ではマウス中ボタン)からカスタマイズ->すべての設定を選択する、あるいはコマンドラインから

     bash$ sawfish-ui &
    

とします[1]

起動するとまずどのようなユーザを対象にカスタマイズ項目を表示するか選択します(ユーザレベルに応じたオプションを表示)。選択できる項目はnoviceintermediateexpertの 3 つありこの順番でカスタマイズ項目が増えて、より複雑かつ高度な設定ができるようになります。

expertを選択すると現れる、Configuratorで表示するボタンでは三種類選択できます。okだけにした場合、sawfish-ui での設定は即座に反映されます。それでは困る場合もあるので、筆者はapply/revert/cancel/okのすべてを表示する方法を選択しています。

カスタマイズできる項目

次のような設定を各項目について行うことができます。

表 2-5. sawfish-uiのカスタマイズ項目

Appearance(外観)

テーマ選択などウィンドウフレームの外観の設定

Bindings(ショートカット)

ショートカットの設定

Focus(フォーカス)

ウィンドウのフォーカスモードの設定など

Matched Windows(ウィンドウ属性)

特定のウィンドウに対する設定

Minimizing/Maximizing(最小化/最大化)

最小化、最大化にともなう設定

Miscellaneous(その他)

ダイアログウィンドウやツールチップに関する設定など

Move/Resize(移動/リサイズ)

移動やリサイズに関連する設定

Placement(配置)

ウィンドウの配置モードなど

Sound(サウンド)

サウンド機能の設定

Workspace(ワークスペース)

仮想デスクトップの設定

カスタマイズの実例

ほとんどの項目は実際にやってみれば設定の効果がわかると思いますが、中でも sawfish 独自でわかりにくいかもしれない項目について実例をあげてみます。

ショートカットキーの設定

マウスポインタがどこにあるかに関わらず、Alt Ctrl + x を押したら特定のアプリケションプログラムを起動するようにしたい:

1つの方法としては次のような方法があげられます。

まずはじめに Alt Ctrl + x を "Xterm" コマンドを実行するショートカットに割り当てます。

  1. Bindingsセクションを選択します

  2. [Context(有効エリア)]にGlobalを選択します

  3. Add(追加)ボタンをクリックして`Edit Binding'ダイアログをポップアップします

  4. Key(キー):のところにM-C-xと入力するか、Grab...(取り込み...)ボタンをクリックしてからAlt Ctrl + x を同時に押します

  5. Command(コマンド)リストからXtermを選択し[2]okボタンをクリックします

次に "Xterm" コマンドに実際に実行したいアプリケーションプログラムを関連付けします。

  1. Miscellaneousセクションを選択します

  2. 下の方の`xterm' コマンドによって起動されるプログラムに実行したいプログラム名を入力します。なおPATHがとおっていればフルパスにする必要はありません

  3. プログラムにオプション引数が必要ならその下の`xterm'コマンドに与えるオプション引数に入力します

以上の設定を行った後で適用ボタンをクリックすればこの設定が反映されます。設定を保存するにはokボタンをクリックします。

ウィンドウ毎のカスタマイズ設定

特定のアプリケーションプログラムのウィンドウフレームに指定された属性(例えばフレームをなくす)を加えたい:

  1. Matched Windowsセクションを選択します

  2. Add...(追加...)ボタンをクリックして`Match Window properties'ダイアログをポップアップします

  3. Matchers(一致ウィンドウ)のところで属性を設定したいウィンドウを特定します。例えばNameエントリを選択し、右の方のGrab...(取り込み...)ボタンをクリックしてから属性を指定したいウィンドウをクリックします。そうするとウィンドウのName属性が自動的に入力されます。

    sawfish-ui/matchers

    図 2-2. sawfish-ui/matcher

  4. Actions(動作)のところで指定したい属性を設定します。設定できる項目は、

    表 2-6. sawfish-ui/Matchers/Actions

    配置

    ウィンドウの配置位置や配置モードについて

    フォーカス

    フォーカスモードなどについて

    外観

    フレームタイプ(フレームのあるなしなど)とフレームスタイル(テーマ)を設定できます

    状態

    Sticky や Ignored といった属性を設定できます

    その他

    その他の属性を設定できます

    などと非常に多くあります。設定したらokボタンをクリックします。

以上の設定を行った後で適用ボタンをクリックすれば先と同様にこの設定が反映されます。

次回は rep コードによるさらに高度なカスタマイズ方法や GNOME を使わない場合に便利な sawfish 関連のアプリケーションなどについて書きたいと思います。

注意

[1]

さらに凝った方法ですが$ sawfish-client -c customizeとしても実行できます。

[2]

今見たらいつのまにか3d hackなるエントリもできていました :-) これが何なのか気になったら`sawfish-client -c 3d-hack'を実行してみて下さい(終了するにはqを押します)。