Dropbox, 알림 전송 및 OSD가 Ctrl 단축키를 방해합니다.

Dropbox, 알림 전송 및 OSD가 Ctrl 단축키를 방해합니다.

저는 Ubuntu 13.04와 i3 4.5.1을 사용하고 있습니다. i3wm이 시작되면 Ctrl-C/-D/-K 등이 제대로 작동합니다. Dropbox를 시작하거나, 알림을 보내거나, 볼륨을 변경하면 모든 Ctrl 단축키가 작동하지 않습니다.

문제를 재현할 수 있습니다.

  1. X를 다시 시작하고 i3wm에 로그인합니다.
  2. 터미널을 열고 Ctrl-C, Ctrl-A, Ctrl-K 및 Ctrl-D가 유효한지 확인하세요 => 유효한지 확인하세요
  3. 다음 프로그램 중 하나를 시작하십시오.
    • 드롭박스 vs./usr/bin/dropbox start
    • OSD 알림 트리거notify-send "Test"
    • 볼륨 키를 사용하여 볼륨을 변경하세요.
  4. 터미널에서 다시 Ctrl-C, -A, -K 및 -D를 시도했지만 => 더 이상 작동하지 않습니다.

Ctrl과 같은 단축키를 복원하려면 X를 다시 시작해야 했습니다. 흥미롭게도 Shift-Ctrl 등을 사용하는 명령은 Shift를 먼저 눌러도 여전히 작동합니다.

xevCtrl-C를 눌렀을 때의 출력입니다. 위의 3단계를 수행하기 전에:

    KeyPress event, serial 33, synthetic NO, window 0x1a00001,
        root 0x259, subw 0x0, time 7988829, (-219,177), root:(505,197),
        state 0x0, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
        XLookupString gives 0 bytes: 
        XmbLookupString gives 0 bytes: 
        XFilterEvent returns: False

    KeyPress event, serial 33, synthetic NO, window 0x1a00001,
        root 0x259, subw 0x0, time 7988878, (-219,177), root:(505,197),
        state 0x4, keycode 54 (keysym 0x63, c), same_screen YES,
        XLookupString gives 1 bytes: (03) "^C"
        XmbLookupString gives 1 bytes: (03) "^C"
        XFilterEvent returns: False

    KeyRelease event, serial 33, synthetic NO, window 0x1a00001,
        root 0x259, subw 0x0, time 7988949, (-219,177), root:(505,197),
        state 0x4, keycode 54 (keysym 0x63, c), same_screen YES,
        XLookupString gives 1 bytes: (03) "^C"
        XFilterEvent returns: False

    KeyRelease event, serial 33, synthetic NO, window 0x1a00001,
        root 0x259, subw 0x0, time 7988970, (-219,177), root:(505,197),
        state 0x4, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
        XLookupString gives 0 bytes: 
        XFilterEvent returns: False

위의 3단계 이후:

    KeyPress event, serial 33, synthetic NO, window 0x1e00001,
        root 0x259, subw 0x0, time 8064649, (-238,542), root:(486,562),
        state 0x0, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
        XLookupString gives 0 bytes: 
        XmbLookupString gives 0 bytes: 
        XFilterEvent returns: False

    FocusOut event, serial 33, synthetic NO, window 0x1e00001,
        mode NotifyGrab, detail NotifyAncestor

    FocusIn event, serial 33, synthetic NO, window 0x1e00001,
        mode NotifyUngrab, detail NotifyAncestor

    KeymapNotify event, serial 33, synthetic NO, window 0x0,
        keys:  2   0   0   0   32  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

    KeyRelease event, serial 33, synthetic NO, window 0x1e00001,
        root 0x259, subw 0x0, time 8064926, (-238,542), root:(486,562),
        state 0x4, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
        XLookupString gives 0 bytes:
        XFilterEvent returns: False

문제 디버깅을 어디서 시작해야 할지 모르겠습니다. 이 문제의 원인을 찾는 방법에 대한 지침을 제공해 주시겠습니까?

감사해요!

베네딕트

답변1

좋아, 문제의 원인을 찾았습니다. 이 문제가 발생하는 다른 사람을 위해 원인을 찾는 방법은 다음과 같습니다.

  1. 다음 제안을 따르세요http://mg.pov.lt/blog/xorg-snafu.html종료한 gnome-settings-manager다음 Ctrl 단축키가 다시 작동하는지 확인하세요. 이 경우 Marius가 자신의 페이지에 설명하는 오류가 있으므로 X.org를 업그레이드해야 할 것입니다.
  2. 그래도 문제가 해결되지 않으면 xrestop모든 X 응용 프로그램 목록 가져오기를 사용하세요. 그 중 하나를 죽이고 Ctrl 단축키를 다시 시도하고 반복하십시오. Ctrl 키를 캡처하는 X 응용 프로그램을 찾을 수 있습니다.
  3. Ctrl 단축키가 여전히 작동하지 않으면 Find 를 통해 다른 프로세스 종료를 시작하고 ps auxCtrl 단축키를 다시 시도하고 반복하세요. 절차 중 하나가 Ctrl 키를 캡처합니다. 물론 프로세스를 무작위로 종료하면 데이터가 손실되거나 시스템이 충돌할 수 있습니다.

나에게는 1.과 2.가 문제를 해결하지 못했습니다. 세 번째 단계에서는 dunstCtrl 키가 캡처된 것을 발견했습니다. dunst알림 데몬이며 Dropbox 알림, 알림 보내기 및 기타 화면 표시는 모두 dunst내 시스템에서 처리됩니다. 이것은 프로그램 중 하나를 시작하자마자 문제가 발생하는 이유를 설명합니다. 제거했지만 dunst유지하고 싶은 분들을 위해 modifier키를 변경할 수도 있습니다 ~/.config/dunst/dunst( 로 설정하지 마세요 ctrl).

관련 정보