ブート時のキーマップ設定スクリプト(/etc/init.d/keymap.sh)確認する. debian 3.1 (sarge)では /etc/console/boottime.kmap.gz を loadkeys で読み込んでいた.
# loadkey /etc/console/boottime.kmap.gz
オリジナルの boottime.kmap 設定
keycode 29 = Control : keycode 58 = Caps_Lock |
変更後の boottime.kmap 設定
keycode 29 = Caps_Lock : keycode 58 = Control |
良く行われるキーマップの変更は /etc/X11/XF86Config (あるいは XF86Config-4) のキーボード設定に XkbOptions を追記すればよい. 特殊な変更は /etc/X11/xkb/keycodes/ 内のファイルを編集すれば可能. 変更後, X を再起動することを忘れずに...
XF86Config の keybord 設定
Section "InputDevice" Identifier "Generic Keyboard" Driver "keyboard" Option "CoreKeyboard" Option "XkbRules" "xfree86" Option "XkbModel" "jp106" Option "XkbLayout" "jp" Option "XkbOptions" "ctrl:swapcaps" EndSection |
上記 Xkb 設定(XkbRules の値が "xfree86")の場合 /etc/X11/xkb/keycodes/xfree86 を編集
変更前の設定
<FK01> = 67; <ESC> = 9; |
変更後の設定
<ESC> = 67; <ESC> = 9; |
キーコードの確認は xev (1) (:X Event View の略かな?) というコマンドを実行し, を知りたい キーを押すことで確認できる. 例えばゲイツキー(Win印のキー)は 以下の情報から "115" と "116" に割り当てられていることがわかる. /etc/X11/xkb/keycodes/xfree86 等を編集することで これらのキーに何らかの役割を与えることも可能.
KeyRelease event, serial 27, synthetic NO, window 0x1c00001, root 0x38, subw 0x0, time 53904022, (12,-6), root:(41,80), state 0x0, keycode 115 (keysym 0x0, NoSymbol), same_screen YES, XLookupString gives 0 bytes: "" KeyRelease event, serial 27, synthetic NO, window 0x1c00001, root 0x38, subw 0x0, time 53904150, (12,-6), root:(41,80), state 0x0, keycode 115 (keysym 0x0, NoSymbol), same_screen YES, XLookupString gives 0 bytes: "" KeyPress event, serial 27, synthetic NO, window 0x1c00001, root 0x38, subw 0x0, time 53904395, (12,-6), root:(41,80), state 0x0, keycode 116 (keysym 0x0, NoSymbol), same_screen YES, XLookupString gives 0 bytes: "" KeyRelease event, serial 27, synthetic NO, window 0x1c00001, root 0x38, subw 0x0, time 53904566, (12,-6), root:(41,80), state 0x0, keycode 116 (keysym 0x0, NoSymbol), same_screen YES, XLookupString gives 0 bytes: "" |
ユーザレベルで X 上のキーマップの割当を変更する場合, xmodmap (1) を利用すると良い. 次に記す例も含め, 良く行われる変更の例は xmodmap (1) のマニュアルページに 紹介されているので参照のこと.
ホームディレクトリに以下の内容で .xmodmaprc というファイルを作成.
! ! Caps_Lock と Control_L の入れ換え ! remove Lock = Caps_Lock remove Control = Control_L keysym Control_L = Caps_Lock keysym Caps_Lock = Control_L add Lock = Caps_Lock add Control = Control_L |
.bash_profile に以下の行を追加
xmodmap ~/.xmodmaprc |
X 再起動.