要点
keychron B1 Pro (JIS版) とか ARCHISSのINTROとかのJIS配列(コンパクト)キーボードをUS配列として使用すると「ろ」とか「¥」とかのキーが割当無しになる。もったいない。
そのようなコンパクトキーボードの場合、配置的に
- ¥→Backspace (バックスペースキー領域を大きく)
- ろ→↑ (矢印キーの近くなので、次の↓変更と組み合わせて上下キーを大きくする)
- ↑→↓(元の矢印キーが小さいので↓動作のキー領域を拡大)
にすると使いやすそう。
keychronはlauncherにて割当を修正した。
Ubuntu 24.04で使っているコンパクトキーボードは、norman配列(ベースはUS配列)を割り当てた後にudevでキーマップを変更した。
動機
- 日本語併用においては、変換・無変換キーがついているキーボードの方がローマ字入力と英字直接入力を切り替えやすいのでJIS配列が良い。
- Normanキーボードレイアウトを愛用している。それは基本的にUS配列。Normanじゃなくてもプログラム書くとかならUS配列が良いのはよく指摘されている。
- WindowsとかでもNormanを使うにはkeychron B1 ProでUS配列ベースに一部キーの割当を修正するのが楽。すると¥やロが割当無しになって余り、もったいない。
- Ubuntuはkeychron B1 Proでないキーボードでも簡単な設定でnormanレイアウトを使えるが、割当のなくなったキーの割当方法はkeychronと違ってすぐにはわからない。
keychron B1 Proの場合
- キーボードを有線 or 2.4GHz でつないだ状態でlaucherを起動。
- 基本レイアウトをUS配列にする。
- 変換・無変換キーが機能しなくなるので、こちらの記事を参考にKC_HANJとKC_HAENをそれぞれ割り当てる。
- (normanな人は、d,e,...を入れ替える)
- さらに次の割当をする。
- ¥→Backspace
- ろ→↑
- ↑→↓
WEBインターフェースなので操作は難しくない。
Ubuntu 24.04での他キーボードの場合
設定→キーボードでnormanを選択
した後、
/etc/udev/hwdb.d/10-mykeyboard.hwdbを以下の内容で作成、
evdev:input:b0005v0A5Cp8503e*
KEYBOARD_KEY_70089=backspace
KEYBOARD_KEY_70087=up
KEYBOARD_KEY_70052=down
ここでb0005v0A5Cp8503の部分はevtestで調べたら、
Input device ID: bus 0x5 vendor 0xa5c product 0x8503
だったので、そのように入力した。使っているキーボード機種によって値は違うはず。
ベンダーコードとかの16進数は大文字で指定し、2行目以降は半角スペース1文字で字下げして、スキャンコードの割当先は小文字で指定、するのがミソのよう。
その後、
sudo systemd-hwdb update
sudo udevadm trigger
したら希望の割当で働くようになった。
参考
Ubuntuでudevを使って割当変更する方法については、
- https://bearmini.hatenablog.com/entry/2023/12/03/134330
- https://askubuntu.com/questions/627789/custom-keymapping-via-udev-hwdb-d-is-not-working
を参考にしました。

