この記事は何?
コンソールにおける、キーマップの変更方法の解説になります。
Ctrl は常に A の左の位置にあって欲しいという人向けの記事になります。
私の環境について
私は、Thinkpad x100e というラップトップPCに ArchLinux をインストールし、この設定を行っています。
また、このマシンには、usキーボードが搭載されています。
keycode の確認
標準的な keymap は下記のように配置されています(ディストリによって異なるかも?)。
/usr/share/kbd/keymaps/ 環境に応じたディレクトリ / キー配列 / キーボードの種類.map.gz
下記のコマンドで一度、中身を確認しましょう。
※パスは適宜変更してください。
$ sudo zcat /usr/share/kbd/keymaps/i386/qwerty/us.map.gz | less -i
今回の目的は Caps_lock を Ctrl に変更する事なので、この2つの keycode を調べておきます。
※パスは適宜変更してください。
$ sudo zcat /usr/share/kbd/keymaps/i386/qwerty/us.map.gz | grep -iE '^keycode' | grep -iE 'control$|caps\_lock$'
keycode 29 = Control
keycode 58 = Caps_lock
keycode 97 = Control
Caps_Lock を Ctrl に変更する
loadkeys で読み込む keymaps の作成
$ sudo mkdir -p /usr/local/share/kbd/keymaps
$ sudo echo 'keymaps 0-127' >> /usr/local/share/kbd/keymaps/ctrl2caps.map
$ sudo echo 'keycode 29 = Caps_Lock' >> /usr/local/share/kbd/keymaps/ctrl2caps.map
$ sudo echo 'keycode 58 = Control' >> /usr/local/share/kbd/keymaps/ctrl2caps.map
$ sudo chmod 755 /usr/local/share/kbd/keymaps/ctrl2caps.map
keymaps 0-127
keycode 29 = Caps_Lock
keycode 58 = Control
※左のCtrlをCaps_Lockにしたくなければ、"keycode 29 = Caps_Lock" は不要です。
.bash_profile に loadkeys を追加
#
# ~/.bash_profile
#
### ↓この行を追記しました。
sudo loadkeys /usr/local/share/kbd/keymaps/ctrl2caps.map
[[ -f ~/.bashrc ]] && . ~/.bashrc
※ログイン時に loadkeys で読み込むのが、無難そうだったので私はそうしましたが、お好みの方法でよいと思います。
より良い方法などご存知の方は、ご教示いただけると幸いです。
参考URL
How to change console keymap in Linux?
https://superuser.com/questions/290115/how-to-change-console-keymap-in-linux