마우스 휠이 멈추면 스크롤 중지

마우스 휠이 멈추면 스크롤 중지

마우스 휠의 마찰을 전환하는 버튼이 있는 마우스가 있습니다. 그렇게 하면 원할 때 빠르게 스크롤할 수 있습니다.

그러나 tmux에서 "frictionless" 모드를 사용하면 마우스 휠을 멈춰도 계속 스크롤됩니다. tmux가 모든 주요 이벤트를 계산한 다음 마우스 자체가 여전히 스크롤 중인지 여부에 관계없이 해당 행만 스크롤하기 때문에 이런 일이 발생한다고 생각합니다. 그러나 이는 여러 개의 가로 창과 가장 왼쪽 창에서만 발생합니다.

마우스 휠이 멈출 때 스크롤을 멈추도록 tmux에 지시하는 방법이 있습니까? 아니면 마우스 휠을 다른 방향으로 돌리면 스크롤이 멈추나요?

현재 xfce4-terminal 0.6.3-3에서 tmux 2.2를 사용하고 있습니다. 이 동작은 xterm 또는 urxvt에서는 발생하지 않습니다.

xev산출:

스크롤:

ButtonPress event, serial 25, synthetic NO, window 0x4a00001,
    root 0x4b2, subw 0x0, time 335774900, (128,158), root:(2049,204),
    state 0x10, button 4, same_screen YES

ButtonRelease event, serial 25, synthetic NO, window 0x4a00001,
    root 0x4b2, subw 0x0, time 335774900, (128,158), root:(2049,204),
    state 0x810, button 4, same_screen YES

아래로 스크롤:

ButtonPress event, serial 25, synthetic NO, window 0x4a00001,
    root 0x4b2, subw 0x0, time 335776189, (128,158), root:(2049,204),
    state 0x10, button 5, same_screen YES

ButtonRelease event, serial 25, synthetic NO, window 0x4a00001,
    root 0x4b2, subw 0x0, time 335776189, (128,158), root:(2049,204),
    state 0x1010, button 5, same_screen YES

"무마찰" 모드 사용 여부에 관계없이 이벤트는 동일합니다.

답변1

tmux현재는 주로 제어할 수 없는 이유로 인해 부드러운/마찰 없는/관성 스크롤을 지원하지 않습니다 .

tmux마우스 입력은 터미널 제어 시퀀스를 통해 수신되므로 터미널이 제공하는 것에 따라 제한됩니다. 터미널 시퀀스에 대한 인기 있는 참조는 다음과 같습니다.콘솔 코드(4), 그러나 마우스 휠은 전혀 언급되지 않습니다. 하지만,XTerm 제어 순서일부 기본 휠 시퀀스는 실제로 정의되어 있으므로 xterm 호환 터미널은 이러한 시퀀스도 지원합니다.

현재 tmux마우스 휠을 처리하려면 다음 두 가지 간단한 버튼 이벤트만 필요합니다."휠을 위로 스크롤" 및 "휠을 아래로 스크롤". 그것은 또한휠 해제 이벤트 취소 (의도적으로).

향후 터미널 에뮬레이터에서는 스크롤 크기를 포함하는 휠 이벤트와 같은 더 많은 이스케이프 시퀀스를 도입할 수 있습니다. 이런 일이 발생하거나 이미 존재하는 경우 tmux이러한 시퀀스를 인식하고 적절하게 처리하려면 업데이트도 필요합니다.

관련 정보