텍스트 콘솔에서 바코드를 스캔하면(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
더 나은 사용 가능한 출력을 생성하기 위해 바코드 판독기를 재구성할 수 있는 경우가 많습니다. 구성은 일반적으로 특수 바코드를 스캔하여 수행됩니다. 설명서를 참조하십시오.