Tmux 3.5 и 3.5a

Tmux 3.5 и 3.5a

Неделю назад было опубликовано крупное обновление мультиплексора терминала tmux под номером 3.5, главным изменением которого было усовершенствованная реализация расширенных клавиш (extended keys). 5 октября разработчики представили bugfix-релиз 3.5a.

Tmux — свободная программа, позволяющая управлять несколькими консольными сеансами из одного виртуального терминала. Она позволяет делить экранное пространство эмулятора терминала вертикально или горизонтально на «плоскости» (pane), в каждой из которой запущен отдельный сеанс оболочки командной строки, и группировать эти «плоскости» в «окна» (window). Управление «окнами» и «плоскостями» осуществляется комбинациями клавиш, также есть опциональная поддержка мыши. Кроме того, Tmux реализует прокрутку внутри вывода консоли и встроенный буфер обмена. Возможности Tmux расширяются посредством установки плагинов.

Программа выпущена под ISC License и распространяется на GitHub. Tmux включен в минимальную поставку OpenBSD, и установка возможна на многих Unix-подобных системах.

Изменения в Tmux 3.5

  • Для полноценной совместимости с xterm в mode 2 и mode 1 пересмотрена поддержка расширенных клавиш. Теперь tmux всегда будет запрашивать mode 2 у родительского терминала. Это позволяет перейти к однозначному внутреннему представлению клавиш. Добавлена опция extended-keys-format, чтобы контролировать формат представления клавиш, подобно ресурсу formatOtherKeys в xterm.
  • Оверлей (всплывающее окно или меню) будет очищаться при открытии командной строки.
  • Добавлен флаг copy-mode -d, чтобы прокручивать на страницу вниз, уже находясь в режиме копирования (совпадает с -e).
  • Гиперссылки будут отображаться в режиме копирования. Добавлен формат copy_cursor_hyperlink, для получения цели гиперссылки под курсором.
  • Добавлена опция для времени ожидания префикса (сочетание клавиш, с которого начинается ввод команд tmux).
  • Отключены сочетания с клавишами перемещения мыши. Они будут игнорироваться, чтобы исключить выход из префикса.
  • В режим копирования добавлены форматы search_count и search_count_partial.
  • Фокус мыши не будет перемещаться при нажатии на строку состояния.
  • Добавлены отзеркаленные версии раскладок main-horizontal и main-vertical, где главная плоскость снизу или справа, а не сверху или слева.
  • Разрешена работа REP с символами Юникода.
  • Исправлен расчет конца escape-последовательностей буфера обмена.
  • CRLF будет обрабатываться как LF в файлах настройки, когда это возможно.
  • Добавлены workarounds для багов консоли Linux, проявляющихся при использовании ярких цветов.
  • При сборке с systemd удаляются переменные окружения, которые используются им.
  • Откорректирована логика удаления последнего буфера, для лучшего сохранения области выделения: если нельзя выбрать элемент ниже удаленного (например, выделение включало конец вывода), выбирается элемент сверху.
  • Добавлена опция —enable-jemalloc для сборки с распределителем памяти jemalloc, из-за ограниченности glibc malloc.
  • Для клиентов добавлен способ (refresh-client -r) получить запросы OSC 10 и 11, чтобы клиенты могли выставлять цвета переднего и заднего плана.
  • Добавлен поиск в обратном направлении клавишей N в древовидном режиме.
  • default-shell будет использоваться для командной строки, #() и всплывающих окон (см. примечания к выпуску 3.5a).
  • Отменены те части изменений, которые должны были обеспечить пропуск уже просмотренных строк во время поиска с целью увеличения производительности, но которые помимо этого пропускали окончания строк вообще.
  • Добавлен хук command-error для завершившихся ошибкой команд.
  • Добавлена опция allow-set-title, запрещающая приложениям менять заголовок панели.
  • Исправлено поведение мыши при подъеме курсора: игнорировать только последнюю опущенную кнопку, и всегда обрабатывать двойной щелчок.
  • Исправлено падение при перемещении фокуса на закрывающуюся панель.
  • Во время поиска следующей сессии при выполнении detach-on-destroy выбирается последняя созданная сессия.
  • Время выхода по умолчанию снижено до 10 миллисекунд.
  • Добавлена команда display-menu -M, которая позволяет всегда включать мышь в меню.
  • В аттрибутах устройства будет производиться поиск feature code 21 для DECSLRM и 28 для DECFRA. Разрешен level 1.
  • Исправлено падение, если программа собрана с поддержкой SIXEL и цветовой регистр SIXEL некорректен. Изображения SIXEL будут удаляться перед выполнением переформатирования.
  • Уведомление window-layout-changed не отправляется, если в скором времени окно должно быть закрыто.
  • Когда выделенная область пуста, выделение будет считаться отсутствующим с точки зрения переменных форматов selection_active и selection_present.
  • Исправлено поведение split-window -p.

Изменения в Tmux 3.5a

  • Возвращено название цвета grey.
  • Возвращено использование /bin/sh для #(), run-shell и if-shell. Всплывающие окна продолжат использовать default-shell.
  • Исправленные сочетания, включающие клавиши Shift и C-BSpace при включенных расширенных клавишах.

При обновлении обратите внимание на то, что 3.5 меняет представление клавиш, то есть клавиши, которые прежде считались равнозначными, теперь будут вести себя по-разному, например:

  • C-A и C-a, C-B и C-b и т.д.;
  • C-i и Tab;
  • C-m и Enter;
  • C-@ и C-Space;
  • C-Enter и Enter;
  • C-BTab и C-S-Tab.

Все привязки с использованием этих клавиш потребуется изменить в .tmux.conf при обновлении на 3.5a.

Источник: linux.org.ru