keymap 変更
vimとvimperatorでESCを打鍵するときは Ctrl+[ を使っていたのだが両小指を伸ばさなければいけないのはつらい。
と言うわけで、Spaceキーの横に右に位置していてなおかつ、(僕にとって)Spaceキーと同じ使用用途しかない「変換」キーをESCに変えることにした。
設定は以下を参照
http://d.hatena.ne.jp/ykmbpp/20100101/1262340766
僕のubuntuは10.10だが.Xmodmapの内容を
keycode 100 = Escape NoSymbol Escape NoSymbol Escape
とすると望みどおりのキーマップに変更された。
-
- -
<- 補足 ->
「変換」キーとESCキーのマッピングを知るには
$ xev
コマンドを実行し、「変換」キーを打鍵、次にESCを打鍵した結果、
KeyPress event, serial 36, synthetic NO, window 0x4c00001,
root 0x10d, subw 0x0, time 16851768, (158,635), root:(1601,690),
state 0x0, keycode 100 (keysym 0xff1b, Escape), same_screen YES,
XKeysymToKeycode returns keycode: 9
XLookupString gives 1 bytes: (1b) "e"
XmbLookupString gives 1 bytes: (1b) "e"
XFilterEvent returns: FalseKeyRelease event, serial 36, synthetic NO, window 0x4c00001,
root 0x10d, subw 0x0, time 16851840, (158,635), root:(1601,690),
state 0x0, keycode 100 (keysym 0xff1b, Escape), same_screen YES,
XKeysymToKeycode returns keycode: 9
XLookupString gives 1 bytes: (1b) "e"
XFilterEvent returns: FalseKeyPress event, serial 36, synthetic NO, window 0x4c00001,
root 0x10d, subw 0x0, time 16855392, (158,635), root:(1601,690),
state 0x0, keycode 9 (keysym 0xff1b, Escape), same_screen YES,
XLookupString gives 1 bytes: (1b) "e"
XmbLookupString gives 1 bytes: (1b) "e"
XFilterEvent returns: FalseKeyRelease event, serial 36, synthetic NO, window 0x4c00001,
root 0x10d, subw 0x0, time 16855464, (158,635), root:(1601,690),
state 0x0, keycode 9 (keysym 0xff1b, Escape), same_screen YES,
XLookupString gives 1 bytes: (1b) "e"
XFilterEvent returns: False
となっていたので、「変換」キーの番号「100」をESCに変更した。
実は、
keycode 100 = Escape NoSymbol Escape NoSymbol Escape
代入している右辺の意味はよく分かりません。
→Escape NoSymbol Escape NoSymbol Escape は、KeySymの名前
詳しくは、↓参照
http://twonine.exblog.jp/13100618/
追記 2011/06/26
xmodmap の初期起動
http://d.hatena.ne.jp/inouetakuya/20090917/1253158013
追々記 2012/03/01
変換キーをインプットメソッドの入れ替えに使うだけなら、
1.右上にあるインプットメソッドの設定アイコンをクリック
2.設定(P)をクリック
3.IBusの設定ウィンドウの一般タブをクリック
4.キーボードショートカットの「切り替え」の右のボタンをクリック
5.適当なキーボードショートカットをクリック(使いそうにないHungle(スペル怪しい)とか)
6.キーコードに表示されている文字が変わったことを確認し、その右のボタンをクリック
7.割り当てたいキーをモディファイヤーキーと共に打鍵(今回の場合は変換キーのみを打鍵)
8.OKをマウスでクリック
追々記 2013/10/20 ubuntu 13.10 で確認
capslockをctrlで置き換えるときは、↓が詳しい。
http://linuxserver.jp/linux/デスクトップ用途/x-windowのキーバインドをカスタマイズ.php
ただし、capslockのKeySymの取得は、
# xmodmap -pm
のlockの左に書かれている文字で行う。
shift Shift_L (0x32), Shift_R (0x3e)
lock Eisu_toggle
control Control_L (0x25), Control_L (0x42), Control_R (0x69)
mod1 BadKey (0x40), Alt_R (0x6c), Meta_L (0xcd)
mod2 Num_Lock (0x4d)
mod3
mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)
mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)
注)ネット上を見てみるとlock のKeySymは Caps_Lock である場合がほとんど。
owltechのキーボードをつかっているので、私の場合は、Eisu_toggleだった。
結局、.Xmodmapは↓の設定
! capslock -> left ctrl
remove Lock = Eisu_toggle
keysym Eisu_toggle = Control_L
add Control = Control_L! henkan -> Zenkaku hankaku
keycode 100 = Zenkaku_Hankaku Kanji Zenkaku_Hankaku Kanji! muhenkan -> Esc
keycode 102 = Escape NoSymbol Escape