Неделю назад было опубликовано крупное обновление мультиплексора терминала 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