Linuxで一般キーを修飾キー(Shift ...)に再マップする方法

Linuxで一般キーを修飾キー(Shift ...)に再マップする方法

新しいノートブックキーボードには、Shiftキーの横に奇妙なキーがあります。正直なところ、それは私には役に立たず、より短いShiftキーのために私が慣れているいくつかの組み合わせを達成することはできません。そのキーも左Shiftに変えたいです。その後、もう一度長い左シフトキーを使用できます。

奇妙なレイアウト

まずxmodmapを試しました。この回答、そのように私も成功しませんでした。

次に、左Shiftキーエントリを奇数キー行にコピーして新しいxmodmap設定を作成しました。ただし、設定を適用するのに時間がかかるため(> 10秒)、私のbashrcでそれを使用することは新しいターミナルタブを開くのに時間がかかりすぎるため、オプションではありません。また、Xでは動作せず、端末でのみ動作します。私はxmodmapがほとんど役に立たないと見なされることを読んだ。

最後にxkbを試してみましたが、正直なところ、Arch wikiとここのトピックに基づいてどのように使用するのかわかりませんでした。

ベストアンサー1

udevを使用してスキャンコードをキーコードに再マップできます。これは、xorg、wayland、または仮想コンソールを使用するかどうかにかかわらず機能します。

スキャンコードはコマンドで取得できますevtest。デバイスを検索するように求められたら、キーボードを選択してevtest再マップするキーを押します。以下は、altキーを押したときの出力例です。

Event: time 1688218985.587133, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e2
Event: time 1688218985.587133, type 1 (EV_KEY), code 29 (KEY_LEFTALT), value 1

次に、hwdbファイルを作成してスキャンコードを/etc/udev/hwdb.d

たとえば、このファイルはCapsLockShift

# generic keyword
evdev:input:b0003v*p*
  KEYBOARD_KEY_70039=shift

最後に、次のコマンドを実行して変更を適用します。

systemd-hwdb update
udevadm trigger

バラよりスキャンコードをキーコードにマッピング詳細な手順と詳細な例をご覧ください。

メモ:

  • ATキーボードがある場合は、対応するevdev:atkbd:dmi:bvn*:bvr*:bd*:svn*:pn*:pvr*キーボードと一致するキーボードを使用してください。
  • 入力イベントコードのリストはヘッダーで確認できます。Linux/include/uapi/linux/input-event-codes.h

おすすめ記事