新しい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;