Остановка прокрутки, когда колесо мыши останавливается

У меня есть мышь с кнопкой, которая переключает трение на колесе мыши. Таким образом, я могу прокручивать очень быстро, если захочу.

Однако в tmux, когда я использую режим "без трения", прокрутка будет продолжаться, даже если я остановлю колесико мыши. Я предполагаю, что это происходит потому, что tmux подсчитывает все ключевые события, а затем просто прокручивает столько строк, не обращая внимания на то, прокручивается ли сама мышь. Однако это происходит только с несколькими горизонтальными панелями и только на панели слева.

Есть ли способ сказать tmux, чтобы он останавливал прокрутку, когда останавливается колесо мыши. Или останавливать прокрутку при повороте колеса мыши в другую сторону?

В настоящее время я использую tmux 2.2 в xfce4-terminal 0.6.3-3. Такое поведение не наблюдается в 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

События одинаковы в/ и без режима "без трения"

0
13.07.2016, 20:24
1 ответ

Плавная / бесфрикционная / инерционная прокрутка не поддерживается текущим tmux , в основном по причинам, не зависящим от него.

tmux получает ввод от мыши через последовательности управления терминалом, поэтому он ограничен тем, что ему дает терминал. Популярным справочником по терминальным последовательностям является console_codes (4) , но в нем вообще не упоминается колесико мыши.Однако управляющие последовательности XTerm действительно определяют некоторые базовые последовательности колес, поэтому терминалы, совместимые с xterm, также будут их поддерживать.

На данный момент tmux при обработке колесика мыши ожидает только этих двух простых событий кнопки: «прокрутить вверх» и «прокрутить вниз» . Он также отбрасывает события отпускания колеса (намеренно).

Возможно, в будущих эмуляторах терминалов будут введены дополнительные escape-последовательности, такие как события колеса, которые включают размер прокрутки. Если это произойдет (или если он уже существует), тогда tmux также потребует обновления, чтобы распознать эти последовательности и обработать их соответствующим образом.

2
28.01.2020, 02:34

Теги

Похожие вопросы