0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Ubuntu22.04でUdevを用いたキーボードのリマップ

Last updated at Posted at 2024-07-17

概要

Udevを使ってキーボードのリマップをする。やりたかったことは

  • CapsLockを全角半角に変更

だった。これには失敗した。変わりに、

  • CapsLockをBackSpaceに変更

をした。

手順

  • キーボードのパラメタを特定
  • キーのパラメタを特定
  • リマップのためのファイルを書き、反映させる

キーボードのパラメタを特定

キーマップを変更したいキーボードの諸々を特定する。

cat /proc/bus/input/devices

を実行する。たくさんのデバイスが表示される。その中から、探してるキーボードを見つけ(気合)、Bus,Vendor,Productの値をメモする。
e.g.

I: Bus=0011 Vendor=0001 Product=0001 Version=ab83

キーのパラメタを特定

変更したいキーの諸々を特定する

sudo evtest

を実行する。インストールされてなければ、aptで落とせる。
出力された内容のうち、valueを見つけて記録する。

Event: time ... ,------SYN_REPORT---------
Event: time ... , type ... , code ... , value 3a
Event: time ... , type ... , code ... , value 1
Event: time ... ,------SYN_REPORT---------

とか出ると思う。上の、3aを使う。

変更後のキーの値を特定する

これに関しては、私はよくわかりませんでした。以下のリンクから探すと見つかるかも。
https://hal.freedesktop.org/quirk/quirk-keymap-list.txt
エンターに変えたかったらenterとか、backspaceに変えたかったらbackspaceとかかも。

ファイルを書いて反映させる

/etc/udev/hwdb.d/hoge.hwdbを作成し、書き込む。root権限が無いと編集できないので注意。ファイル名は任意。
ここに、今までで特定した値を使うよ。

hoge.hwdb
evdev:input:b[Bus]v[Vendor]p[Product]*
    KEYBORD_KEY_[valueの値]=[変更後のキー]

のように書く。コメントアウトは//で書く。
e.g.
Bus=0011 Vendor=0001 Product=0001,value 3aのキーをbackspaceに変更したいとき

myremap.hwdb
evdev:input:b0011v0001p0001*
  KEYBOARD_KEY_3a=backspace

書き終えたら、設定を反映させる。

sudo system-hwdb update
sudo udevadm trigger

これでできるはず。xbindkeysとか使えば、変更したキーがどう認識されてるかわかる。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?