XKBを使用して一部のキーコードを上書きする

XKBを使用して一部のキーコードを上書きする

XKBを使っていくつかのキーをスクランブルしたいです。 (なぜ?ノートブックでは、いくつかのキーの位置が不便です。)現在、xmodmapを使用しています。

keycode 110 = Prior
keycode 115 = Delete
keycode 112 = Next
keycode 117 = Insert
keycode 119 = End
keycode 118 = Home

代わりに、XKBを使用して特定のキーコードに異なるキーシンボルを割り当てるのではなく、特定の物理キーに異なるシンボル名を割り当てたいと思います。 (これだから。 )キーコード110をPGUP代わりに転送したい、キーコード115を代わりにHOME送信したいと思います。残りの設定は影響を受けてはいけません(したがってkeyymなどは送信され続け、他のすべてのキーはそのまま残ります)。DELEENDPGUPPrior

これらの特定のキーコードの割り当てをどのように変更できますか?ファイルをロードしようとしていますxkbcomp somefile.xkb $DISPLAY。ファイルに何を入れるべきですかsomefile.xkb

ベストアンサー1

キーコードの変更を含むファイルを作成し(たとえば)保存します~/.xkb/keycodes/local。 (keycodesディレクトリはハードコーディングされています。デフォルトディレクトリは別のディレクトリにすることができ、ファイル名は別のディレクトリにすることができます。)これはあなたの状況に含まれます。

xkb_keycodes {
  <PGUP> = 110;
  <PGDN> = 112;
  <DELE> = 115;
  <INS> = 117;
  <HOME> = 118;
  <END> = 119;
};

ロードするには:

setxkbmap -print | sed -e '/xkb_keycodes/s/"[[:space:]]/+local&/' | xkbcomp -I${HOME}/.xkb - $DISPLAY

+localこれにより、現在の設定が出力されステートメントに追加され、xkb_keycodes includeXKBコンパイラにロードされ、インクルード~/.xkbパスに追加されます。 (ファイル名を以外の名前で指定した場合と~/.xkb/keycodes/local変更する必要があります。)これにより、他のすべての設定が維持されます。+local-I${HOME}/.xkb}

おすすめ記事