terminator

Terminator – efektywny i prosty emulator terminala

Wybór emulatora terminala może przyprawić o mały ból głowy. W przypadkach, kiedy posiadamy duży wybór, dobrze jest zastanowić się nad tym, co jest nam tak naprawdę potrzebne. W moim przypadku chciałem: 1. Wsparcie dla profilów kolorów (zielony tekst na czarnym tle to absolutne minimum). 2. Wsparcie dla wielu kart (tak jak w przeglądarkach internetowych). 3. Wsparcie […]

Wybór emulatora terminala może przyprawić o mały ból głowy. W przypadkach, kiedy posiadamy duży wybór, dobrze jest zastanowić się nad tym, co jest nam tak naprawdę potrzebne.

W moim przypadku chciałem:

1. Wsparcie dla profilów kolorów (zielony tekst na czarnym tle to absolutne minimum).
2. Wsparcie dla wielu kart (tak jak w przeglądarkach internetowych).
3. Wsparcie dla nazywania kart.
4. Niski stopień wejścia.
5. Możliwość konfiguracji skrótów klawiszowych.
6. Wsparcie dla prostego podziału okien – tworzenie macierzy terminali.
7. Wsparcie dla wtyczek.

Niestety standardowe emulatory terminali dostępne w dystrybucjach nie były w stanie zaoferować mi 6 i 7 podpunktu. Używając screen, a potem krótko romansując z tmuxem, zdałem sobie sprawę, że narzędzia te będą kolejnymi kombajnami, które przez następne kilka lat będę mógł doskonalić. W tym wypadku moja wrodzona miłość do rozwiązań prostych wygrała.

Na moje szczęście w swoim życiu natknąłem się na projekt Terminator i mimo zniechęcenia mnie przez jedynie słusznych administratorów „prawdziwej konsoli”, którzy gardzili moją niechęcią do konfiguracji kolejnego narzędzia, postanowiłem dać mu szansę.

Był to strzał w 10! Od pewnego czasu nie mogę sobie wyobrazić życia bez tego cudownego narzędzia.
Zanim przeczytają Państwo dalej o samym Terminatorze, chciałbym też tutaj wprowadzić pewną klaryfikację – istnieją dwa projekty będące emulatorami terminala o nazwie Terminator:

1. Napisany w Javie https://code.google.com/archive/p/jessies/wikis/Terminator.wiki
2. Napisany w Pythonie https://terminator-gtk3.readthedocs.io znany także pod nazwą „Gnome Terminator”.

TERMINATOR make terminal grid again!

Opis twórców programu Terminator jest następujący Wiele terminali GNOME w jednym oknie. Terminator pozwala bowiem aranżować wiele okien terminala w tzw. gridy, czyli macierze lub kratownice terminali.
Terminator w przeciwieństwie do tmux i screen może być używany przez użytkownika, który nie zna i nie chce poznać żadnego skrótu klawiszowego. Inaczej rzecz ujmując – wszystko można sobie „wyklikać”.

By zainstalować Terminatora, należy dodać repozytorium EPEL, a następnie z niego zainstalować interesujący nas pakiet:
sudo yum install -y epel-release && sudo yum install -y terminator

Po odpaleniu możemy, przy pomocy kilku kliknięć, otworzyć kilka terminali. Co istotne, terminator wspiera funkcję drag and drop, pozwalając nam przy pomocy myszki dostosować miejsce oraz rozmiar poszczególnych terminali.

Najważniejsze skróty Gnome Terminator

ctrl + shift + o tworzy nowy terminal, dzieląc obecny w poziomie (horyzontalnie).
ctrl + shift + e tworzy nowy terminal, dzieląc obecny w pionie (wertykalnie).

Prosta memotechnika:
ctrl + shift + hooryzontalnie
ctrl + shift + wertykalnie

Gdy mamy już kilka terminali, możemy w prosty sposób pomiędzy nimi nawigować.

alt + zmienia aktywne okno terminala do terminala wyżej.
alt + zmienia aktywne okno terminala do terminala niżej.
alt + zmienia aktywne okno terminala do terminala na lewo od obecnego.
alt + zmienia aktywne okno terminala do terminala na prawo od obecnego.
Można to skrócić do zapisu alt + strzałka kierunku. Jest to rozwiązanie proste i intuicyjne.

Przydatnym dla mnie skrótem jest maksymalizacja aktywnego okna terminala coś w stylu tzw. focus mode, czyli w wolnym tłumaczeniu trybu skupienia.

ctrl + shift + x maksymalizuje terminal, na którym obecnie pracujemy. By cofnąć tę operację, czyli przywrócić wszystkie terminale, używamy tego samego skrótu.

Zabawa z kartami

Terminator, jak wiele innych emulatorów, ma możliwość tworzenia wielu kart w każdej z kart można stworzyć nową kratę terminali.
ctrl + t tworzy nową kartę. Karta kończy swoje działanie, jeśli wszystkie terminale w niej zostaną zamknięte. Jeśli zamkniemy kartę, to wszystkie terminale w niej zostaną bez ostrzeżenia zakończone.
ctrl + Page Up wybór karty na lewo od obecnej.
ctrl + Page Down wybór karty na prawo od obecnej.

Inne przydatne skróty

alt + a włącza tryb broadcastu – rozgłoszenia (nadawanie do wszystkich terminali).
alt + o wyłącza tryb broadcastu.
ctrl + shift + strzałka zmienia rozmiar aktywnego terminala o jeden znak zgodnie z kierunkiem strzałki. Przytrzymany skrót ponawia operację.
ctrl + shift + i otwiera zupełnie nowe okno terminatora.

Znów możemy się pokusić o proste mnemotechniki:
alt + all broadcast dla wszystkich (All)
alt + off wyłącz broadcast (Off)

Grupowanie terminali

Terminator pozwala nam na tworzenie grup terminali. Najłatwiejszy sposób to kliknięcie ikony terminatora na pasku statusu.

alt+g włącza tryb rozgłaszania (broadcastu) dla grupy, w której znajduje się obecny terminal.
alt+o – wyłącza tryb rozgłaszania (broadcastu).

Mnemotechnika:
alt + group broadcast dla Grupy.

Stworzenie domyślnego układu

Terminator pozwala nam na tworzenie układów (layout), które są zapisywane w pliku konfiguracyjnym $HOME/.config/terminator/config. Następnie istnieje możliwość wywołania Terminatora z parametrem --layout NAZWA, dzięki czemu zostanie odtworzony zapisany układ. W celu stworzenia układu klikamy prawym klawiszem myszy w oknie terminatora, by następnie wejść w „Preferences” -> „Layouts” -> „Add”. Nowy układ odwzoruje obecnie ustawiony układ.

Mając nowy layout, proponuję wyedytować plik .desktop terminatora, by przy wywoływaniu z naszego środowiska graficznego był on zaczytywany.

--- /usr/share/applications/terminator.desktop.old 2015-10-21 14:03:45.000000000 +0200
+++ /usr/share/applications/terminator.desktop 2018-10-01 11:28:04.464515675 +0200
@@ -138,7 +138,7 @@
Comment[zh_CN]=一个窗口里多个终端
Comment[zh_TW]=一視窗內含多個終端機
TryExec=terminator
-Exec=terminator
+Exec=terminator --layout nazwa_ukladu
Icon=terminator
Type=Application
Categories=GNOME;GTK;Utility;TerminalEmulator;System;

Zakończenie

Terminator jest potężnym emulatorem terminala łączącym w sobie najlepsze cechy takich programów jak tmux lub screen, zapewniając równocześnie bardzo niski poziom wejścia. W następnym artykule przedstawię Państwu kilka alternatywnych emulatorów terminali, w tym między innymi terminala „opuszczane”.

Autorzy

Artykuły na blogu są pisane przez osoby z zespołu EuroLinux. 80% treści zawdzięczamy naszym developerom, pozostałą część przygotowuje dział sprzedaży lub marketingu. Dokładamy starań, żeby treści były jak najlepsze merytorycznie i językowo, ale nie jesteśmy nieomylni. Jeśli zauważysz coś wartego poprawienia lub wyjaśnienia, będziemy wdzięczni za wiadomość.