Неделю назад было опубликовано крупное обновление мультиплексора терминала 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
, из-за ограниченности glibcmalloc
. - Для клиентов добавлен способ (
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.
>>> О релизе 3.5a