アーカイブ : 2011年 12月 18日

Xmodmap

MacのVirtualBoxにFreeBSDを入れましたが、Altキーが小さくて使いにくいので、Commandキーをメインに使うようにする設定を忘れないように書いておきます。
普段、emacs を no window で使うことが多いので、ターミナルだとCommandキーがMetaキーとして使えないことも大変不便だったので、Xmodmapを使ってキー割り当てを変更しています。
Alt+tabで出来るWindow切り替えを、Command+tabで出来るようになるので結構便利です。
VirtualBoxのホストキーのデフォルトは、CommandキーなのですがOptionキーを割り当てて使用するようにしています。

修正前の設定は、下記の通りです。ターミナルでxmodmapを使うことでわかります。

% xmodmap 
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_R (0x71),  Meta_L (0x9c)
mod2        Num_Lock (0x4d)
mod3      
mod4        Super_L (0x73),  Super_R (0x74),  Super_L (0x7f),  Hyper_L (0x80)
mod5        Mode_switch (0x5d),  ISO_Level3_Shift (0x7c)

mod1 は、ターミナルでもキー配送される装飾キーになります。そこにコマンドキーに対応するSuper_LとSuper_Rをmod4からmod1に変更します。
キーコードは、xevで調べることができます。

設定は、下記のような~/.Xmodmapを作成して、 xmodmapで読み込みます。
普通にインストールされてGDMを使っているような方は、次回ログイン時から自動的に読み込まれる設定になっていると思います。

remove mod4 = Super_L
remove mod4 = Super_R
add mod1 = Super_L
add mod1 = Super_R
%xmodmap ~/.Xmodmap

変更後のxmodmapは、下記の通りです。

%xmodmap
xmodmap:  up to 6 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_R (0x71),  Super_L (0x73),  Super_R (0x74),  Super_L (0x7f),  Meta_L (0x9c)
mod2        Num_Lock (0x4d)
mod3
mod4        Hyper_L (0x80)
mod5        Mode_switch (0x5d),  ISO_Level3_Shift (0x7c)

以上です。