XKB:アクションに複数のキーコードを割り当てる()

XKB:アクションに複数のキーコードを割り当てる()

新しいBluetoothキーボードがあり、何らかの理由でエスケープキーが1ではなく172のキーコードを返します(「showkey」によると、同じコードがxkbに8を追加するため、9ではなく180になります)。説明に従ってくださいこの回答キーコード9の代わりに180を使用するようにESCを再マップすることができたので、大丈夫です。しかし、二度はできないようです。

    <ESC> = 9;
    <ESC> = 180;

この場合、後者の設定のみ有効です。これは内蔵キーボードのキーを損傷するので、次善策です。したがって、どちらか一方のみを動作させることはできますが、両方を動作させることはできません。

これに対する正しいアプローチは何ですか?

答え1

私が理解したのは2つのレベルのマッピングを経なければなりません。内部にキーコードマッピング<>キーボードで生成された数値スキャンコードには、「任意」の名前(内部で最大4文字)を指定できます。シンボルマッピングこのキー名はどのように機能すると言いますか?だからあなたは持っている必要があります

<ESC> = 9;
<ESC2> = 180;

それからxkb_symbols項目

 key <ESC2>  {  [ Escape        ]   };

しかし、キーボードが2つの場合、実際には互換性のあるキーボードを作成するのではなく、単にキーボードごとに異なるレイアウトを設定する必要があります。xinput -list各実行のID、および特定のsetxkbmap -device id ...キーボードのモデル、レイアウト、バリアント、およびオプションを指定するその他のパラメータとともに、キーボードのIDを取得するために使用されます。

答え2

~によると信頼できないXKB構成ガイド、あなたはそれを使用することができますニックネーム。この機能は次の目的で使用されます。xkb/aliasesだから、あなたは次のことができるはずです

alias <ESC> = 9;
alias <ESC> = 180;

関連情報