Если вы просматриваете страницу руководства непосредственно в терминологии, происходит следующее:
less
(ручной пейджер) переключает терминал на так называемый альтернативный экран, который не имеет буфера обратной прокрутки и из которого при выходе из приложения вы возвращаетесь к предыдущему содержимому терминала. Этот режим обычно используется полноэкранными приложениями (программами просмотра, редакторами, файловыми менеджерами и т.д.).
less
не способен обрабатывать мышь вообще, и terminology
прекрасно понимает, что работающее внутри приложения не заинтересовано в событиях мыши.
Когда terminology
(фактически большинство эмуляторов терминала) понимает, что эти два условия соблюдены (то есть альтернативный экран, не интересуется мышью), она преобразует события прокрутки в нажатия клавиш вверх и вниз. Поэтому less
не видит никаких событий мыши, а видит только нажатия клавиш.
Теперь давайте поместим tmux
между ними.
tmux
с одной стороны просто приложение, работающее в вашем терминале. В зависимости от конфигурации он может запрашивать или не запрашивать события мыши; Я предполагаю, что вы включили его, так как это по умолчанию. Для приложений, работающих внутри, совсем не обязательно иметь какую-либо поддержку мыши. tmux
также переключается на альтернативный экран.
С другой стороны, tmux
сам по себе является эмулятором терминала, как и terminology
. Он отслеживает (для каждого окна / панели), интересуется ли запущенное там приложение мышью, и переключилось ли приложение на альтернативный экран. Эти состояния не отражаются на terminology
, это частный бизнес tmux
.
Теоретически ничто не мешает tmux вести себя так, как это делают графические эмуляторы, и превращать эти события прокрутки мыши, которые он получает из terminology
в нажатия клавиш вверх / вниз для less
запуска внутри, поскольку tmux
прекрасно знает, что приложение, работающее внутри, использует альтернативный экран и не заинтересованы в событиях мыши.
Это, вероятно, функция, которая отсутствует в tmux
, и я рекомендую вам подать запрос на функцию против них.
Давайте усложним ситуацию, если вас интересуют сочные детали. Давайте сейчас возьмем tmux
.
Здесь стоит отметить небольшую проблему. При использовании обычной мыши колесо прокрутки обычно генерирует более 1 нажатия клавиш, возможно, около 3-5, потому что в противном случае прокрутка была бы слишком медленной. Сенсорные панели могут сообщать о гораздо более плавных координатах, некоторые эмуляторы терминала (включая terminology
) распознают их и, следовательно, сообщают нажатия клавиш вверх / вниз по очереди (скажем, одно нажатие клавиши после каждой 1/3 единицы прокрутки, единица означает, что такое колесо мыши сделал бы сразу). (У меня сейчас нет мыши, поэтому я не могу проверить, что terminology
с мышью действительно переходит на несколько строк, но я предполагаю, что это так.)
Сообщать о нескольких нажатиях клавиш не имеет смысла в некоторых обстоятельствах, например, при поиске less
он возвращает, возможно, 3 записи истории одновременно, это абсолютно бесполезно и является хорошей демонстрацией того, что это действительно происходит за сцены. С эмулятором терминала, таким как terminology
плюс тачпад, это не проблема, если приложение не заботится о мышке, поэтому вы можете прокручивать построчно, например, less
. Однако, если приложение заботится о мышке, вы возвращаетесь к грубому процессу прокрутки, потому что протокол мыши внутри терминалов не может сообщить о мелкой детализации, только по старомодному блоку прокрутки мыши. Например, в mcview
вы не можете плавно прокручиваться, только несколькими строками одновременно.
Давайте tmux
обратно в игру. Это приложение, поддерживающее мышь на альтернативном экране, так же, как и mcview
, поэтому оно может получать только события прокрутки мышью старомодных больших устройств. Предположительно, он должен отправлять несколько нажатий клавиш вверх / вниз одновременно, так же, как фактические эмуляторы терминала делают на устаревших скроллах мыши, иначе прокрутка будет невыносимо медленной. Таким образом, даже если разработчики tmux
реализовывать эту функцию, вы потеряете плавность прокрутки.
Я открыл ошибку https://bugzilla.gnome.org/show_bug.cgi?id=755183, чтобы поработать над ее улучшением, но пока что никакой реальной работы сделано не было.