テキストコンソールでバーコードをスキャンすると(CTRL + ALT + F1またはXを実行しない)、正しい入力が得られますが、Xで実行されているアプリケーションを試しても正しいバーコードを取得できません。
スキャナは、「n」が続くバーコードを返すように構成されています。 XIでは、以前のバーコードではなく「n」のみが取得されます。
何が起こったのかを見るためにxevを実行しました。以下は出力から抜粋したものです。
> KeyPress event, serial 35, synthetic NO, window 0x6800001,
> state 0x10, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
> KeyRelease event, serial 35, synthetic NO, window 0x6800001,
> state 0x18, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
> KeyPress event, serial 35, synthetic NO, window 0x6800001,
> state 0x10, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
> KeyRelease event, serial 35, synthetic NO, window 0x6800001,
> state 0x18, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
バーコード内の各数値に対してKeyPress / KeyReleaseイベントペアがありますが、Alt_LのKeyPressとKeyReleaseイベントの間に何も起こりませんか?
解決策を見つけるには、どのキーの組み合わせを探す必要があります。通常のコンソールの動作と一致させるには?
PS私はWelch Allyn ST3400バーコードスキャナーを使用しています。
編集する:
コマンドラインでshowkeyを実行してバーコードをスキャンします。これは私が得た結果です。
keycode 28 release
keycode 56 press
keycode 82 press
keycode 76 press
keycode 80 press
keycode 56 release
keycode 56 press
keycode 82 press
keycode 75 press
keycode 73 press
keycode 56 release
バーコードスキャナは、正しい文字を得るためにLeft-Alt +#+#+#を使用しているようです。バーコードスキャナがLeft-Alt?で使用されている数字キーパッドキーのリリースイベントを送信していないようです。他のフォーラムで同様の内容を読みましたが、解決策はありません。手動でLeft-Alt +#+#+#と表示キーを使用している場合は、各キーを押して放します。
さて、問題はXorgを実行するときにKeyPressイベントがないのですか?
答え1
より良い使用可能な出力を生成するためにバーコードリーダーを再構成することがよくあります。構成は通常、特別なバーコードをスキャンすることによって行われます。マニュアルを参照してください。