제어할 수 없는 이상한 스크롤

제어할 수 없는 이상한 스크롤

나는 오늘 아침에 이 이상한 상황에 눈을 떴다. 어제 컴퓨터에서 나왔을 때 이런 일이 발생하지 않았습니다.

나는 tmux 키 바인딩이 작동하지 않을 때 처음으로 그것을 발견했습니다. 내 접두어는 Ctrl+space입니다. 그런 다음 마우스를 브라우저 탭 위로 이동하면 계속 오른쪽으로 스크롤되는 것을 발견했습니다. 그런 다음 터미널이 항상 아래쪽으로 스크롤되는 것을 발견했습니다. 하지만 내 vim 세션에는 없고 urxvt를 사용할 때는 tmux 내에서만 가능하지만 kitty를 사용하는 tmux 내부에서는 그렇지 않습니다. 그런 다음 프레임보다 넓고 가로 스크롤 막대가 있는 텍스트가 포함된 브라우저 프레임은 오른쪽으로 스크롤된다는 점도 확인했습니다. 또한 브라우저에서 Ctrl 키를 누르고 있으면 계속 축소됩니다.

문제를 해결하기 위해 내가 한 일은 다음과 같습니다.

  • 내 패키지를 모두 업데이트했습니다.
  • 여러 번 다시 시작
  • 모든 tmux 세션 종료
  • 다양한 마우스와 키보드
  • 바닥에 있는 센서를 포함하여 마우스를 철저히 청소하고 머리카락이 없는지 확인했습니다.
  • 키보드가 완전히 분리되었을 때 이런 일이 발생합니다.
  • 키보드에서 마우스 제어가 가능해서 마우스를 끄고 키보드만 사용해 테스트해봤습니다.

마우스를 켜지 않고 키보드를 연결하지 않은 상태에서 이런 일이 발생한다면, 제가 생각하는 장치 외부에 있는 것이 틀림없습니다.

  • 컴퓨터: 델 13 XPS
  • 운영 체제: 아치 리눅스
  • 데스크탑 환경: 없음
  • 창 관리자: AwesomeWM
  • 키보드: Ergodox EZ
  • 마우스: J-Tech Digital

제 질문은 이 문제를 어떻게 해결할 수 있느냐는 것입니다. 알 수 없는 키 입력이 발생하는 것을 확인할 수 있는 방법이 있습니까? 아니면 마우스 휠 명령이 멈췄습니까?

고쳐 쓰다:

댓글에 제안을 주신 @duthils에게 감사드립니다. 나는 실행했고 xev예상되는 마우스 이동 이벤트 외에 이 출력을 발견했습니다.

ButtonPress event, serial 32, synthetic NO, window 0x3600001,
    root 0x1a6, subw 0x0, time 87726801, (433,445), root:(4274,482),
    state 0x0, button 7, same_screen YES

ButtonRelease event, serial 32, synthetic NO, window 0x3600001,
    root 0x1a6, subw 0x0, time 87726801, (433,445), root:(4274,482),
    state 0x0, button 7, same_screen YES

이는 다음을 기반으로합니다.문서어떻게든 트랙패드에서 가로 스크롤 이벤트가 전송되는 것처럼 보입니다. 그래서 나는 그것을 비활성화한다고 생각하는 것이 있습니다. 하지만 아직도 그런 일이 일어나고 있는 것 같습니다. 일부 서비스 등을 다시 시작해야 할까요? 비활성화하는 방법은 다음과 같습니다.

$ xinput list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ ELAN25B5:00 04F3:25B5                     id=12   [slave  pointer  (2)]
⎜   ↳ DELL07E6:00 06CB:76AF Mouse               id=13   [slave  pointer  (2)]
⎜   ↳ DELL07E6:00 06CB:76AF Touchpad            id=14   [slave  pointer  (2)]
...
$ xinput disable "DELL07E6:00 06CB:76AF Touchpad"

그러나 그런 일이 계속 일어나고 있습니다. 그래서 나도

$ xinput disable "DELL07E6:00 06CB:76AF Mouse"

확실히 하세요. 하지만 여전히 그런 일이 일어납니다. 올바른 방법으로 비활성화하고 있습니까? 아니면 생성된 이벤트 출력을 잘못 읽었습니까 xev? 또한 터치패드와 마우스를 비활성화한 상태에서 테스트한 다음 실제 마우스를 꺼서 수평 스크롤 이벤트가 전송되지 않도록 했습니다. 마우스를 끈 상태에서도 이런 현상이 계속 발생합니다. 마우스가 꺼져 있고 트랙패드와 마우스가 비활성화된 경우 그 밖의 이유는 무엇입니까?

왜 이런 일이 발생하는지 궁금합니다. 내 컴퓨터가 갑자기 밤새 수평 트랙패드 스크롤 이벤트를 보내기로 결정한 이유는 무엇입니까?

업데이트 2:

xinput --test-xi2@duthils의 제안 덕분에 결과는 다음과 같습니다.

EVENT type 17 (RawMotion)
    device: 2 (16)
    detail: 0
    flags: 
    valuators:
          2: 15.00 (15.00)

EVENT type 15 (RawButtonPress)
    device: 2 (16)
    detail: 7
    flags: emulated
    valuators:

EVENT type 16 (RawButtonRelease)
    device: 2 (16)
    detail: 7
    flags: emulated
    valuators:

EVENT type 13 (RawKeyPress)
    device: 3 (19)
    detail: 37
    valuators:

EVENT type 14 (RawKeyRelease)
    device: 3 (19)
    detail: 37
    valuators:

EVENT type 13 (RawKeyPress)
    device: 3 (19)
    detail: 37
    valuators:

EVENT type 17 (RawMotion)
    device: 2 (16)
    detail: 0
    flags: 
    valuators:
          2: 15.00 (15.00)

EVENT type 15 (RawButtonPress)
    device: 2 (16)
    detail: 7
    flags: emulated
    valuators:

EVENT type 16 (RawButtonRelease)
    device: 2 (16)
    detail: 7
    flags: emulated
    valuators:

EVENT type 17 (RawMotion)
    device: 2 (16)
    detail: 0
    flags: 
    valuators:
          0: -0.89 (-1.00)
          1: 0.00 (0.00)

내가 알 수 있는 한, ID가 16인 장치(내 마우스)에 대해 버튼을 눌렀다가 떼는 것과 ID가 19(내 키보드)인 장치에 대해 키를 눌렀다가 떼는 것을 수신한다고 알려줍니다.

각 장치를 비활성화하고 테스트를 실행한 다음 다시 활성화하고 테스트를 다시 실행하는 등 다른 많은 테스트를 수행했습니다. 차이점 등을 비교해 보세요. 키보드에서 키를 누르거나 떼는 데 아무런 차이가 없는 것 같습니다. 그러나 마우스를 누르거나 놓으면 그랬습니다. 내가 이상하게 생각하는 점은 마우스가 꺼져도(전원이 꺼지고 배터리가 없는 경우) 여전히 발생한다는 것입니다. 하지만 내 추측으로는 USB 동글에서 나온 것 같습니다. 그래서 나는 그것을 떼어내고 다시 꽂았습니다, 비올라. 문제는 사라졌습니다.

답변1

  1. 이벤트가 수신되고 있는지 확인xev

  2. 이러한 이벤트를 발생시키는 장치 ID를 찾으려면 다음 명령을 사용하십시오.

xinput --test-xi2

다음과 같은 이벤트가 출력됩니다.

EVENT type 15 (RawButtonPress)
    device: 2 (16)
    detail: 7
    flags: emulated
    valuators:
  1. 장치 이름 찾기: (16)장치 ID(예:)가 매핑된 장치 목록입니다 xinput --list.

관련 정보