トップ «前の日記(08/31/2023) 最新 編集

本 日 の h o g e

hogeとはワイルドカードのようなものです。日々起こった、さまざまなこと −すなわちワイルドカード− を取り上げて日記を書く、という意味で名付けたのかというとそうでもありません。適当に決めたらこんな理由が浮かんできました。

更新情報の取得には rdflirs を使ってもらえると嬉しいです.


02/09/2025 むう [長年日記]

tDiary 8144日目

[日記] HHKB Pro (us) の右メタ (変換) キーを「全角/半角」キーにする

Xorg 上でだけではなく,もっと下の方から.

udev で scancode 7008a を zenkakuhankaku に割り当てる.scancode は evtest で調べる.

/etc/udev/hwdb.d/10-zenkakuhankaku.hwdb:
# name:
#   $ cat /sys/class/input/$(basename $(readlink /dev/input/by-path/*usb-*kbd))/device/name
# scancode, keycode:
#   $ sudo evtest $(readlink -f /dev/input/by-path/*usb-*kbd)
# key name:
#   $ less /usr/include/linux/input-event-codes.h

evdev:name:Topre Corporation HHKB Professional:dmi:bvn*:bvr*:bd*:svn*:pn*
 KEYBOARD_KEY_7008a=zenkakuhankaku

反映.

# systemd-hwdb update
# udevadm trigger

しかしキーの解釈はキーボードレイアウトによって変化するため,これだけだとレイアウトが us の場合は Xorg 上で右メタを押下しても「全角/半角」キーだとは認識されない.レイアウトを jp に変えれば認識されるが,それでは何も嬉しくないので us のまま割り当てを行う.keycode は xev で調べる.

${HOME}/.xkb/keycodes/local:
xkb_keycodes {
  <HZTG> = 93;
};

${HOME}/.xkb/symbols/local:
xkb_symbols "kanji" {
  replace key <HZTG> { [ Zenkaku_Hankaku ] };
};

${HOME}/.xkb/keymap/local:
xkb_keymap {
  xkb_keycodes { include "evdev+aliases(qwerty)+local" };
  xkb_types { include "complete" };
  xkb_compat { include "complete" };
  xkb_symbols { include "pc+us+inet(evdev)+local(kanji)" };
  xkb_geometry { include "pc(pc101)" };
};

反映.

$ xkbcomp -w0 "-I${HOME}/.xkb" "${HOME}/.xkb/keymap/local" "${DISPLAY}"