Keys tips :
                fluxbox キーボード・マウス操作のコツ


                           (fluxbox 1.1.0.1 対応) Last update 2008/09/13
---------------------------------------------------------------------------------------
目次

    fluxbox キーボード操作の特徴
    これは何をしようとしている?
    キーコマンド詳解
        マウスコマンド
        ウィンドウマネージャ コマンド
        ウィンドウコマンド
            リサイズ関連
            移動関連
            状態の変更
            タブグループ関連
        ワークスペース/デスクトップコマンド
            移動関連
            フォーカス関連
            配置関連
            メニュー関連
        特殊コマンド
        パターンについて(CLIENT PATTERNS)

    キー・マウスボタンの名前

    キーマップの変更
        キーマップの調査
        キーコード/キーシンボルの調査
        ユーザー設定ファイル (~/.Xmodmap)
        設定ファイルの反映
        キーマップ 変更の確認

--------------------------------------------------------------------------------------

fluxbox キーボード操作の特徴

ウィンドウシステムの操作といえば、マウス操作が 一般的です が、UNIX 系の
各種ウインドウマネージャでは、それぞれにキー ボード操作にも 工夫がなされ
ていて、併用すればより快適な操作が行えるようになっています。
fluxbox は、とりわけこの方面に力が注がれています。

fluxbox キーボード操作の特徴としては、
    emacs 風キーチェィンをサポート。
        ^X^S 等の 2ストローク以上のキーバインドが使用可能です。
    複数の "キーバインド定義空間" をサポート。
        普段使うキーバインド群とは別のキーバインド(群)が定義可能です。
        普段使うキーバインドの一時的な無効化にも応用可能です。
    各種内部、外部コマンドにキーバインドが可能。
        メニュー表示、再起動、終了等の fluxbox 内部コマンドを、キーボ
        ードのみで実行できま
す。
        又、アプリケーション等の外部コマンドも、アイコンやメニューをク
       
ックせずに呼び出すことが出来ます。
    メニュー内インクリメンタルサーチをサポート。
        メニュー表示中にキー入力を行うと、入力に応じた項目へポインタを
        せ、Enter で実行できます。特に英語メニューの時有効です。
        ※英語メニューを作成する方法は、
            fluxbox_menu_tips
        をご覧下さい。
    マウスのボタンクリックとホイール回転もキー同等にバインド可能。
        通常マウスで操作するアクションを再定義する事が可能です。
    マクロコマンドにより、一つのキーバインドで複数のコマンドを実行可
    能。
        二つ以上の fluxbox 内部コマンドやシェルコマンドを、ワンストロ
        ークで実行可能です。
    If コマンドの条件判定により、実行コマンドを場合分け可能。
        条件が成立する場合は then コマンド、非成立の場合は else コマン
        ドと、コマンドを場合分け実行することが出来ます。
    OnDesktop OnToolbar OnWindow OnTitlebar Double などの修飾子による
    コマンド実行の制限が可能。
        マウスポインタの位置、ダブルクリックした時、などを検査し、限定
        的にコマンドを実行できます。
    正規表現や論理演算を用いて、ウィンドウを特化しての操作が可能。
        ウィンドウの状態(最小/最大化、シェード化など)、アプリケーショ
        ン(クライアント)の種類などを細やかに指定し、カレントウィンドウ
        に対して、或いは該当する全てのウィンドウに対して一括操作する事
        が出来ます。

デスクトップアイコンを持たないウィンドウマネージャとして fluxbox を単独で
使うような場合、キーボード操作で外部コマンド(アプリケーション)を呼び出せ
るのは特に便利です。
勿論それらはマウスを使いメニューからも呼び出せますが、よく使うアプリケー
ションをショートカットにしておけば、より速やかな操作が可能です。
例えば、
    control+shift+m → メーラー : sylpheed 等
    control+shift+b → ブラウザ : firefox 等
    control+shift+t → ターミナルエミュレータ : xterm 等
と、同一修飾キーとアプリケーションのカテゴリや名称の頭文字の組み合わせな
どに設定して置くのがお薦めです。
おぼえやすく、慣れれば(おそらく二、三日で)勝手に指が動くようになるでしょ
う。

   
fluxbox では、キーボードオペレーション(ショートカット、アクセラレーション
キー)の設定は ~/.fluxbox/keys ファイルで行います。設定ファイルは変更可能
ですが、ここでは触れません。


fluxbox のキーボード/マウス操作操作に関しては、オリジナルのドキュメント
    fluxbox、fluxbox-keys の manpage
もお読み下さい。

目次へ


-------------------------------------------------------------------------------------

これは何をしようとしている?

fluxbox ならではの、ちょっと面白い設定例です。
実用的なものも、そうでないものも有ります。
そうでないものも、応用次第で実用的な設定のヒントになる、かもしれません。

Mod1 i :MacroCmd {SetResourceValue session.screen0.toolbar.visible true} {Reconfigure}
Mod1 o :MacroCmd {SetResourceValue session.screen0.toolbar.visible false} {Reconfigure}
! Alt+i、Alt+o で、ツールバー "表示"、"非表示" を切替えようとしています。

Control Mouse1 Control Mouse1 :fullscreen
! 一回目の Ctrl+ダブルクリックで、ウィンドウをフルスクリーン表示、
! 二回目の Ctrl+ダブルクリックで、ウィンドウを通常表示、しようとしています。
!※ 1.1.0 以降では "Control Double Mouse1" で同じ事が出来ます。

Control Mouse4 :NextTab
Control Mouse5 :PrevTab
! Ctrl+マウスホイールの回転で、(画面のどこででも)タブグループを巡回できるよ
! うにしようとしています。

Mod1 3 :TakeToWorkspace 3
! Alt+3 で、カレントウィンドウをワークスペース 3 に移動し、同時にワーク
! スペースも 3 に変更しようとしています。

Mod1 t :ToggleCmd {Exec xterm -e top} {MaximizeVertical} {Close}
! 一回目の Alt+t で、xterm を開き top コマンドを実行、
! 二回目の Alt+t で、その xterm のウインドウを垂直方向に最大化、
! 三回目の Alt+t で、xterm ウィンドウを終了、させようとしています。

Control Mod1 g :KeyMode KMode2 Control Mod1 g
! 一回目の Ctrl+Alt+G で、fluxbox の標準キーバインドを全て無効に、
! 二回目の Ctrl+Alt+G で、fluxbox の標準キーバインドを復帰、させよう
! と しています。

OnDesktop Control Mouse3 :CustomMenu ~/.fluxbox/menu_c
! デスクトップでの Ctrl+右クリックで、(標準メニューでは無く)別途用意した
! menu_c という英語メニューを表示させようとしています。

目次へ

--------------------------------------------------------------------------------------

キーコマンド詳解

fluxbox のキーボード/マウス操作は ~/.fluxbox/keys ファイル内で定義します。

keys ファイル書式:    [] 内はコマンドにより省略可能又は不要です。
   
    [namespace:] [mousemod] [mod] key [[mod] key] :command [option [option [...]]]

        namespace :
            キーバインド定義空間の名前。※デフォルトでは省略
        mousemod  :
            マウスポインタの位置によりコマンドの実行を制限する修飾子。
            又はダブルクリックを表す修飾子。
            (ポインタ位置に関わらずコマンドを実行する場合、シングル
            クリックで実行する場合は記述しません)
            ポインタの位置関連:
                OnDesktop :
                    ポインタがデスクトップ上に有る時だけコマンドが有効
                OnToolbar :
                    ポインタがツールバー上に有る時だけコマンドが有効
                OnWindow  :
                    ポインタがウィンドウ上に有る時だけコマンドが有効
                OnTitlebar:
                    ポインタがタイトルバー上に有る時だけコマンドが有効
            ダブルクリック関連:
                Double    :
                    ダブルクリックした時だけコマンドが有効
        mod        :
                修飾キー。None、Control、Shift、Mod1(=Alt)、Mod2-Mod4 など。
                None は、修飾キーを使用しない場合(F1 - F12 を単独で使
                う場合など)に、
                   F12 :ecec xterm
                と書く代わりに、
                   None F12 :ecec xterm
                と、修飾キーを使用しない事を明示する為に使用する。
        key        :
            ファンクションキーを含む一般のキーの名前、又はマウスボタン
            の名前。※必須
            'A'、'B'、'1'、'F10、'End' Mouse1、Mouse2 等。
            キーの名前の代わりに keycode も使用可能です。
            マウスボタンの名前は、通常のホイールマウスの場合、
                Mouse1 : 左ボタン
                Mouse2 : 中ボタン(ホイール)
                Mouse3 : 右ボタン
                Mouse4 : ホイールを前方へ
                Mouse5 : ホイールを後方へ
            (各、シングルリック)です。ダブルクリックの場合は、前述の
            Double 修飾子をボタン名の前に書きます。
        : (コロン) : キーバインドとコマンドの区切り文字。※必須
        command   : キーコマンド。※必須
        option    : コマンドの引数(オプション/パラメータ)

「!」又は「#」で始まる行は注釈行とみなされ、定義には影響しません。

実際の定義例: (赤字)は書式との対応を示します(実際には書きません)。

    Control(mod) A(key)  :Restart(command) fluxbox(option)   

上の例では、Control と 'A' を同時に押すことで、fluxbox を再起動するよう
定義しています。

   
装飾キーに ついて
一般的に Shift、Control、Mod1(Alt)は通常のキー設定で使えるようです。
その他に、Mod2、Mod3、Mod4 等も ~/.Xmodmap で設定すれば、使 用可能に
なります。以下の三行を ~/.Xmodmap に書き加える事で、
Mod4 に [無
変換]キー
割り当てる事ができます。

keycode 131 = Muhenkan
clear mod4
add mod4 = Muhenkan

※キーコード(上の場合 131)とキー名(Muhenkan)は xev コマンド等で予め
確認しておいてください。



以下のキーコマンドの説明では、上の 書式の command option の部 分のみを 例
示します。
※実際に keys ファイルに書き込む場合は、割り当てるキーバインドをコマンド
の前に書き加えてください。

    説明の書式、色分けは以下の通りです。コメントは使用例の説明です(必要と
    思われる場合のみ、記述しています)。

        Command option 【command の別名】
            説明
                記述例
                    コメント

    ※記述例に書かれるキーバインドは仮のものです。実際に keys ファイルに
    書く場合は、適宜変更してください。


目次へ

--------------------------------------------------------------------------------------
マウスコマンド

    StartMoving
        ウィンドウ移動を開始。
            Mod1 Mouse1 :StartMoving
                カレントウィンドウの移動を開始
            OnWindow Mod1 Mouse1 :StartMoving
                マウスがポイントしているウィンドウの移動を開
                (該当ウィンドウのフォーカスの有無は影響しない)

    StartResizing [corner]
        リサイズを開始。corner を指定した場合、coner よりリサイズ
        される。coner には、
            NearestCorner NearestEdge Center TopLeft Top
            TopRight Left Right BottomLeft BottomRight
        のいずれかを指定可能。
            Mod1 Mouse1 :StartResizing center
                カレントウィンドウをウィンドウ中央を起点にリサイズを開始

    StartTabbing
        タブグループ化を開始。
            Mod1 Mouse1 :StartTabbing
                カレントウィンドウのタブグループ化を開始

--------------------------------------------------------------------------------------

ウィンドウマネージャコマンド

    Restart [argument]
        ウインドウマネージャを再起動。
        argument はウインドウマネージャのコマンド名。
        引数無しの場合は、fluxbox を再起動。
            Mod1 x :Restart gnome-session
            Mod1 x :Restart wmaker

    Quit 【Exit】
        fluxbox セッションを終了。
            Mod1 x :Quit

    ReconfigureReconfig
        設定ファイルを再読み込み。
            Mod1 x :Reconfigure

    SetStyle argument
        argument に指定したスタイルに変更。
        argument は、full path で指定。
            Mod1 x :SetStyle /usr/share/fluxbox/styles/VineStyleIII-3
            Mod1 x :SetStyle /home/hoge/.fluxbox/styles/my_style

    ReloadStyle
       現在のスタイルを再読み込み。style ファイルの編集時などに。
            Mod1 x :ReloadStyle

    ExecCommand argument Execute】【Exec
        引数にはコマンド(含、スクリプト)名を指定。
            Mod1 x :ExecCommand sylpheed

    CommandDialog
        fluxbox 内部コマンド実行用ダイアログを表示。
        このダイアログにより、このページの各コマンドを実行可能。
        例えば、rootmenu と入力すれば、ルートメニューが表示される。
            Mod1 x :CommandDialog

    SetEnv name value【Export name=value】
        現在の fluxbox セッションに環境変数を設定。
        設定された環境変数は、設定後起動されたアプリケーションに適用さ
        れます。
        ※ROX のピンボードやパネル起動中の rox-filer 等、親プロセスが
        常駐しているアプリケーションに設定を適用するには、一旦全終了し、
        アプリケーションを再起動する必要が有ります。
            Mod1 p :SetEnv LANG C
            Mod1 q :Export LANG=ja_JP.UTF-8
                環境変数 LANG を設定します。

目 次へ

--------------------------------------------------------------------------------------

ウィンドウコマンド

   
 ウィンドウコマンド関連修飾子と特殊コマンド

  通常ウィンドウ操作関連コマンドは、現在フォーカスの有るウィンドウを
  対象としますが "OnWindow 修飾子 により "マウスにポイントされている
  ウィンドウ" や、ForEach コマンドの併用により "条件に適合したウィン
  ドウ" を操作対象とする事が出来ます。

  OnWindow mod key :command
      マウスにポイントされているウィンドウに command を実行。
          OnWindow Mod1 Mouse2 :StartMoving
              マウスにポイントされているウィンドウを(フォーカスが有
              るか否かに関わらず)移動します。


  mod key :ForEach {command} [{condition}]
      ({condition} 指定が有る場合は、条件に適合した)各ウィンドウに対 
      して command を実行。
          Mod1 x :ForEach {MaximizeVertical} {Matches (xterm)}
              "xterm" に適合するウィンドウのみを、全て垂直に最大化。



   リサイズ関連

   
Minimize 【MinimizeWindow】【Iconify
        最小化
            Mod1 x :Minimize

    MaximizeMaximizeWindow
        最大化 (実行毎にトグル(最大化/元 サイズを交互に実行))
            Mod1 x :Maximizs

    Fullscreen
        クライアント領域(ウィンド ウ枠の内側)をフルスクリーン表示。(実行
        毎にトグル)
            Mod1 x :Fullscreen

   
MaximizeVertical
        垂直方向最大化 (実行毎にトグル)
            Mod1 x :MaximizeVertical

    MaximizeHorizontal
        水平方向最大化 (実行毎にトグル)
            Mod1 x :MaximizeHorizontal

    ResizeTo width height
        幅(width) x 高さ(height) にリサイズ。
            Mod1 x :ResizeTo 800 600

    Resize delta-width delta-height
         幅(delta-width)、高さ(delta-height) 分リサイズ。負数可
             Mod1 x :Resize 20 -10

    ResizeHorizontal delta-width
        水平方向に delta-width 分リサイズ。
            Mod1 x :ResizeHorizontal 10 10

    ResizeVertical delta-height
        垂直方向に delta-height 分リサイズ。
            Mod1 x :ResizeVertical 10 10


目次へ

--------------------------------------------------------------------------------------

    移動関連

    MoveTo x y [corner]
        corner より、x y ピクセル分の位置に移動。
        corner には、
           UpperLeft, Upper, UpperRight
           Left,                  Right
           LowerLeft, Lower, LowerRight
        を指定(無指定の場合は UpperLeft)
        '*' は現在の値を適用
            Mod1 x :MoveTo 10 * Right
                    縦位置は現在値のままで、画面右端より 10 ピクセルの位置に
                    移動

    Move delta-x delta-y
        水平方向に delta-x、垂直方向に delta-y 分移動。
            Mod1 x :Move -2 -1

    MoveRight delta-x
        右へ delta-x 分移動
            Mod1 x :MoveRight 10

    MoveLeft delta-x
        左へ delta-x 分移動
            Mod1 x :MoveLeft -10

    MoveUp delta-y
        上へ delta-y 分移動
            Mod1 x :MoveUp 5

    MoveDown delta-y
        下へ delta-y 分移動
            Mod1 x :MoveDown -5

    Raise
        (フォーカスの有るウィンドウを)同一レイヤー中の最前面へ。
            Mod1 x :Raise

    Lower
        (フォーカスの有るウィンドウを)同一レイヤー中の最背面へ。
            Mod1 x :Lower

    SendToWorkspace number
        ワークスペース number(ワークスペース番号)にウィンド ウを移動。
            Mod1 x :SendToWorkspace 4

    SendToNextWorkspace [offset]
        一つ後のワークスペースにウィンド ウを移動。
        offset(1 以上の整数) を指定した時は offset 個後へ移動。

    SendToPrevWorkspace [offset]
        一つ前のワークスペースにウィンド ウを移動。
        offset(1 以上の整数) を指定した時は offset 個前へ移動。

    TakeToWorkspace number
        ウィンドウごと、ワークスペース number(ワークスペース番号) に移動。
            Mod1 x :TakeToWorkspace 2

    TakeToNextWorkspace [offset]
        ウィンドウごと、一つ後のワークスペースに移動。
        offset(1 以上の整数) を指定した時は offset 個後へ移動。

    TakeToPrevWorkspace [offset]
        ウィンドウごと、一つ前のワークスペースに移動。
        offset(1 以上の整数) を指定した時は offset 個前へ移動。

    SetHead number
        ウィンドウを number 番めの display head に移動。
        ※ xinerama による複数のディスプレイ(マルチモニタ)使用時
        のみ有効。

    SendToNextHead [offset]
        ウィンドウを後の display head に移動。
        offset(1 以上の整数) を指定した時は offset 個後へ移動
        offset 分の移動が末尾の display head を越える場合は、先頭へオ
        ーバーラップ
        ※ xinerama による複数のディスプレイ(マルチモニタ)使用時
        のみ有効

    SendToPrevHead [offset]
        ウィンドウを前の display head に移動。
        offset(1 以上の整数) を指定した時は offset 個前へ移動
        offset 分の移動が先頭の display head を越える場合は、末尾へオ
        ーバーラップ
        ※ xinerama による複数のディスプレイ(マルチモニタ)使用時
        のみ有効

目次へ

--------------------------------------------------------------------------------------

    状態の変更

    Close
        ウィンドウを閉じる
            Mod1 x :Close

    ShadeShadeWindow
        ウィンドウのシェード化(タイトルバーに格納)の状態を切り替える。
            Mod1 x :Shade

    ShadeOn
        ウィンドウをシェード化する。

    ShadeOff
        ウィンドウをシェード化を解除する。

    Stick StickWindow
        ウィンドウの固着化(全てのワークスペースで表示)の状態を切り替える。
            Mod1 x :Stick

    Deiconify [mode] [destination]
        最小化解除。
        mode には以下の何れかで対象ウィンドウを指定します。
            All : 全てのワークスペースの全ての最小化ウィンドウ
            AllWorkspace : カレントワークスペースの全最小化ウィンドウ
               
            Last : 全てのワークスペースの最後に最小化されたウィンドウ
            LastWorkspace : カレントワークスペースの最後に最小化された
                ウィンドウ(default)
        destination には以下の何れかで最小化解除する場所を指定します。
            Current : カレントワークスペースで最小化解除(default)
            OriginQuiet : ウィンドウの本来のワークスペースで最小化解
                除(ワークスペースは移動しない)。

    ToggleDecor
        ウィンドウ装飾を取り除く(クライアント領域のみを表示)。実行毎に
        トグル。
            Mod1 x :ToggleDecor

    SetDecor decor
       ウィンドウ装飾を decor にする。
       decor には以下のいずれかを指定。
           NORMAL : 通常のウィンドウ装飾
           NONE   : ウィンドウ装飾なし
           BORDER : 枠線のみ
           TINY   : タイトルバーと最小化ボタン
           TOOL   : タイトルバーのみ

    SetAlpha [[+|-]value [[+|-]value]]
        アクティブなウィンドウの透明度(アルファ値)を設定(絶対値で、0 -
        255 の範囲)。
        ・引数(value)無しの時 - フォーカスの有るウィンドウのアルファ値を
          デフォルト(init での定義値)に戻す。
        ・引数が一つの時 - フォーカス/非フォーカスウィンドウのアルファ値
          に対し、同じ値を適用する。
        ・引数が二つの時 - 一つ目の値はフォーカスの有るウインドウの、二
          つ目の値は非フォーカスウィンドウのアルファ値の処理に当てられ
          る。
        ※値の頭に +/- を付けた場合は増減値、付けない場合は絶対値の指定。
            Mod1 x :SetAlpha 127 +5
                    フォーカスの有るウインドウのアルファ値を "127" に、
                    非フォー
カス ウィンドウのアルファ値を "現在値 + 5" に
                    設定する。


    KillWindow
        ウィンドウを強制終了する。
            Mod1 x :KillWindow

    CloseAllWindows
        全てのウィンドウを閉じる。
            Mod1 x :CloseAllWindows

    RaiseLayer
        ウィンドウの表示層(Layer)を一段上層に変更。
        表示層(Layer)の詳細は man fluxbox を。
        ※表示層の変更はウィンド[ウメニュー] - [レイヤー]でも可能。
 
    LowerLayer
        ウィンドウの表示層(Layer)を一段下層に変更。

    SetLayer layer
        ウィンドウの表示層(Layer)を layer に変更。
        layer には以下のいずれかを指定。
            Dock    : ドック層
            Top     : ウィンドウ最上層
            Normal  : 通常ウィンドウ層
            Bottom  : ウィンドウ最下層
            Desktop : デスクトップ層

   

目 次へ

--------------------------------------------------------------------------------------

    タブグループ関連

    Tab [-]number
        グループ内の number 番目のタブに移動。
        number が負数の場合は、うしろから number 番目のタブに移動。
            Mod1 x :Tab -2

    NextTab
        グループ内の次のタブ(のクライアント) を前面に(巡回)
            Mod1 x :NextTab

    PrevTab
        グループ内の前のタブを前面に(巡回)
            Mod1 x :PrevTab

    MoveTabLeft
        グループ内の左へ現在のタブを移動(左端の時は変化無し)
            Mod1 x :MoveTabLeft

    MoveTabRight
        グループ内の右へ現在のタブを移動(右端の時は変化無し)
            Mod1 x :MoveTabRight

    DetachClient
        グループ内の現在のタブをグループから取り外す
            Mod1 x :DetachClient

    Attach (pattern)
        全てのウィンドウを単一ウィンドウにタブグループ化。
        (pattern)を指定した場合は、パターンに適合する
全てのウィンドウ
        をグループ化します。
       
(pattern) に関しては、パターンについて をご覧下さい。


目次へ

--------------------------------------------------------------------------------------

ワークスペース/デスクトップコマンド


    移動 関連

    AddWorkspace
        最後ワークスペースの後に新規にワークスペースを追加

    RemoveLastWorkspace
        最後ワークスペースを削除

    NextWorkspace [offset]
        次のワークスペースへ。
        offset を指定した場合は、offset 分先のワークスペースへ
        offset 分の移動が末尾ワークスペースを越える場合は、先頭へオー
        バーラップ
            Mod1 x :NextWorkspace

    PrevWorkspace [offset]
        前のワークスペースへ。
        offset を指定した場合は、offset 分先のワークスペースへ
        offset 分の移動が先頭ワークスペースを越える場合は、末尾へオー
        バーラップ
            Mod1 x :PrevWorkspace

    RightWorkspace [offset]
        offset 個右(先)のワークスペースへ
            Mod1 x :RightWorkspace by-number

    LeftWorkspace [offset]
        offset 個左(前)のワークスペースへ
            Mod1 x :LeftWorkspace by-number

    Workspace number
        ワークスペース number へ
            Mod1 x :Workspace number

目 次へ

--------------------------------------------------------------------------------------

    フォー カス関連

   
NextWindow [{オプション}] [(pattern)]
        次のウィンドウへフォーカスを移動(ウィンドウ間を巡回)
        オプション:
            { }で囲み、スペースで区切って static、groups のいずれか
            又は両方を指定します。
                static: 通常フォーカスの移動は直前にフォーカスがあった
                        ウィンドウを優先しますが、static を指定すると
                        ウィンドウが開かれた順にフォーカスを移動します。
                groups: groups を指定すると、タブグループ化されたウィ
                        ンドウが有る場合は、グループ内のアクティブなタ
                        ブのみをフォーカス移動の対象とします。
        pattern に関しては、パターンについて をご覧下さい。
            Mod1 x :NextWindow {groups} (Name=xterm|mlterm)
              xterm と mlterm の間でのみフォーカスを移動(アクティブで
              ないタブは無視する)。

    PrevWindow {オプション} (pattern)
        前のウィンドウへフォーカスを移動。
        {オプション}、(patter) は NextWindow と同様に指定します。
            Mod1 x :PrevWindow

    NextGroup {オプション} (pattern)
        次のグループへフォーカスを移動。
        NextWindow {groups} と同等です。
        {オプション}、(patter) は NextWindow と同様に指定します。
            Mod1 x :NextGroup

    PrevGroup {オプション} (pattern)
        前のグループへフォーカスを移動
        PrevWindow {groups} と同等です。
        {オプション}、(patter) は NextWindow と同様に指定します。
            Mod1 x :PrevGroup

    GotoWindow number [{options}] [pattern]
        フォーカスリスト順 number 番目のウィンドウを最前面に移動しフォ
        ーカスを移す。
        {オプション}、(patter) は NextWindow と同様に指定します。

    Activate [pattern] 【Focus [pattern]】
        pattern 指定をした時は GotoWindow 1 [pattern] の別名として働き
        ます。
            Activate (xterm)
        pattern 指定がない時は OnWindow と併用した時に対象ウィンドウに
        フォーカスを移す働きをします。
            OnWindow Mod1 Mouse1 :MacroCmd {Raise} {Focus} {StartMoving}

    FocusLeft / FocusRight / FocusUp / FocusDown
        各指定方向へフォーカスを移動
        ※作動未確認
目 次へ

--------------------------------------------------------------------------------------

    配置関連

    ArrangeWindows
        表示中のウィンドウを全画面にタイル状に並べる。
            Mod1 x :ArrangeWindows

    ShowDesktop
        全てのウィンドウを最小化。
            Mod1 x :ShowDesktop

目 次へ

--------------------------------------------------------------------------------------

    メニュー関連

    RootMenu
        ルートメニューを表示。
            Mod1 x :RootMenu

    WorkspaceMenu
        ワークスペースメニューを表示。
            Mod1 x :WorkspaceMenu

    WindowMenu
        ウィンドウメニューを表示。
            Mod1 x :WindowMenu

    ClientMenu [(pattern)]
        現在起動中の全クライアント(アプリケーション)をメニュー表示。
        (pattern)を指定した場合は、パターンに合致したクライアントに限
        定したメニューを表示します。
        表示されたメニューをマウスでクリック、又はカーソルキーで選択し
        Enter を押すと、該当クライアントにフォーカスが移ります。
        (pattern) に関しては、パターンについて をご覧下さい。
            ClientMenu (xterm|mlterm)
                現在起動中の全 xterm、mlterm をメニュー表示

    HideMenus
        表示されているメニューを隠す。
            Mod1 x :HideMenus

    CustomMenu /path/to/menufile
        カスタムメニュー "/path/to/menufile" を(一時的に)メニューとして
        表示。
            Mod1 x :CustomMenu ~/.fluxbox/menu_2

    SetWorkspaceNameDialog
        ダイアログを使用して現在のワークスペース名を設定。
            Mod1 x :SetWorkspaceNameDialog

    SetWorkspaceName name
        現在のワークスペース名を name に変更。
            Mod1 x :SetWorkspaceName name

目 次へ

--------------------------------------------------------------------------------------


特殊コマンド


    MacroCmd {command1} {command2} {command3} ...
        複数のコマンドを実行
            Mod1 x :MacroCmd { maximize } { Execute xterm } { Execute rox }
                カレントウィンドウの最大化、xterm と rox の起動を同時に
                実行。

    Delay {command} [microseconds]
        コマンドを遅延実行。
        待機中に再度実行すればタイマーをリセットします。
        ※作動未確認

    ToggleCmd {command1} {command2} ...
        command1、command2、... を実行毎に、ひとつずつトグル実行。
            Mod1 x :ToggleCmd {Exec xterm -e top} {MaximizeVertical} {Close}

    ReloadStyle
        現在のスタイルファイルを再読み込み
            Mod1 x :ReloadStyle
                ※現在のスタイルファイルへの修正を反映させる、など。

    SetResourceValue resourcename resource-value
        設定ファイルのリソースの値を書き換える。
            Mod1 x :SetResourceValue session.screen0.toolbar.autoHide true
                init ファイルの toolbar.autoHide を true に設定する
                (ツールバーを自動的に隠す設定にする)。

        ※このコマンド単独では、init を書き換えるのみなので、実際に設定を
        反映するには、設定再読み込みや再起動が必要。
        以下の例のように MacroCmd を利用すれば、設定を即座に反映させる事
        は可能。
        MacroCmd {SetResourceValue session.screen0.toolbar.autoHide true} {Reconfigure}

    BindKey key_string : command
        keys ファイルに "key_string :command" を書き込みます。
        ※このコマンド自体はメニューの "fluxbox内部コマンド" ダイアログ
        で使用します。keys ファイル内では使用しません。
            MBindKey Mod1 R :RootMenu

    KeyMode keyNameSpace [return-keybinding]
        キーモード(キーバインド定義空間)を keyNameSpace に変更。
        return-keybinding が押されるとデフォルトのキーモードに
        戻ります(return-keybinding の省略値は Esc キー)。

            Mod1 x :KeyMode KMode2

        ※KeyMode 設定例:

定義    & nbsp;          
  名前空間
          
Mod1 Tab :NextWindow
Control v :NextWorkspace
Mod1 g :KeyMode KMode2 Mod1 g
  default

KMode2: Control Mod1 Tab :NextWindow
KMode2: Control Mod1 v :NextWorkspace
  KMode2

        keys ファイルに上のように設定されている場合、
        通常キーモード(名前空間 = 'default' (省略可能))では Alt+Tab で
        「次のウィンドウへ」、Ctrl+v で「次のワークスペースへ」が実行さ
        れます。(1、2行目)。

        最初の Alt+g 押下で 'KMode2' キーモードに移行します。(3行目)
        ※return-keybinding(復帰キー)も、ここでは Al;t+g です。
          
この時、"KMode2:" で始まるキーバインド以外は無効になります。

Mod1 Tab と Ctrl v は、"KMode2" では定義されていない為、
fluxbox にではなく、アクティブなアプリケーションに渡されま
す。
例えば Control v は、emacs では「ページスクロール」、gedit
では「貼り付け」等、アプリケーションのキーコマンドとして実行
されることになります

        'KMode2' キーモードでは、頭に"KMode2:"を付けて定義された、
            Ctrl+Alt+Tab →「次のウィンドウへ」
            Ctrl+Alt+v →「次のワークスペースに移動」
        が、有効になります。(4、5行目)

        再度 Alt+g(return-keybinding) を押せば、名前空間は、通
常の
        キーモード 'default' に戻ります。
          
※名前空間 "default" は特別な名前空間で、通常は省略されますが、
"default:" と明記してもかまいません。つまり、
     Control r :RootMenu
     default:
Control r :RootMenu
上の二行は全く同じ意味を持ちます。


    ForEach {コマンド} [{条件式}] 【Map {コマンド} [{条件式}]
        各ウィンドウに対してコマンドを実行します。{条件式} を指定した場合は、条件が成
        立するウィンドウのみをコマンド実行の対象とします。
        ({条件式} に関しては、下記 "条件式" の項をご覧下さい)
            Mod1 x :ForEach {MaximizeVertical} {Matches (xterm)}
                条件式{"xterm" という名前に適合するウィンドウ} が成立する各ウィンドウ
                対して、コマンド{垂直方向最大化} を実行します。

    If {条件式} {then コマンド} [{else コマンド}] (Cond)
        {条件式} が成立した場合のみ {then コマンド} を実行します。
        {else コマンド} を指定した時は、{条件式}が非成立の場合は{else コマンド}を実行
        します。
        ({条件式} に関しては、下記 "条件式" の項をご覧下さい)
            Mod1 x :If {Some Matches (Shaded=yes)} {ForEach {ShadeOff}} {exec xmessage
                "There are no shaded window."}

                    ※ 実際には一行に書く必要が有ります。
                条件式{"シェード化されているウインドウ"が何れかのワークスペースに存在
                する} が成立する(真の)場合は "then コマンド"
                    {各ウィンドウのシェード状態を解除}
                を実行し、非成立の(偽の)場合は "else コマンド"
                    {xmessage で "There are no shaded window." を表示}
                を実行します。

        条 件式
   以下のコマンド/キーワードは
ウィンドウが条件に適合するかどうかを検査し
   キーコマンドを条件付きで実行する為に用います。
   これらの条件式は 'IF' や 'ForEach' コマンドなどで使用されます。

   Matches (pattern):
       カレントウィンドウがパターンに適合した時、'真' を返します。
       パターン(
pattern)の構文に関しては、fluxbox-keys manpage の
       CLIENT PATTERNS の項、又は次項 パターンについて をご覧下さい
       キーバインドに OnWindow 修飾子を使用している場合は、フォーカスの有る
       ウィンドウではなく、クリックしたウィンドウに適合します。

       カレントウィンドウ以外を適合させる場合は、以下の 'Some'、'Every' 条件
       も参照してください。

   Some
       (カレントウィンドウ以外でも)すべてのワークの何れかのウィンドウがパターン
      
適合した時、'真 ' を返します。

   Every
       (カ レントウィンドウ以外でも)すべてのワークのすべてのウィンドウがパターン
      
適合した時、'真 ' を返します。

   Not
       条件式が不適合の場合 '真' を返します。逆も又同様で、条件式が適合した場合  
      
'偽' を返します。
       
   And {条件式1} {条件式2} [{条件式3} ...]
       すべての条件式が適合した時、'真' を返します。

   Or {条件式1} {条件式2} [{条件式3} ...]
       何れかの条件式が適合した時、'真' を返します。

   Xor {条件式1} {条件式2} [{条件式3} ...]
       すべての条件式の排他的論理和を返り値とします。


目 次へ

--------------------------------------------------------------------------------------
パターンについて(CLIENT PATTERNS)

    新しいコマンドの幾つかは引数としてパターン(pattern) 指定を要求して
    います。
    それらのコマンドはこの "パターン" に合致したウィンドウに対してのみ
    実行されます。パターンの構文は以下の通りです。

    ([propertyname[!]=]regexp)
        ( ) で括ってパターン定義を記述します。[propertyname[!]=] が省
        略された場合は、()内がウィンドウ名その物と解釈されます。
        ! が = の前に付けられた場合は、「regexp に非適合」で有る場合
        を示します。

    propertyname:
        プロパティ(属性)名には以下の種類が有ります。

        以下のプロパティ名は propertyname=文字列 を設定します。
            Name  : ウィンドウの CLASSNAME 属性に対応する文字列
                [Fluxboxメニュー]-[ツール]-[ウィンドウ名] 又は、
                $ xprop WM_CLASS|cut -d \" -f 2 の出力に相当
            Class : ウィンドウの CCLASSCLASS 属性に対応する文字列
                $ xprop WM_CLASS|cut -d \" -f 4 の出力に相当
            Title : ウィンドウタイトルに対応する文字列
                $ xprop WM_ICON_NAME | cut -d \" -f 2 の出力に相当
            Role : ROLE 属性に対応する文字列
                $ xprop WM_WINDOW_ROLE | cut -d \" -f 2 の出力に相当

        以下のプロパティ名は propertyname=yes 又は no を設定します。
            Transient :一時的ウィンドウ(ポップアップダイアログ等)かどうか
            Maximized :最大化されたウィンドウかどうか
            Minimized :最小化されたウィンドウかどうか
            Shaded : シェード化されたウィンドウどうか
            Stuck : 固着化されたウィンドウかどうか
            FocusHidden : フォーカスリストから外されたウィンドウどうか
            IconHidden  : 最小化リストから外されたウィンドウどうか
            Urgent : "urgent hint" がセットされたウィンドウどうか

        以下のプロパティ名は propertyname=数値又は文字列 を設定します。
            Workspace : ウィンドウが所属するワークスペース番号
                (0 を最初のワークスペース番号として数える)
            WorkspaceName : ウィンドウが所属するワークスペース名
            Head : ウィンドウが所属するディスプレイヘッド番号
            Layer : ウィンドウ所属するレイヤー名。レイヤー名は以下の通り
                AboveDock: ドック層(最上層)
                Dock     : ドック層
                Top      : ウィンドウ最上層
                Normal   : 通常ウィンドウ層
                Bottom   : ウィンドウ最下層
                Desktop  : デスクトップ層(全表示層中の最下層)
        ※該当ウィンドウの propertyname の内の多くは、xprop コマンドで
        調べる事が出来ます。
            $ xprop | less
        を実行の上、該当ウィンドウをクリックし、xprop の出力を読んでみ
        てください。より詳細な情報を得るには、
            http://standards.freedesktop.org/wm-spec/wm-spec-latest.html
        などをご覧下さい。

    regexp:
        regexp(正規(化)表現)については (j)man 7 regex をご覧下さい。
        又は、
            http://ja.wikipedia.org/wiki/正規表現
        などで有益な情報が得られるでしょう。

    パターン例:
        (Name=xterm|mlterm) → xterm と mlterm に合致
        (Name!=xterm|mlterm) → xterm と mlterm に合致
        (Name=[Exm]l?term-?0?.?9?) → xterm と mlterm と Eterm-0.9 に合致
        (Class=Eterm) → Eterm-0.9 に合致
        (Shaded=yes) → シェード化されたウィンドウに合致
        (Stuck=no) → 固着化(全ワークスペースで共通表示)されていない
                      ウィンドウに合致

目 次へ
--------------------------------------------------------------------------------------
キー・マウスボタンの名前

    キーの名前、keykode がわからない時は、xev コマンドを xterm などで
    実行して調べる事が出来ます。
    xev 実行中任意のキー(たとえば"半角/全角漢字"と書かれたキー) を押し
    た時、出力の中に
        keycode 49 (keysym 0xff2a, Zenkaku_Hankaku)
    のような部分が有った時、「Zenkaku_Hankaku」がキーの名前、「49」が
    keycode です。
    同様に、マウスボタンの名前も xev で調べる事が出来ます。
    任意のマウスボタンを押したり、マウスホイールを回転した時、
        state 0x0, button 1, same_screen YES
    などと表示された時「1」がボタン番号です。この場合 keys ファイルへ
    の記述は「Mouse1」と書きます。
    5 ボタン以上のマウスの場合も、ハード的に認識されていれば、定義に使
    用可能です。
       例: OnTitlebar Mouse6 :Lower
    あなたのマウスに合わせた情報を net などで検索し、多ボタンマウスの
    利用にも挑戦してみて下さい。

--------------------------------------------------------------------------------------

キーマップの変更

ここでは、keys ファイルでのキーバインドの自由度を上げる為に、修飾キー
Mod1 - Mod4 を設定する事を重点に、X のキーマップの設定法を述べます。

--------------------------------------------------------------------------------------

キーマップの調査

X Window System でのキーマップ(キーボードとキーコードの対応)を調べるには、
xmodmap コマンドを使います。
    xmodmap -h
で、xmodmap の簡単な使い方が表示されます。
    man xmodmap
で、xmodmap の manpage が表示され、詳しい使い方を調べる事が出来ます。
英語が苦手な方は、こ ちらの サイトが参考になると思われます。
ここでは -pm(print modifier)オプションで、修飾キーの設定を調べます。

下はシステムデフォルトの装飾(modifier)キー関連のキーマップの一例です。
   
$ xmodmap -pm
xmodmap:  up to 3 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Eisu_toggle (0x42)
control     Control_L (0x25),  Control_R (0x6d)
mod1        Alt_L (0x40),  Alt_L (0x7d),  Meta_L (0x9c)
mod2        Num_Lock (0x4d)
mod3
mod4        Super_L (0x7f),  Hyper_L (0x80)
mod5        Mode_switch (0x5d),  ISO_Level3_Shift (0x7c)

目 次へ

--------------------------------------------------------------------------------------

キーコード/キーシンボルの調査

実際に繋がれているキーボードに即したキー コード(keycode)キー 名(keysym)は、
Xターミナルから xev コマンドを実行して調べます。
実行中にキーボードやマウスを操作すると、以下のような表示がされます。
   
KeyPress event, serial 32, synthetic NO, window 0x1c00001,
    root 0x139, subw 0x0, time 1088226, (84,79), root:(354,314),
    state 0x0, keycode 131 (keysym 0xff22, Muhenkan), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False
上の例は"無変換"キーを押した時の表示で、このキーの keycode131keysym
Muhenkan で有る事を示しています。

目 次へ

--------------------------------------------------------------------------------------

ユーザー設定ファイル(~/.Xmodmap)

システムのキーマップに変更/追加を加えるには、xev の出力と xmodmap の
manpage の EXPRESSION GRAMMAR(表現文法)の項を参考に~/.Xmodmap に定義しま
す。下は ~/.Xmodmap の一例です。
   
! my settings for xmodmap
keycode 113 = Alt_R
add mod1 = Alt_R

keycode 131 = Muhenkan
clear mod2
add mod2 = Muhenkan

keycode 129 = Henkan_Mode
clear mod3
add mod3 = Henkan_Mode

keycode 115 = F13
clear mod4
add mod4 = F13
註釈行は、先頭に '!' を
Alt_R も Mod1 に ※Mod1 には Alt_L も
 定義されているので clear しない



"無変換" を Mod2 に




"変換" を Mod3 に



"Win" を Mod4 に


目 次へ

--------------------------------------------------------------------------------------

設 定ファイルの反映

~/.Xmodmap を実際にシステムのキーマップに反映させてみます。
   
$ xmodmap ~/.Xmodmap
※X の再起動後は ~/.Xmodmap は自動的に読み込まれますので、上のコマンドの実 行
は不要です。


目 次へ

--------------------------------------------------------------------------------------

キー マップ変更の確認

上記を実行後に、もう一度装飾(modifier)キー関連のキーマップを調べます。
   
$ xmodmap -pm
xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Eisu_toggle (0x42)
control     Control_L (0x25),  Control_R (0x6d)
mod1        Alt_L (0x40),  Alt_L (0x7d),  Meta_L (0x9c),  Alt_R (0x71)
mod2        Muhenkan (0x83)
mod3        Henkan_Mode (0x81)
mod4        F13 (0x73),  F13 (0x74)
mod5        Mode_switch (0x5d),  ISO_Level3_Shift (0x7c)
Mod1-Mod4 が変更されているのが確認できます。

※上の設定の場合 "無変換"、"変換"、"Win" を使用していますが、支障が有る場合
(IM のファンクションとの衝突など)は、他の未使用キーを割り当てます。
又、IM の設定でこれらのキーは定義されているが、実際には使わない場合は、IM
の設定からこれらのキーを取り除いてから、上の設定を行ってください。


目 次へ