edo1z blog

プログラミングなどに関するブログです

Ubuntu16.04 - キーボードのキー割り当て(キーバインド)をxkbで変更する

ホームディレクトリに.xkbというのを作って、.xkb以下に設定ファイルを作成して、.bashrcとか、.zshrcとかでそれを読みこませることで細かいキーバインド設定が可能。

[xkb] Ubuntu 14.04 で Caps Lock を別のキーにする方法 Ubuntu 14.10でキー配置を変更してみた xkb編

上記を全部一通り読んだらできた。ちなみに下記は英語だけど色々詳しく書いてある。 An Unreliable Guide to XKB Configuration

以下はメモ。

下記で現在のキー設定を確認できる。

$ setxkbmap -print

下記でイベントリスナーが取得してる内容をみることができて、各ボタンをおしたときに、コードや反応しているアクション名などを確認することができる。

$xev

下記パス以下に、xkbの設定が入っている。

/usr/share/X11/xkb/

下記で、xkbの設定を反映することができる。mykbdは自分で命名した内容による。

$ xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY 2> /dev/null

自分が設定してみた内容は下記です。

~/.xkb/keymap/myxkb

xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)" };
    xkb_types     { include "complete"  };
    xkb_compat    { include "complete"  };
    xkb_symbols   { include "pc+jp+us:2+inet(evdev)+myswap(swapkeys)"   };
    xkb_geometry  { include "pc(pc105)" };
};

~/.xkb/symbols/myswap

partial modifier_keys
xkb_symbols "swapkeys" {
  key <AB11> { [ underscore, backslash ] };
  key <MUHE>  { [ Escape, Escape ] };
  key <HENK>  { [ BackSpace, BackSpace] };
  key <HKTG>  { [ Return, Return] };
  key <LALT>  { [ Control_L, Control_L] };
  key <LCTL>  { [ Alt_L, Alt_L] };
};