W Ubuntu 14.10, gdybym miał otwartych wiele kart terminalu, mógłbym kliknąć kartę terminalu prawym przyciskiem myszy i zmienić jej nazwę. W Ubuntu 15.04 nie mogę znaleźć tej funkcji.
Czy istnieje prosty sposób na odzyskanie go?
To jest aktualna wersja:
$ gnome-terminal --version
GNOME Terminal 3.14.2
gnome-terminal
15.04
Tomek
źródło
źródło
gnome-shell
. Zniknęło także menu otwierające nowy terminal w nowym oknie lub zakładce (ale nadal możesz to zrobić za pomocą skrótu. Dlaczego ?! Zamień wszystko na duży inteligentny przycisk: kliknięcie i robi wszystko!).bashrc
Rozwiązanie proponowane przez Kirby pracował dla mnie:następnie z mojego monitu:
$ set-title test-title
źródło
set-title "longer and "
:echo $PS1 \[\e]0; \u@\h: \w \a\]\u@\h:\w\[\033[m\]$(__git_ps1)$ \e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a
Control + Z
, a następnieset-title X
,fg
aby wznowić proces.Nie mogę uwierzyć, że usunęli taką przyjazną dla użytkownika funkcję, taką jak ta.
Przechodzę na ROXTerm ( http://roxterm.sourceforge.net ), który działa dobrze. Jest pakowany w Ubuntu:
Następnie pozwól dinozaurowi iść własną drogą ;-)
źródło
Wypróbowałem RoxTerm jak sugerowałem powyżej, z dobrymi wynikami. Ale zdecydowałem się na terminal MATE, który jest częścią projektu MATE, będącego kontynuacją Gnome 2, 15.04:
Ten terminal jest oparty na kodzie Gnome Terminal.
Komentarz: Trudno jest zrozumieć sposób myślenia deweloperów Gnome Terminal. Dużo się tam dyskutuje na temat „jak” nazwać karty terminali i jak trudno jest to naprawić. Jeśli tak, to dlaczego utrudniasz użytkownikowi ich nazwanie? Niezbyt mądry.
źródło
Teraz badałem to przez większą część dnia i wreszcie znalazłem sposób na ustawienie tego tytułu. Odbywa się to poprzez sekwencje specjalne rozpoczynające się od \ e] 0; i zakończ znakiem BEL (= \ 007 = \ a). W przeciwieństwie do tego, co powiedziałem powyżej, komunikacja z powłoki z powrotem do aplikacji terminalowej jest możliwa, bardzo ograniczona, dzięki takim sekwencjom ucieczki (jest ich jeszcze kilka).
O tym z góry:
To może działać, ale nie zawsze.
PROMPT_COMMAND
jest zmienną, której zawartość jest wykonywana za każdym razem, gdy wysyłasz polecenie, więc wysyła również tę sekwencję zmiany znaczenia. Można to jednak zastąpić sekwencją zmiany znaczenia w zmiennej PS1, która ustawia wiersz poleceń. Dlatego powyższe nie miało tutaj żadnego wpływu.Ze starszej instalacji Ubuntu wziąłem to, co ustawia wiersz polecenia (prawa część, po
]
) i wysyła również wymaganą sekwencję zmiany znaczenia (lewa część, do włącznie]
):Prawdopodobnie działa to lepiej, ponieważ nie trzeba za
$PROMPT_COMMAND
każdym razem interpretować . Ma także wiele innych opcji, ponieważ Bash ma tutaj więcej sekwencji specjalnych, np.\u
Dla bieżącej nazwy użytkownika,\W
dla bieżącej nazwy katalogu lub\w
dla całej ścieżki bieżącego katalogu roboczego, opcjonalnie przycinanych do ostatnich kilku według liczby w$PROMPT_DIRTRIM
. Zobacz rozdziałPROMPTING
na stronie podręcznika użytkownika Bash. Zwróć także uwagę, że sekwencja ucieczki musi być dodatkowo otoczona przez\[
i\]
tutaj.Aby ustawić stały tytuł, działa to:
Cieszyć się!
Podczas mojego dochodzenia próbowałem również zrozumieć kod źródłowy terminala gnome, co prowadzi do kodu źródłowego vte, i tam wsparcie dla ustawiania tytułu i czytania sekwencji ucieczki jest uważane za zagrożenie bezpieczeństwa: patrz tutaj (przypadek 20, przypadek 21) i tutaj („Raportowanie tytułu okna”).
źródło
PS1
innych zastosowań, takich jak ustawienie niestandardowego wiersza polecenia. Właśnie próbowałem dodać sekwencję zmiany znaczenia do istniejącejPS1
zawartości i wydaje się, że działa. W ten sposób:PS1+="\[\e]0;YOUR TITLE GOES HERE\a\]\u@\h:\w\$ "
Ustawienie $ PROMPT_COMMAND jak pokazano powyżej ma tutaj zerowy efekt. Nic dziwnego, ponieważ Bash działa wewnątrz terminala, a procesy nadrzędne (tutaj: gnome-terminal) nie mogą odczytać środowiska dziecka w systemie operacyjnym typu unix. Używanie czegoś prostszego, na przykład
Wykonuje echo bla , nic innego się nie dzieje.
Edycja: trzeba zawinąć to w sekwencje specjalne, zobacz moją drugą odpowiedź. Mimo że czytanie dziecięcego środowiska nie jest możliwe, komunikacja z rodzicem odbywa się poprzez te sekwencje.
W błędzie Gnome 740188 mówią o zdefiniowaniu funkcji title () w .bashrc. Inny dla każdej otwartej karty? Ciężkie brzydkie hakowanie, jeśli to możliwe!
Nawet inne objaśnienia na temat Stackexchange mówią o ustawieniu $ PS1 (i bądź pozytywnie oceniany). Niestety nie, to nie jest tytuł, to wiersz polecenia.
W skrócie: zawiedli to nie do naprawienia, aby zaoszczędzić trochę miejsca w oknie dialogowym preferencji. o mój Boże
Teraz jedyną szansą na cofnięcie decyzji programisty jest rozpalenie poważnej burzy, w przeciwnym razie po prostu zamkną twój raport o błędach w kilka sekund (wiele razy próbowałem wiele razy). Jak moglibyśmy stworzyć tę gówno?
źródło