キーボードモードが変更されると、xmodmapがリセットされます。

キーボードモードが変更されると、xmodmapがリセットされます。

私はKeychron K2メカニカルキーボードを持っていますが、キーボードの右側にあるキーは次のとおりです。

ここに画像の説明を入力してください。

もっと標準的なレイアウトに変えたいです。上から下へ、、、、およびLight Toggleがあります。HomePage UpPage DownEnd

一度はxev、キーコードを検索してxmodmap必要に応じて置き換えるための小さなスクリプトを書いたことがあります。

#!/bin/bash

xmodmap -e "keycode 110 = Next" && xmodmap -e "keycode 112 = Home" && xmodmap -e "keycode 117 = Prior"

スクリプトは起動時に実行され、期待どおりに正しく動作します。

問題は、このキーボードが有線とBluetoothの両方が可能だという点だ。有線モードとBluetoothモードを切り替えるか、逆に切り替えるとキーがデフォルトの位置に戻りますので、上記のスクリプトを手動で再実行する必要があります。xevどちらの場合も、キーコードが同じであることを示しています。使用しているキーボードモードに関係なく、これらのキーを変更できるように、この問題を解決するより良い方法はありますか?

答え1

残念ながら、Linux Mint(およびUbuntu派生製品)では、xmodmapキーボードを接続または切断するか、新しいキーボードが検出されるたびにリセットが発生します。私のようなデュアルモードキーボードを使用すると、システムはこのキーボードが2つの別々のキーボードであることを認識し、xmodmapこの時点でリセットされます。

解決策は、次のようにpcファイルを編集することです/usr/share/X11/xkb/symbols/

$ sudo nano /usr/share/X11/xkb/symbols/pc

次に、77、78、81行を...から次に変更します。

    key <HOME> {    [  Home         ]   };
    key <PGUP> {    [  Prior        ]   };
    key <PGDN> {    [  Next         ]   };

...到着する:

    key <HOME> {    [  Next         ]   };
    key <PGUP> {    [  Home         ]   };
    key <PGDN> {    [  Prior        ]   };

これにより、そのキーに対する変更がハードコードされます。みんな鍵盤。

関連情報