LoginSignup
2
0

More than 5 years have passed since last update.

Linux のコンソールでも Caps_Lock と Ctrl(Control) を入れ替える

Last updated at Posted at 2019-04-13

この記事は何?

コンソールにおける、キーマップの変更方法の解説になります。
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 の作成

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
/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
#
# ~/.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

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0