
多くのコンピュータとゲーム愛好家は特別なキーボードを使用しています。これらのキーボードの一般的な特徴は、ゲームやソフトウェアに関連する特別なコマンドにバインドするように設計された多くのカスタムキーです。
これらのカスタムキートリガコマンドを編集および生成するために使用されるソフトウェアは、ほぼ常にWindowsにあります。
例: Tt Esports Challenger ソフトウェアチャレンジャープロゲーム
Wineを使用してソフトウェアを実行すると、キーボードや他のデバイスが見つからないため、キーバインディングをプログラムできません。
ほとんどのキーボードでは、カスタムキーのデフォルトのバインディングはとctrl+c
ですctrl+v
。したがって、System Settings
ユーザーがこれらのコマンドを使用しようとするたびに、設定を使用してそのキーを上書きします。
この問題に対する考えられる解決策は何ですか? Wineにハードウェアを検出させる方法はありますか、それともカスタムキーを設定する他の方法はありますか?
特別なソフトウェアを開発または使用するときにカスタムキーを使用できるため、ソリューションを見つけることはLinuxコミュニティに非常に役立ちます。
私のキーボードはhid-generic
。
デフォルトでは設定されていないキーの場合、evtest
返される3つのプリセット値以外には何も登録されません。
Event: time 1488397338.016750, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e0
Event: time 1488397338.016750, type 1 (EV_KEY), code 29 (KEY_LEFTCTRL), value 0
xev
デフォルトでは、設定されていないキーは2回押すなど、Ctrl+Cであらかじめ設定されたキーのみ登録されます。
USBプロトコルをスニッフィングできるWindowsシステムがあります。しかし、どうすればいいですか?
答え1
これには複数のステップ/繰り返しが必要になる可能性があり、Q&A形式は適切ではありません。問題が発生した場合は、より多くの情報で質問を更新し、この回答に関するコメントにコメントを残してください。その後、回答を編集します。
説明によると、特殊キーとキーイベントのマッピングはキーボードで行われているように見えるため、プログラミングはドライバではなくキーボードで行う必要があります。
次のようなさまざまなWindows用のオープンソースUSBスニファーがあります。usbpcapまたはそれ以上USBモニタリング、Google で詳細と使用方法に関するチュートリアルをご覧ください。
原則として、プログラミングソフトウェアを使用してさまざまなキーシーケンスでさまざまな特殊キーをプログラミングするときに通信を記録する必要があります。その後、パケットを表示して比較し、他の特殊キーまたはプログラミング順序によってどのバイトが変更されたかを確認します。プロトコルを推測し、libusb
作成したプログラムを使用してLinuxで再生してみてください。
あなたのキーボードはHIDであり、HIDは高度に標準化されているので、助けることができます。慣れてくださいHID文書(または少なくとも必要な部品を探してください)。各HID装置は、HID標準に従って装置との全ての可能な相互作用を記述する記述子を備えている。これがキーボードがプログラムされた方法で、「ベンダー固有」フィールドがあまりにも多くない場合は、プロトコルを推測できます。
2つの方法で記述子を読むことができます。
(1) カーネルがdebugfs
有効な場合は root として実行します。
mount -t debugfs none /sys/kernel/debug
cat /sys/kernel/debug/hid/device_id/rdesc
device_id
キーボードのIDはどこにありますか?これにより、生の記述子が16進バイトで表示され、カーネルがそれを解析する方法が表示されます。カーネルの解析が不十分な場合は、以下を試してください。ハードraw 記述子を変換します。
(2)デバイス内の問題HIDIOCGRDESCSIZE
とHIDIOCGRDESC
ioctl hidraw
(dmesg
キーボードに適したものを見つける)samples/hidraw/hid-example.c
これを行う方法は、Linuxカーネルのソースコードに記載されているか、既製のツール(例:usbhid ダンプ。
理想的には一部を見ることができます。特徴または出力プログラミングに関する説明です。説明フィールドのあまりにも多くの部分が明確ではない場合、または「ベンダー固有」とマークされている場合でも、スヌーピングソフトウェアツールが必要になる場合があります。