Ubuntu 20.04を端末にインストールしてメインで使うようになりました。UbuntuとWindowsではバックスラッシュの扱いが異なっていて、右上の「¥」のキーでバックスラッシュを入力する癖がついている自分はもやもやしてしまいます。そこで、キーバインドを変更して円記号のキーでバックスラッシュを入力するようにします。
環境
- Ubuntu 20.04
作業手順
現在の設定確認
$ setxkbmap -print
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+jp(OADG109A)+us:2+inet(evdev)+terminate(ctrl_alt_bksp)" };
xkb_geometry { include "pc(pc105)" };
};
キーコード確認
xevを使って確認します。円記号のキーのキーコードは132
でした。
$ xev | grep keycode
state 0x10, keycode 36 (keysym 0xff0d, Return), same_screen YES,
state 0x10, keycode 132 (keysym 0xa5, yen), same_screen YES,
state 0x10, keycode 132 (keysym 0xa5, yen), same_screen YES,
state 0x10, keycode 97 (keysym 0x5c, backslash), same_screen YES,
state 0x10, keycode 97 (keysym 0x5c, backslash), same_screen YES,
キーシンボル確認
調べたキーコードからキーシンボルを確認します。確認対象のファイルは、現在の設定のxkb_keycodes
によります。今回の場合、
xkb_keycodes { include "evdev+aliases(qwerty)" };
だったので、/usr/share/X11/xkb/keycodes/
の下のevdev
とaliases
を確認します。
$ grep 132 /usr/share/X11/xkb/keycodes/evdev
<AE13> = 132; // Yen
確認すると、キーシンボルは<AE13>
でした。
キーバインド変更ファイル作成
ディレクトリを作成します。
$ mkdir -p ~/.xkb/symbols
ファイルを作成します。ここで調べたキーシンボル<AE13>
を使います。
~/.xkb/symbols/myswap
partial modifier_keys
xkb_symbols "swapkeys" {
replace key <AE13> { [ backslash ] };
};
設定ファイル作成
設定ファイルを作成する前に、現在の設定をもう一度確認しておきます。
$ setxkbmap -print
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+jp(OADG109A)+us:2+inet(evdev)+terminate(ctrl_alt_bksp)" };
xkb_geometry { include "pc(pc105)" };
};
確認した内容を基に設定ファイルを作成します。
~/.xkb/mykbd.xkb
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+jp(OADG109A)+us:2+inet(evdev)+terminate(ctrl_alt_bksp)+myswap(swapkeys)" };
xkb_geometry { include "pc(pc105)" };
};
変更点はmyswap(swapkeys)
の追加です。
設定反映
以下で反映されます。
$ xkbcomp -I$HOME/.xkb ~/.xkb/mykbd.xkb $DISPLAY 2> /dev/null
まとめ
キーバインドを変更して円記号のキーでバックスラッシュを入力するようにしました。個人的にはとても楽になりました。