Tydzień temu opublikowano dużą aktualizację multiplexer'a terminala tmux o numerze 3.5, której główną zmianą była udoskonalona implementacja rozszerzonych klawiszy (extended keys). 5 października deweloperzy przedstawili poprawkę błędów 3.5a.
Tmux — bezpłatny program, który pozwala zarządzać wieloma sesjami konsolowymi z jednego wirtualnego terminala. Umożliwia dzielenie przestrzeni ekranowej emulatora terminala pionowo lub poziomo na "płaszczyzny" (pane), w których uruchamiana jest oddzielna sesja powłoki, oraz grupowanie tych "płaszczyzn" w "okna" (window). Zarządzanie "oknami" i "płaszczyznami" odbywa się za pomocą kombinacji klawiszy, istnieje również opcjonalne wsparcie dla myszy. Dodatkowo, Tmux implementuje przewijanie wewnątrz wyjścia konsoli oraz wbudowany schowek. Możliwości Tmux są rozszerzane poprzez instalację wtyczek.
Program został wydany na licencji ISC i jest rozpowszechniany na GitHub. Tmux jest częścią minimalnej dystrybucji OpenBSD, a instalacja jest możliwa na wielu systemach uniksopodobnych.
Zmiany w Tmux 3.5
- Dla pełnej zgodności z xterm w trybie 2 i trybie 1 przemyślano wsparcie rozszerzonych klawiszy. Teraz tmux zawsze będzie pytał o tryb 2 od rodzica terminala. Pozwala to na przejście do jednoznacznej wewnętrznej reprezentacji klawiszy. Dodano opcję extended-keys-format, aby kontrolować format reprezentacji klawiszy, podobnie jak zasób formatOtherKeys w xterm.
- Nakładka (popup lub menu) zostanie wyczyszczona po otwarciu wiersza poleceń.
- Dodano flagę copy-mode -d, aby przewijać stronę w dół będąc już w trybie kopiowania (odpowiada -e).
- Hiperlinki będą wyświetlane w trybie kopiowania. Dodano format copy_cursor_hyperlink, aby uzyskać cel hiperlinku pod kursorem.
- Dodano opcję dla czasu oczekiwania prefiksu (kombinacja klawiszy, od której zaczyna się wpisywanie poleceń tmux).
- Wyłączono kombinacje z klawiszami poruszania myszą. Będą ignorowane, aby wykluczyć wyjście z prefiksu.
- W trybie kopiowania dodano formaty search_count i search_count_partial.
- Fokus myszy nie będzie przenoszony przy kliknięciu na wiersz stanu.
- Dodano odwrócone wersje układów main-horizontal i main-vertical, gdzie główna płaszczyzna jest na dole lub po prawej, a nie na górze lub po lewej.
- Zezwolono na działanie REP z symbolami Unicode.
- Poprawiono obliczenia końca sekwencji ucieczki w schowku.
- CRLF będzie traktowane jak LF w plikach konfiguracyjnych, gdy to możliwe.
- Dodano obejścia dla błędów konsoli Linux, które występują przy użyciu jaskrawych kolorów.
- Podczas kompilacji z systemd usuwane są zmienne środowiskowe, które są przez niego używane.
- Skorygowano logikę usuwania ostatniego bufora, aby lepiej zachować obszar zaznaczenia: jeśli nie można wybrać elementu poniżej usuniętego (np. zaznaczenie obejmowało koniec wyjścia), wybierany jest element powyżej.
- Dodano opcję —enable-jemalloc do kompilacji z przydzielaczem pamięci jemalloc, ze względu na ograniczenia malloc w glibc.
- Dodano klientom sposób (refresh-client -r) na uzyskanie zapytań OSC 10 i 11, aby klienci mogli ustawiać kolory tła i pierwszoplanowe.
- Dodano wyszukiwanie wstecz za pomocą klawisza N w trybie drzewiastym.
- default-shell będzie używana w linii poleceń, #() i oknach podręcznych (patrz uwagi do wydania 3.5a).
- Anulowano te części zmian, które miały zapewnić pominięcie już przeglądanych linii podczas wyszukiwania w celu zwiększenia wydajności, ale które poza tym pomijały końce linii w ogóle.
- Dodano hak command-error dla poleceń, które zakończyły się błędem.
- Dodano opcję allow-set-title, zabraniającą aplikacjom zmiany tytułu panelu.
- Poprawiono zachowanie myszy podczas podnoszenia kursora: ignorować tylko ostatni opóźniony przycisk i zawsze przetwarzać podwójne kliknięcia.
- Poprawiono awarię podczas przesuwania fokusu na zamykający się panel.
- Podczas wyszukiwania następnej sesji przy detekcji detach-on-destroy wybierana jest ostatnio utworzona sesja.
- Domyślny czas wyjścia został zmniejszony do 10 milisekund.
- Dodano polecenie display-menu -M, które zawsze włącza mysz w menu.
- W atrybutach urządzenia będzie się wykonywać wyszukiwanie kodu funkcji 21 dla DECSLRM i 28 dla DECFRA. Zezwolono na poziom 1.
- Poprawiono awarię, jeśli program został skompilowany z obsługą SIXEL i rejestr kolorów SIXEL jest niepoprawny. Obrazy SIXEL będą usuwane przed wykonaniem przekształcenia.
- Powiadomienie window-layout-changed nie jest wysyłane, jeśli okno ma być wkrótce zamknięte.
- Gdy obszar zaznaczenia jest pusty, zaznaczenie będzie uznawane za nieobecne z perspektywy zmiennych formatu selection_active i selection_present.
- Naprawiono zachowanie split-window -p.
Zmiany w Tmux 3.5a
- Przywrócono nazwę koloru grey.
- Przywrócono użycie /bin/sh dla #(), run-shell i if-shell. Okna podręczne będą nadal używać default-shell.
- Naprawione kombinacje klawiszy, w tym Shift i C-BSpace przy włączonych rozwiniętych klawiszach.
Podczas aktualizacji zwróć uwagę, że 3.5 zmienia sposób przedstawiania klawiszy, tzn. klawisze, które wcześniej były uważane za równoważne, teraz będą działać inaczej., na przykład:
- C-A i C-a, C-B i C-b itd.;
- C-i i Tab;
- C-m i Enter;
- C-@ i C-Space;
- C-Enter i Enter;
- C-BTab i C-S-Tab.
Wszystkie powiązania z użyciem tych klawiszy będą wymagały zmiany w .tmux.conf podczas aktualizacji do 3.5a.
Źródło: linux.org.ru
