現在の設定があります。
- PS2キーボード1個
- USBキーボード1個
それからこれを使います。
xinput --create-master SecondKeyboard
xinput --reattach "Keyboard Id" "Master Id"
それらを分けなさい。
私はカスタムレイアウトを作成できると思いました、1つは書き込み用のキーボード、もう1つはショートカット用のキーボードでした。その後、xkbが複数のキーをクリックするレイアウトを作成できないことがわかりました(例:++を押してcapslock実行するなど)。ctrlaltf4
だから私の考えは、xbindkeysが異なるIDを持っているので、キーボードの1つでのみ実行されるようにすることです。私はこのようなことができますか?
答え1
関連するさまざまなレベルの簡単な要約:
キーボードがスキャンコードを生成します。これはカーネル入力層によってキーコードイベントにマッピングされます/dev/input/eventX
。 Xevdev
ドライバーはこれらのイベントを取得し、キー記号に変換します。その後、XInput拡張は仮想コアキーボードスレーブ内のすべてのイベントを通常のXイベントとして使用できるようにし、他のイベントはXInputイベントとしてのみ使用できるようにします。
したがって、次のオプションがあります。
1)キーコードマッピングのカスタムスキャンコードを設定します。これらのマッピングはデバイスごとに行われ、実際には可能ですが、IOCTLを介して行われます。ハワードデータベース存在するudev
。その後、新しいキーサイドを使用できますxkb
。どちらのキーボードもコアキーボードのままです。
2) xbindkeys
XInput イベントを理解するために拡張され、コアキーボードではなくキーボードのイベントをバインドするために使用できます。これにはプログラミングが必要ですが、比較的簡単でなければなりません。この場合は、すでに行ったように、コアキーボードから1つのキーボードを取り外します。