1
1

More than 3 years have passed since last update.

CapsキーをCtrlキーに置き換えつつ、左Ctrlキーと左Altキーを入れ替える (Linux, Ubuntu)

Last updated at Posted at 2020-03-12

私の欲しているCTRLキー設定

  • Capsキーは要らない
    (必要性について国民投票したら負ける気がしない)
  • CtrlキーはAの横派
    (私が時を巻き戻すことができるのなら、初めにCtrlキーをキーボードの左下に置いた人間に考え直すよう直談判する)
  • 左の親指でCtrlキー(通常Alt/Metaキーが鎮座)を押すと、信じられないぐらいに楽なことを知ってしまった
    (普段使用しているエディタはVimでEmacs使いではないので、Alt(Meta)は多少離れていても問題ない)

ポイント

  • キーの置き換え・入れ替えの設定は「setxkbmap」コマンドで行う
  • X起動時に設定するコマンドを実行する方法は、環境によって異なる

試した環境

  • Ubuntu 19.04

手順

1. setxkbmapによるCtrlキーの置き換え・入れ替え

「CapsキーのCtrlキーへの置き換え」と「左Altキーと左Ctrlキーの入れ替え」は下記のオプションが予め定義されているのでそれを使えば良い

  • 「ctrl:nocaps」 CapsキーをCtrlキーに置き換える
  • 「ctrl:swap_lalt_lctl」 左AltキーとCtrlキーを入れ替える

上記オプションを「setxkbmap」実行時に指定する

$ setxkbmap -option "ctrl:nocaps" -option "ctrl:swap_lalt_lctl"

設定ができたかどうかはsetxkbmap -printで確認する (xkb_symbols)

$ setxkbmap -print
xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)" };
    xkb_types     { include "complete"  };
    xkb_compat    { include "complete"  };
    ★xkb_symbolsに指定したctrl(nocaps)とctrl(swap_lalt_lctl)が追加されていることが確認できる
    xkb_symbols   { include "pc+us+us:2+inet(evdev)+ctrl(nocaps)+ctrl(swap_lalt_lctl)"  };
    xkb_geometry  { include "pc(pc105)" };
};

2. X起動毎にこの設定を有効にする

Ubuntuの場合

「gnome-session-properties」を起動、「追加(Add)」を押して「setxkbmap -option "ctrl:nocaps" -option "ctrl:swap_lalt_lctl"」を追加する

その他の場合

最近のRaspbianでは、LXDEベースだった頃の~/.config/lxsession/LXDE-pi/autostartが使えないので、シェルスクリプトに書いて、systemdにサービスとして登録して実行する

メモ

  • CapsキーへのCtrlキーの置き換えは /etc/default/keyboardのXKBOPTIONSに「ctrl:nocaps」を指定して実現していましたが、複数のオプションを指定した場合、最初のものしか有効とならなかった
  • /usr/share/X11/xkb/symbols/にsetxkbmapの設定項目がファイルとして置かれている
  • ctrlのオプション項目の定義とその内容は/usr/share/X11/xkb/symbols/にsetxkbmap/ctrlにかかれている
  • 既存のオプション以外の設定がしたければ、ここを書き換えるなりすれば良さそう

  • あくまでも個人の感想です。

1
1
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
1
1