Utworzyłem nowy profil dla gnome-terminal i mogę przełączać się między profilem „Implicit” a nowo utworzonym profilem, jak widać na poniższym obrazku:
Teraz zastanawiam się, jak mogę przełączać się między profilami za pomocą wiersza polecenia / skryptu, a może za pomocą skrótu.
Uwaga: rozwiązania takie jak:
gnome-terminal --tab-with-profile=Implicit && exit
są wykluczone, ponieważ wolę nie zamykać i otwierać innego terminala lub uzyskiwać innego okna terminala w procesie zmiany profilu.
command-line
shortcut-keys
gnome-terminal
Radu Rădeanu
źródło
źródło
Odpowiedzi:
Aby przejść do profilu „niejawnego”:
Aby przełączyć na drugi profil:
xdotool
nie jest domyślnie instalowany w Ubuntu, więc należy go najpierw zainstalować.Oczywiście do tych poleceń można dodać niestandardowe skróty klawiaturowe .
źródło
man xdotool
więcej informacji), o które pytałem, który działa dokładnie tak, jak sobie życzę i jestem zadowolony z tej odpowiedzi, dopóki nie pojawi się coś lepszego. ;)Wiele świetnych odpowiedzi już, ale chciałem dodać jeszcze jedną odmianę za pomocą xdotool, która nie wymaga, aby pasek menu był widoczny ...
Klawisz shift kombinacja + F10 otworzy menu podręczne (odpowiednik kliknięcia terminala prawym przyciskiem myszy) i stamtąd profil można zmienić.
np.
xdotool key shift+F10 r 3
aby przejść do trzeciego profiluOdkryłem również, że ta metoda nie wymaga ustawienia opóźnienia dla xdotool (co uważam za konieczne dla metody paska menu), dlatego jest nieco szybsza.
Często zmieniam profile, więc zawijam to w funkcję:
więc mogę po prostu zadzwonić,
chp N
aby przejść do N-tego profilu.Kilka dodatkowych wskazówek i osobliwości mojej konfiguracji:
Dodając
chp
polecenie do mojego .bashrc, mogę zmusić nowe karty, aby zawsze przełączały się na domyślny profilMoje sesje ssh koduję kolorami na podstawie hosta, ale nie lubię, gdy mój alias ssh otwiera nowe karty lub okna ORAZ chcę, aby profil zmienił się z powrotem na domyślny po wyjściu z ssh. Moje rozwiązanie:
alias somehost="chp 2; ssh user@somehost; chp 1"
Daję xdotoolowi flagę
--clearmodifiers
, aby w przypadku posiadania klawisza modyfikującego (podczas otwierania karty / okna, wychodzenia z ssh itp.) Nie zakłócało to działania xdotool.Nazwy mojego profilu poprzedzam cyframi, aby po dodaniu nowego nie przesuwać pozostałych z powodu alfabetu menu profilu
źródło
--clearmodifiers
musi przyjść późniejkey
.Nie ma skrótu, który pozwala zmienić profil w terminalu (bez poruszania się po menu, jak powiedziałeś w komentarzach), bez użycia GUI. Cytując instrukcję ( stabilny , rozwój 3.9 ):
(Możesz to zaproponować jako sugestię w narzędziu do śledzenia błędów )
źródło
gnome-terminal
, naciśnijalt
i zobacz, która litera jest podświetlona dla twojej wersji językowej „Terminal” (jest to piąty element w mojej polskiej wersji, po lewej stronie „Pomoc”), a następnie użyj tej litery zalt
.Chciałem zrobić to samo i w końcu uruchomiłem skrypt, umieściłem go na moim GitHubie .
Jak wyjaśnię w pliku README.md, tak naprawdę nie przełącza się, ale ładuje konfigurację profili do profilu domyślnego. Aby to zrobić, konfiguracja każdego profilu jest zapisywana do pliku przy pierwszym uruchomieniu skryptu. Skrypt sprawia, że wydaje się, że przełączasz się między profilami, co jest dla mnie wystarczające. Mam nadzieję, że pomoże każdemu ...
źródło
W zależności od celu może ci się przydać ten skrypt: https://github.com/xyrix/gnome-terminal-profile-switcher
Robi coś w rodzaju łatki małpy i generuje nowy profil dla każdego terminala, a następnie ustawia niektóre zmienne środowiskowe, aby udostępnić program do przełączania tematu profilu dla bieżącego terminala.
Mam nadzieję, że przykładowy skrypt safe_ssh wyjaśni sprawę :-). Używam go od nieco ponad roku i pomogło mi to nie zniszczyć bazy danych firmy na żywo ^ _ ^
źródło
Jeśli masz listę serwerów, do których często uzyskujesz dostęp, uważam, że najłatwiejszym rozwiązaniem byłoby po prostu wywołanie drugiego okna tylko dla sesji tego urządzenia.
Najpierw utwórz osobny profil terminal-gnome dla każdej zdalnej lokalizacji, z której często korzystasz. Następnie w każdym profilu określ, że terminal powinien wykonać polecenie logowania SSH dla tego pola, zamiast zwykłej powłoki.
Na koniec napisz krótki skrypt, aby uruchomić nowe zdalne okno, podając identyfikator profilu.
Korzystając z tej strategii, możesz „nieskończenie” zmieniać wygląd okna terminala każdej skrzynki i wykopać je z jednego terminala „kontrolnego”. Na przykład, jeśli nazwiemy ten skrypt „rlv”, możemy odrodzić zdalne okno, po prostu wywołując skrypt o nazwie profilu.
Jeśli kiedykolwiek użyjesz grubego palca na nazwie hosta lub zaniedbujesz skonfigurowania profilu dla tego hosta, otrzymasz po prostu kolejne okno profilu domyślnego w polu lokalnym. Istnieje sposób na kodowanie skryptu, aby tego uniknąć, umieszczając login w samym skrypcie, a nie w terminalu gnome:
... ale tracisz elastyczność definiowania nazwy użytkownika logowania dla tego pola. Tę dodatkową cechę skryptu pozostawiam czytelnikowi jako ćwiczenie.
źródło
Właśnie zauważyłem, że moje oryginalne rozwiązanie zostało już odrzucone w pytaniu. Chociaż nie ma prostej metody zmiany profilu, można zmienić kolor tła / pierwszego planu za pomocą
setterm
polecenia.Tak, to
setterm -term linux -background black -foreground green
nie daje czarne tło z tekstem zielonej. Jedynym problemem jest to, że ls ma pokolorowane wyjście, więc możesz chcieć wyłączyć ls. W przeciwnym razie resetuje się do poprzedniego schematu kolorówOryginalny post : Istnieje pewien sposób na obejście. Z man gnome-terminal:
Oto przykład z mojej maszyny. Mam trzy profile: B&G (czarny na zielonym), ForPrinting (czarna czcionka, białe tło) i Default. To, co robię, jest w bieżącym typie okna
gnome-terminal --window-with-profile=ForPrinting
. Następnie mogę albo zabić stare okno z linii poleceń, albo przełączyć i zamknąć je graficznie.Profil B&G nie działa. Prawdopodobnie dlatego, że & nie jest prawidłowym znakiem, więc miej to na uwadze, nazywając profile.
źródło
Bardzo brzydkim rozwiązaniem, z którego ostatecznie skorzystałem, jest
(Spowoduje to wybranie drugiego profilu, ale można to zmienić, aby powiedzieć profil htir, zmieniając drugie polecenie „klawisz w dół” na
xdotool key --delay 50 --repeat 2 Down
.Co to robi:
Będziesz musiał zainstalować xdotool
sudo apt install xdotool
.Coś niezwykłego, że sam terminal nie pozwala na konfigurację przez terminal!
źródło
Byłoby wspaniale, gdyby gnome-terminal oferował polecenie i skrót „następny profil”; niestety tak nie jest.
Obejściem dla osób
Alt+T
niepełnosprawnych (Edycja> Preferencje> Włącz mnemoniki - niezaznaczone) jest:F10 left left down right
i wybierz profil. Ojej.źródło
To dość stary post, ale ponieważ pojawiał się, gdy szukałem rozwiązania tego samego problemu, pomyślałem, że opublikuję moje rozwiązanie.
Wiąże się to z niewielkim skryptem w Pythonie i odwzorowaniem przycisku CTRL + ALT + T, aby uruchomić skrypt zamiast po prostu uruchomić terminal.
Utwórz plik tekstowy, nazwałem mój terminal.py i upewnij się, że jest wykonywalny. Umieść w nim następujący kod. Spowoduje to otwarcie okien terminala przy użyciu wszystkich dostępnych profili w kolejności, upewniając się, że ten oznaczony jako „domyślny” jest pierwszy na liście.
Użyj narzędzia ustawień klawiatury, aby przypisać nowy skrót do tego skryptu. Dla mnie ponownie przypisałem CTRL + ALT + T, ponieważ jest to skrót, którego używam do otwierania okna terminala.
Pamiętaj, aby utworzyć kilka profili w swoim terminalu. Ten skrypt korzysta ze wszystkich twoich profili. Im więcej tworzysz, tym więcej odmian okien możesz uzyskać dostęp. Mam kilka identycznych z wyjątkiem koloru tła. Pomaga mi to rozpoznać je, gdy przeglądam je klawiszem Alt.
źródło