キーボードのキーを交換する

キーボードのキーを交換する

キーボードの Home や End などのキーを入れ替えたいのですが、xmodmap を使用して入れ替えましたが、コンピューターがスリープ状態になるたびに元に戻ってしまい、VSCode などの一部のアプリケーションではそれが反映されません。

キーを永続的に交換し、各アプリが正しく検出できるようにする方法はありますか?

Ubuntu 20.04を使用しています。

答え1

結局のところ、Linux カーネルでキーを再マップできることがわかりました。

  1. 決定するスキャンコード別のキーに再マップしたいキーの です。これは 16 進数で、 で確認できますsudo showkey -s。プログラムはキー押下イベントとリリース イベントの両方のコードを発行するので注意してください。たとえば、0xe021 キー (キーボードの電卓) の動作を変更したいとします。
  2. 決定するキーコードキーの動作をさせたいキーの番号です。これは 10 進数で、 で取得できますsudo showkey -k。プログラムはキー押下イベントとキーリリースの両方のコードを発行するので注意してください。たとえば、別の「107」キー (キーボードの End) を用意するとします。
  3. sudo setkeycodes e021 107コードを使用してを発行します。
  4. これを永続的にするには、起動するたびに root として実行する必要があります。crontab で解決できます。実行してsudo crontab -e、上記のコマンドをファイルの末尾に追加します (sudo は使用せず、絶対パスを使用します)。/usr/bin/setkeycodes e021 107

関連情報