Linux で X11/Xorg を使用している場合xinput
、キーボードを無効にするために使用すると (たとえばxinput set-prop $ID "Device Enabled" 0
)、「キーアップ」イベントは送信されません (キーボードを無効にしたため)。これは、コマンド ラインでそのコマンドを入力する場合に顕著です。「Enter」を押しているように動作します。これは、Enter キーから指を離す前にコマンド (キーボードを無効にする) が実行されるためです。
これについては、このバグ ( https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-input-evdev/+bug/724280 ) とこのブログ投稿 ( http://blog.yjl.im/ ) で説明されています。 2010/12/using-xinput-to-disable-keyboard-mouse.html )。
キーボードを無効にする必要があるプログラムを作成しており、この問題を回避したいと考えています。「現在押されているすべてのキーを解放する」方法/コマンドはありますか (「キーボードを無効にする」コマンドの直後に実行できます)? または、「現在押されているすべてのキーのリストを取得する」コマンド/方法と、「キーリリース」イベントを手動/プログラムで送信する方法はありますか? (この方法で、キーボードを無効にし、押されているキーを確認してから、それらのキーを「離す」ことができます)。
これは可能ですか?