SSブログ

ubuntu 10.04 keyboard remap [Linux]

ubuntuのキーマップ変更をしようと思ったのだけれど、これが意外に難しかったので、備忘のために。

ほとんどの変更は~/.Xmodmapに書けばできる。

準備:
xmodmap -pke
で現在のkeycodeの設定を調べる
xmodmap -pm
で現在のmodifier(shiftやaltなどの他のキーと組み合わせて使うキー)の設定を調べる

上の二つの出力結果とxevの結果からスクリプトを書いていく。

keycodeの書式は
keycode num = $1 $2 $3 $4
で、$1は何も押さないときの入力
$2はshiftと一緒に押されたときの入力
$3はMode_switchと一緒に押された時の入力
$4はMode_switchとさらにshiftと一緒にいれた場合の入力
となっている。
まぁMode_switchはめったに使わないわな。

キーシンボルの変更は
keysym Control_L = CapsLock
などとして行う

modifierのマッピングを変更するためには
remove control = Control_L
add control = Control_L
clear control
などが使える。

ここまでで大体のキーの設定は可能。
例えば、ctrlとcapslockの入れ替えは

remove control = Control_L
remove lock = CapsLock
keysym Control_L = CapsLock
keysym CapsLock = Control_L
add control = Control_L
add lock = CapsLock

とすればOK

ところがxmodmapだけでは変えられないマッピングがある。
それはxkbが有効になっているのが原因らしく、変えられないのは例えばshift+backspaceなど。

これがtilde(~)になっていたほうが便利なので変えたいのだけれど、それがうまくいかない。
その変更方法は、
/usr/share/X11/kbd/symbols/terminateを次のように書き換える。

partial default modifier_keys
xkb_symbols "ctrl_alt_bksp" {
key {
// type="CTRL+ALT",
// symbols[Group1] = [ NoSymbol, Terminate_Server ]
type="SHIFT",
symbols[Group1] = [ asciitilde, asciitilde ]
};

これをすると(おそらく)alt+ctrl+backspaceでのXの強制終了ができなくなると思うのだが、普通にデスクトップで使っていればXを強制終了することなんかはそうそうないので良いということにする。

調べるのが大変だったけどできてなにより。

nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。