Arch Linux で Caps Lock と Ctrl を交換(変更)したり、Mac 風なキー配置にしてみたり。
どう考えても Mac のキー配置が常識だと思う。
なぜ全く必要のない Caps Lock が左小指のとなりなんていう特等席にいるのだろう。
そんな事を考えてググったら簡単にキー配置をいじれたのでメモ。
今回は xmodmap というコマンドを使う。
まあ、X11 と一緒に入ってるので心配はいらない。
$ xmodmap -pke | less
と打つと、
keycode 24 = q Q q Q keycode 25 = w W w W keycode 26 = e E e E keycode 27 = r R r R keycode 28 = t T t T keycode 29 = y Y y Y keycode 30 = u U u U keycode 31 = i I i I keycode 32 = o O o O keycode 33 = p P p P
みたいなのが延々とでてくるので、これらの情報を使ってキー配置を変更していく。
例えば下段の一番右のバックスラッシュをアンダーバーにしたいときは、
$ xmodmap -pke | grep back
とすると
keycode 97 = backslash underscore backslash underscore
と出ると思う。
ここで ~/.Xmodmap とか適当にファイルを作って
! 下段一番右のキーを shift を押さなくてもアンダーバーが入力されるようにする ! ちなみにこの設定ファイルでは ! でコメントになる keycode 97 = underscore underscore underscore underscore
と書き込んで
$ xmodmap ~/.Xmodmap
と打つ。するとバックスラッシュがアンダーバーになる。
次に Caps Lock を Control にする等には、先とは少し違った方法が必要になる。
remove Lock = Caps_Lock keysym Caps_Lock = Control_L add Control = Control_L
この remove とかはいまいち理解しきれてないのではっきりとしたことは言えないけど、たぶん remove Lock で変更可能にして keysym で対応させて、add Control で実際に追加しているんだと思う。
もう少し詳しいことは最後の参考資料のところに書いてあるので参考されたし。
それから何かのキーを無効化するには
$ xmodmap -pke | less
で keycode を調べて
keycode 77 = NoSymbol
とすればいい。ちなみに keycode 77 は NumLock になっている。
ただ私の環境での話なので実際に確認して実行して欲しい。
もしタイポってた場合はエラーが出るのですぐにわかる。
この調子でバリバリ自分好みに書き換えていけばいい。
ちなみに
$ xmodmap -e "keycode 27 = N s"
とすると設定ファイルをつくらずに r が N へ、R が s へと変化する。
ただこれだと何をどう変えたのかわからなくなるので、先に述べた方法で設定ファイルとして書き残すことをおすすめする。
最後に私の windows 端末を Mac 風キーマップにした設定ファイルを置いておく。
! ! Windows 端末を Mac 風キーマップにしてみた。 ! 具体的には
! Num Lock を無効化 ! Caps Lock を Ctrl に ! 左 Ctrl を無効化 ! 円記号をバックスラッシュに ! バックスラッシュを無効化してアンダーバーのみに ! と変更した。 ! remove Lock = Caps_Lock keysym Caps_Lock = Control_L add Control = Control_L keycode 37 = NoSymbol ! keycode 37 は元々の左 Control keycode 77 = NoSymbol ! keycode 77 は NumLock keycode 97 = underscore underscore keycode 132 = backslash bar
なおこの remove とかはログインごとにしなくてはならないので、~/.xinitrc や ~/.bashrc 等のログイン時に実行されるファイルに
xmodmap ~/.Xmodmap
とでも書いておくといい。
なお、例えばもし p を間違えて他の文字で置き換えたりしてタイピングがまともにできなくなっても落ち着いてコピペを使って復旧してください。
私はかなりパニックになりました。