탈출이 작동하지 않습니다. xev가 이상한 이벤트를 감지합니다.

탈출이 작동하지 않습니다. xev가 이상한 이벤트를 감지합니다.

EndeavourOS-i3wm 시스템에서 이상한 문제가 발생했습니다. Esc 키가 전혀 작동하지 않습니다. 나는 키보드 설정을 재구성하지 않았거나 xkbmap을 엉망으로 만들지 않았습니다. 이 문제는 Doom Emacs에서 파일을 열려고 할 때 발생합니다. 동시에 여러 개의 키를 눌렀을 수도 있지만 확실하지는 않습니다.

Super+ESC는 해당 작업을 수행하지만 대부분의 소프트웨어에서는 ESC를 누른 후에는 아무 일도 일어나지 않습니다. 이상하게도 이는 특정 응용 프로그램인 것 같습니다. ESC는 rofi 메뉴를 닫지만 Rstudio, VIM, EMACS, firefox에서는 여전히 아무 작업도 수행하지 않습니다.

xev를 실행한 다음 종료 키를 누르면 다음과 같은 메시지가 나타납니다.

FocusOut event, serial 34, synthetic NO, window 0x3000001,
    mode NotifyGrab, detail NotifyAncestor

FocusIn event, serial 34, synthetic NO, window 0x3000001,
    mode NotifyUngrab, detail NotifyAncestor

KeymapNotify event, serial 34, synthetic NO, window 0x0,
    keys:  111 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   

이것을 얻으면 무작위로 자발적으로 작동하기 시작합니다.

KeyPress event, serial 34, synthetic NO, window 0x3400001,
    root 0x798, subw 0x0, time 983421, (-228,520), root:(1057,532),
    state 0x0, keycode 9 (keysym 0xff1b, Escape), same_screen YES,
    XLookupString gives 1 bytes: (1b) "
mbLookupString gives 1 bytes: (1b) "
FilterEvent returns: False

KeyRelease event, serial 34, synthetic NO, window 0x3400001,
    root 0x798, subw 0x0, time 983529, (-228,520), root:(1057,532),
    state 0x0, keycode 9 (keysym 0xff1b, Escape), same_screen YES,
    XLookupString gives 1 bytes: (1b) "
FilterEvent returns: False

그 후에 sudo showkey -> ESC나는 얻는다.

keycode   1 press
keycode   1 release

달리기는 setxkbmap아무것도 하지 않습니다. etc/X11/xorg.conf.d/00-keyboard.conf:

# Read and parsed by systemd-localed. It's probably wise not to edit this file
# manually too freely.
Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "br"
EndSection

달리기를 하면 setxkbmap -print -verbose 10다음과 같은 결과를 얻을 수 있습니다.

Setting verbose level to 10
locale is C
Trying to load rules file ./rules/evdev...
Trying to load rules file /usr/share/X11/xkb/rules/evdev...
Success.
Applied rules from evdev:
rules:      evdev
model:      pc105
layout:     br
Trying to build keymap using the following components:
keycodes:   evdev+aliases(qwerty)
types:      complete
compat:     complete
symbols:    pc+br+inet(evdev)
geometry:   pc(pc105)
xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)" };
    xkb_types     { include "complete"  };
    xkb_compat    { include "complete"  };
    xkb_symbols   { include "pc+br+inet(evdev)" };
    xkb_geometry  { include "pc(pc105)" };
};

이전 타임시프트 스냅샷으로 되돌리면 모든 것이 괜찮지만 다른 키보드에서 이런 일이 발생한다는 사실이 나를 미치게 만듭니다.

ESC 키만 작동하도록 키맵이 특정 방식으로 엉망이 될 가능성이 있습니까?

** 갱신**

@dirkt의 답변을 읽은 후 어떤 소프트웨어가 ESC 키를 훔치고 있는지 알아냈습니다. 숨겨진 스크래치패드 i3wm 버퍼에 있는 fromScratch 소프트웨어를 열었습니다. 그것은 훌륭하고 스크래치 앱에서 팝업이 떠다니는 해키 솔루션으로 작동합니다. 이것은 탈출이다. 죽이면 문제가 해결됩니다.

답변1

부분 답변(여기 또는 슈퍼유저에서 이전에 한 번 이상 요청):

FocusOut이벤트는 FocusIn키 입력을 훔치는 다른 응용 프로그램이 실행 중임을 의미합니다 ESC.

키보드 레이아웃을 변경해도 전혀 영향을 미치지 않습니다.

일반적으로 이는 "언어" 확장에 의해 사용되며, 기존 키보드 레이아웃의 키 조합을 사용하여 외국어 문자를 입력할 수 있도록 합니다. 그러나 원칙적으로 그것은 무엇이든 될 수 있습니다. 창 관리자(저는 익숙하지 않습니다)도 마찬가지입니다.

따라서 이벤트를 훔치는 애플리케이션이 실행 중인지 찾아야 합니다. xlsclients아니면 ps도움이 될 수도 있습니다. 애플리케이션을 종료하거나 제거하여 시스템 디버깅. 오직 당신만이 이것을 할 수 있습니다. 질문에는 이것을 알아내기 위한 정보가 충분하지 않습니다.

관련 정보