キーボードのキー割り当て変更を別の手段で

 これをやっている時に、キーボードのキー割り当てを変更するにはいろんな方法があると知った。
doroyamada.hatenablog.jp

 その中には、USBキーボードを抜き差ししてもリセットされてない方法があるんじゃないかと思って、まずこちらを試してみた。
mamm232c.exblog.jp

 USBキーボードを差し込んだ時のコマンドを止めてから抜き差し実行してみたが、割り当てが戻ってない。成功。

 と思ったが、半角/全角キーがescになっていない。設定を再度確認して、間違いを発見して修正してみたが、同様。
 対策が見つからず、とりあえず /usr/share/X11/xkb/rules/base をhztgでgrepしてみた。

kazz@oscar ~# cat /usr/share/X11/xkb/rules/base|grep hztg
  japan:hztg_escape     =	+jp(hztg_escape)
kazz@oscar ~# 

 なんかそれっぽいのがディフォルトであるやん。これを元に /etc/default/keyboard を変更。

kazz@oscar ~# cat /etc/default/keyboard                  
# Check /usr/share/doc/keyboard-configuration/README.Debian for
# documentation on what to do after having modified this file.

# The following variables describe your keyboard and can have the same
# values as the XkbModel, XkbLayout, XkbVariant and XkbOptions options
# in /etc/X11/xorg.conf.

XKBMODEL="pc105"
XKBLAYOUT="jp"
XKBVARIANT=""
XKBOPTIONS="ctrl:swapcaps,japan:hztg_escape"

# If you don't want to use the XKB layout on the console, you can
# specify an alternative keymap.  Make sure it will be accessible
# before /usr is mounted.
# KMAP=/etc/console-setup/defkeymap.kmap.gz
BACKSPACE="guess"
kazz@oscar ~# 

 これでリブートしてみたら半角/全角キーがescとして動作した。
 /usr/share/X11/xkb/symbols/jp 内の定義はこのようになっていた。

partial alphanumeric_keys
xkb_symbols "hztg_escape" {
    replace key <HZTG> { [ Escape ] };
};

 あとubuntu20.04でのリロードコマンドは sudo service console-setup.sh reload のもよう。でもrestartの方が確実かも知れない。