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


                                               Last update 2010/04/23
----------------------------------------------------------------------
目次

    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 ファイルに書き込む場合は、割り当てるキーバインドをコマンド
の前に書き加えてください。

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

       Commandoption 【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

    Reconfigure Reconfig
        設定ファイルを再読み込み。
            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

    Maximize MaximizeWindow
        最大化 (実行毎にトグル(最大化/元 サイズを交互に実行))
            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

    Shade ShadeWindow
        ウィンドウのシェード化(タイトルバーに格納)の状態を切り替える。
            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 ファイル内では使用しません。
            M BindKey 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 (keysym0xff22, 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
の設定からこれらのキーを取り除いてから、上の設定を行ってください。


目 次へ






Mod1 Mouse1 :StartMoving inserted by FC2 system