キーバインドはWinと同等にする。
xmodmap -pke > .xmodmap_def
このファイルを改造してリセット用のファイルを作成する。
先頭に以下を追加
clear shift
clear lock
clear control
clear mod1
clear mod2
clear mod3
clear mod4
clear mod5
末尾に以下を追加
add shift = Shift_L
add shift = Shift_R
add lock = Eisu_toggle
add control = Control_L
add control = Control_R
add mod1 = Alt_L
add mod1 = Alt_R
add mod1 = Meta_L
add mod2 = Num_Lock
add mod4 = Super_L
add mod4 = Super_R
add mod4 = Super_L
add mod4 = Hyper_L
add mod5 = ISO_Level3_Shift
add mod5 = Mode_switch
コンソールからxevを実行してキーコードを調べる。
xmodmap -pm でモディファイを確認しておく。(xmodmap -pke で割り当ての一覧)
keycode xxx = キーシム 1 2 3 4 5 6 となる。
1: そのキーだけを押した時の出力
2: Shiftで修飾の出力。
3: mod2で修飾の出力。
4: Shift+mod2で修飾の出力。
モディファイキーを移動する場合、モディファイから削除しておく。
remove control = Control_L等
移動後、再度追加。
add control = Control_L等
最終的に以下のように設定。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
!モディファイからキーシムを削除 remove lock = Eisu_toggle remove shift = Shift_R remove control = Control_L remove mod4 = Super_L remove mod5 = Mode_switch keycode 49 = Mode_switch keycode 23 = Super_L keycode 66 = Control_L keycode 37 = Return keycode 133 = Tab keycode 102 = Zenkaku_Hankaku keycode 100 = BackSpace keycode 101 = semicolon plus keycode 47 = Return keycode 48 = minus equal keycode 20 = at grave keycode 34 = colon asterisk keycode 62 = Tab keycode 110 = F1 keycode 115 = F2 keycode 67 = Home keycode 68 = End keycode 43 = h H Left keycode 44 = j J Down keycode 45 = k K Up keycode 46 = l L Right !モディファイにキーシム追加 add control = Control_L add mod2 = Mode_switch add mod4 = Super_L |
注意点として、xmodmapを繰り返すと、一度摘要された設定に再度設定するので、半角/英数などの部分でエラーになってしまう。defを一度実行すれば大丈夫。
WinがAutohotkeyで対応している部分は後々考える。
自動起動について
/etc/rc.local に xmodmap ~/.xmodmap
.profile に xmodmap .xmodmap
等に書いてもダメ。unable to open displayになってしまう。
GUI側のターミナルで、echo $DISPLAY とすると、:0 と表示されるので、
.profileには
export DISPLAY=”:0″
xmodmap .xmodmap
の2つを追記する。
これで一応SSHから入るとxmodmapが読み込まれるようだが、GUI側のターミナルを開いただけでは読まれない模様。(上記2行を/etc/profileに書いても同じ症状)
SSHで入ると、GUIの方にもxmodmapが読み込まれるようだけど。
GUIの自動起動に追加してみる。
~/.config の中に autostart フォルダを作成する。
(全ユーザ共通は /usr/share/gnome/autostart となる)
そのフォルダの中にファイルを作りファイル名は *.desktop とする。
ファイルの中に
[Desktop Entry]
Exec=xmodmap .xmodmap
Type=Application
を書いておく。
これで問題なく動いた。
作るタイミングによっては自動で.xmodmapを検出して自動起動するか確認される場合もあって気がするが、今回はなかった。
1 /etc/profile 全ユーザ共通。
2 .bash_profile なくてもいい。
3 .bash_login 上記2がない場合読まれる。なくてもいい。
4 .profile 上記2,3が無い場合読まれる。なくてもいい。
5 .bashrc シェルごとに読まれる。