やっどー

Discuss Web, Social, Linux Technologies

Change keybind (Linux,fedora18)

keybindの変更方法は下記の3ステップ。

1) keycodeの確認

[masa@MasaServer ~]$ xev
Outer window is 0x3800001, inner window is 0x3800002

KeyRelease event, serial 31, synthetic NO, window 0x3800001,
    root 0xd9, subw 0x0, time 45935923, (1578,513), root:(1579,600),
    state 0x0, keycode 49 (keysym 0xff2a, Zenkaku_Hankaku), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

2) .Xmodmapに変更点の記載

[masa@MasaServer ~]$ vim ~/.Xmodmap 
keycode 100 = Escape
keycode 101 = Escape
keycode 102 = Zenkaku_Hankaku

(注意点)
「Shiftキー」で別の文字が出るようにするには、下記のようにする必要があり。
keycode 51 = bracketright braceright kana_MU kana_closingbracket

3) .Xmodmapの登録

方法その1)~/.xinitrc、あるいは、~/.xsessionに登録(reboot必要)
こちらの場合は、X Window Systemが起動する読み込まれる。つまり、使おうときはすでに設定されている。

[masa@MasaServer ~]$ vim ~/.xinitrc
xmodmap $HOME/.Xmodmap

[masa@MasaServer ~]$ vim ~/.xsession
xmodmap $HOME/.Xmodmap
[masa@MasaServer ~]$chmod +x ~/.xsession
(.xsessionの場合、実行権限が必要)

(追記)
自分の環境では「方法その1」では反映されないので、下記の場所に追加しました。

[masa@MasaServer ~]$ vim ~/.bashrc
xmodmap $HOME/.Xmodmap

これでは、端末(bash)を一度起動しないと、キーバインドの変更は反映されません。
ご注意を!


方法その2)xmodmapコマンド実行
コマンドを実行しなければ動かない。つまり、PC起動の度にコマンドを実行する必要がある。

xmodmap ~/.Xmodmap