Shift 키를 사용하여 대문자를 입력할 수 없습니다

Shift 키를 사용하여 대문자를 입력할 수 없습니다

일부 응용 프로그램에서는 대문자를 입력하는 것이 ESC 키를 누르는 것과 같습니다.

재현:

  • LibreOffice 문서 열기
  • 다른 이름으로 저장 선택(Unity 대화 상자)
  • "폴더 만들기"를 클릭하세요
  • 대문자를 입력하려면 Shift 키를 사용하세요(예: Shift+A).

이 시점에서 새 폴더 생성이 취소됩니다. (ESC 키를 누르는 것과 같습니다)

이 동작은 다양한 프로그램과 게임에도 존재합니다.

xev(Shift+d 누르기)를 사용하여 상황을 분석합니다.

# xev
KeyPress event, serial 37, synthetic NO, window 0x4c00001,
    root 0x259, subw 0x0, time 994702, (15,-13), root:(987,197),
    state 0x10, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

FocusOut event, serial 37, synthetic NO, window 0x4c00001,
    mode NotifyGrab, detail NotifyAncestor

FocusIn event, serial 37, synthetic NO, window 0x4c00001,
    mode NotifyUngrab, detail NotifyAncestor

KeymapNotify event, serial 37, synthetic NO, window 0x0,
    keys:  89  0   0   0   0   1   4   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 37, synthetic NO, window 0x4c00001,
    root 0x259, subw 0x0, time 994927, (15,-13), root:(987,197),
    state 0x11, keycode 40 (keysym 0x44, D), same_screen YES,
    XLookupString gives 1 bytes: (44) "D"
    XmbLookupString gives 1 bytes: (44) "D"
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x4c00001,
    root 0x259, subw 0x0, time 995062, (15,-13), root:(987,197),
    state 0x11, keycode 40 (keysym 0x44, D), same_screen YES,
    XLookupString gives 1 bytes: (44) "D"
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x4c00001,
    root 0x259, subw 0x0, time 995395, (15,-13), root:(987,197),
    state 0x11, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

제 생각에는 이러한 FocusOut사건들이 FocusIn의심스러워 보입니다.

리눅스: 우분투 14.04 LTS 32비트, 유니티

시스템을 어떻게 수정하나요? 어떤 아이디어나 추가 테스트도 환영합니다!

편집 : 솔루션

저는 언어 전환을 LeftShift+RightShift로 구성한 적이 있습니다. 이 접근 방식은 수년 동안 효과가 있었지만 어느 시점에서 문제가 되었습니다. 어쨌든 구성을 다른 키 조합으로 전환하면 문제가 해결되었습니다.

답변1

FocusOut event, serial 37, synthetic NO, window 0x4c00001,
    mode NotifyGrab, detail NotifyAncestor

FocusIn event, serial 37, synthetic NO, window 0x4c00001,
    mode NotifyUngrab, detail NotifyAncestor

A길게 누르면 Shift어떻게 되나요 ?수동적 크롤링: 이 키 조합을 독점적으로 제어하는 ​​X 클라이언트가 하나 있으며, 키 조합을 누르면 이벤트가 해당 클라이언트로만 라우팅되고 xev다른 사람에게는 라우팅되지 않습니다. xev키 조합이 발생할 때 잡고 키 조합이 끝나면 잡아 취소하도록 클라이언트에 보고합니다.

Shift일반인의 관점에서 +를 A전역 키 바인딩으로 정의하는 프로그램이 있습니다 . 이것은 아마도 오타일 것입니다. 바인딩 Shift++ 또는 ++ 무엇인가를 의미했습니다 .AltkeyWinShiftA

존재하다명령줄에서 X 키와 포인터 잡기를 작동합니다.나는 핫 테이커를 찾는 방법을 물었습니다. 내가 찾은 가장 좋은 접근 방식은 활성 크롤링에 대한 보고서만 보고하므로 정보를 쿼리할 때 키를 눌러야 합니다.

  1. 설치하다xdo 도구아직 하지 않았다면.
  2. 달리기 sleep 1; xdotool key XF86LogGrabInfo.
  3. Shift1초 이내에 +를 길게 누르세요 A. 실행될 때까지 기다리십시오 xdotool.
  4. 크롤링에 대한 정보는 X 서버 로그를 확인하세요. X 서버 로그의 일반적인 위치는 다음과 같습니다 /var/log/Xorg.0.log(표시 번호 반영, 즉 0if is 또는 then Look at 등의 숫자).$DISPLAY$DISPLAY:1:1.0/var/log/Xorg.1.log

다음은 내가 누른 키가 Sawfish에서 정의한 키 바인딩임을 보여주는 몇 가지 샘플 출력입니다.

[2292688.331] Active grab 0x41602244 (core) on device 'Virtual core keyboard' (3):
[2292688.331]       client pid 6745 sawfish 
[2292688.331]       at 2292687547 (from passive grab) (device thawed, state 3)
[2292688.331]         core event mask 0x3
[2292688.331]       passive grab type 2, detail 0x4e, activating key 78
[2292688.331]       owner-events false, kb 0 ptr 0, confine 0, cursor 0x0
[2292688.331] (II) End list of active device grabs

답변2

Ubuntu 16.04 LTS 64비트의 "파일"에서 비슷한 동작이 나타납니다.

  • 아이콘 그리드 모드로 항목 보기에서 파일 및 폴더의 이름을 바꿀 수 있습니다.
  • "항목을 목록으로 보기" 모드에서:
    • 이름을 바꾸는 동안 누르는 것은 right shift누르는 것과 유사합니다.ESC
    • 프레싱 left shift공정
    • +를 누르는 것은 left shift+를 누르는 것과 any letter유사합니다 .ESCleft shiftany letter

따라서 파일이나 폴더 이름을 변경할 때 "항목을 목록으로 보기"에 대문자를 입력할 수 없습니다.

해결책:

  • 가다 System settings/Keyboard
  • Shortcuts탭 으로 전환
  • Universal access왼쪽 선택
  • 확대/축소 바인딩 제거

관련 정보