menu-icon

Ubuntuで円記号のキーでバックスラッシュを入力するようにする

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/の下のevdevaliasesを確認します。

$ 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

まとめ

キーバインドを変更して円記号のキーでバックスラッシュを入力するようにしました。個人的にはとても楽になりました。

参考

xkbでキーバインドを変更する(Ubuntu)