Wenn ich einen Barcode in einer Textkonsole scanne (STRG + ALT + F1 oder nicht X), erhalte ich die richtige Eingabe, aber wenn ich es mit einer Anwendung versuche, die auf X läuft, erhalte ich nicht den richtigen Barcode.
Der Scanner ist so konfiguriert, dass er den Barcode gefolgt von einem 'n' zurückgibt. Unter XI erhalten Sie nur das 'n', nicht den vorhergehenden Barcode.
Ich lief xev, um zu sehen, was los ist. Hier ist ein Auszug der Ausgabe:
> 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,
Es gibt ein KeyPress / KeyRelease-Ereignispaar für jede Ziffer im Barcode, aber keine Ereignisse zwischen dem KeyPress- und dem KeyRelease-Ereignis für Alt_L?
Sollte ich mir Compose Keys für eine Lösung ansehen oder wie kann ich das Verhalten einer normalen Konsole anpassen?
ps. Ich verwende einen Welch Allyn ST3400 Barcode-Scanner.
BEARBEITEN:
Ich habe showkey in der Befehlszeile ausgeführt und einen Barcode eingescannt. Dies ist die Ausgabe, die ich erhalten habe:
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
Es scheint, dass der Barcode-Scanner Links-Alt + # + # + # verwendet, um die richtigen Zeichen zu erhalten. Es scheint auch, dass der Barcode-Scanner niemals ein Freigabeereignis für die Numpad-Tasten sendet, die er zusammen mit Links-Alt verwendet hat. Ich habe etwas Ähnliches in einem anderen Forum gelesen - allerdings ohne Lösung. Wenn ich Links-Alt + # + # + # manuell mit showkey verwende, wird für jede Taste gedrückt und losgelassen.
Es stellt sich nun die Frage, warum es kein KeyPress-Ereignis gibt, wenn ich Xorg ausführe.
Antworten:
Oft können Sie Ihren Barcodeleser neu konfigurieren, um eine besser nutzbare Ausgabe auszugeben. Die Konfiguration erfolgt häufig durch Scannen spezieller Barcodes - siehe Dokumentation.
quelle