キーボードのxbindkeys?

キーボードのxbindkeys?

現在の設定があります。

  • 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) xbindkeysXInput イベントを理解するために拡張され、コアキーボードではなくキーボードのイベントをバインドするために使用できます。これにはプログラミングが必要ですが、比較的簡単でなければなりません。この場合は、すでに行ったように、コアキーボードから1つのキーボードを取り外します。

関連情報