|
fluxbox
では、キーボードオペレーション(ショートカット、アクセラレー ションキー、ホットキー)の設定は ~/.fluxbox/keys ファイルで行います。 *設定ファイル名は変更可能ですが、ここでは触れません。 |
|
Control(mod)
A(key)
:Restart(command)
fluxbox(option) |
|
装飾キーに
ついて 一般的に Shift、Control、Mod1(Alt)は通常のキー設定で使えます。 その他に、Mod2、Mod3、Mod4 等も ~/.Xmodmap で設定すれば、使 用可能 に なります。以下の三行を ~/.Xmodmap に書き加える事で、Mod4 に [無 変換]キーを割り当てる事ができます。 keycode 131 = Muhenkan clear mod4 add mod4 = Muhenkan ※キーコード(上の場合 131)とキー名(Muhenkan)は xev コマンド等で予 め確認しておいてください。 |
|
ウィンドウコマンド関連修飾子と特殊コマンド 通常、ウィンドウ操作関連コマンドは、現在フォーカスの有るウィンドウ を対象としますが "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" に適合するウィンドウのみを、全て垂直に最大化。 |
定義 &
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 |
|
この時、"KMode2:"
で始まるキーバインド以外は無効になります。 Mod1 Tab と Ctrl v は、"KMode2" では定義されていない為、 fluxbox にではなく、アクティブなアプリケーションに渡されま す。 例えば Control v は、emacs では「ページスクロール」、gedit では「貼り付け」等、アプリケーションのキーコマンドとして実行 されることになります |
|
※名前空間
"default"
は特別な名前空間で、通常は省略されますが、 "default:" と明記してもかまいません。つまり、 Control r :RootMenu default: Control r :RootMenu 上の二行は全く同じ意味を持ちます。 |
条件式 以下のコマンド/キーワードはウィンドウが条件に適合するかどうかを検査し キーコマンドを条件付きで実行する為に用います。 これらの条件式は '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} ...] すべての条件式の排他的論理和を返り値とします。 |
|
$
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) |
|
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 |
|
!
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 -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) |