Jak zmienić tytuł terminatora tytuł terminalu, ZSH na Debianie?

14

Nie wiem, czy powinienem to zadać tutaj, czy na unix.stackexchange.com, znalazłem to pytanie tutaj .

Moje pytanie jest podobne, chcę zmienić tytuł terminala, używam dystrybucji opartej na Debianie, Terminator i ZSH, oh-my-zsh tytuł był w porządku z bash, ale kiedy przeniosłem się do ZSH, pokazuje się /bin/zshjako tytuł.

Lynob
źródło
@ DaniëlW.Crompton naprawdę? to jest dupek? jeśli tak, to teraz go zamknę, podłączyłem do tego pytania, więc wiem, że tam jest, ale nie wiedziałem, że to duplikat, ponieważ używam innego systemu operacyjnego i emulatora
Lynob
Czy wypróbowałeś to, co poradziłeś w pytaniu, z którym się łączysz?
Daniël W. Crompton
2
@ DaniëlW.Crompton tak, echo -ne "\e]1;this is the title\ai echo -ne "\e]1;$PWD\a"nie daję błędów, ale nie działają, próbowałem odznaczyć wszystko, chyba że czegoś mi brakuje
Lynob
1
Czy próbowałeś echa -ne "\ e] 0; $ PWD \ a" z 0 zamiast 1?
Daniël W. Crompton

Odpowiedzi:

13

Ustawiasz tytuł okna za pomocą sekwencji ucieczki xtem, w większości implementacji pierwsza będzie działać najlepiej:

echo -en "\e]0;string\a" #-- Set icon name and window title to string
echo -en "\e]1;string\a" #-- Set icon name to string
echo -en "\e]2;string\a" #-- Set window title to string

EDYCJA: Powyższe ustawia tytuł tylko raz. Aby ustawić zsh tak, aby zawsze wyświetlał żądło w tytule, dodajesz do swojego .zprofilekatalogu domowego:

case $TERM in
    xterm*)
        precmd () {print -Pn "\e]0;string\a"}
        ;;
esac
Daniël W. Crompton
źródło
2
powiedziałem wcześniej echo -ne "\e]0;$PWD\a"prace, ale kiedy zakończyć powłokę, to przestaje działać ... Próbowałem wpisałeś odpowiedź i ja dostać zsh: command not found: stringaa zsh: command not found: e]1i tak dalej, wszystkie z nich
Lynob
1
Zaktualizowano odpowiedź
Daniël W. Crompton,
Aby zamienić katalog domowy w $ PWD na ~I użyłem precmd () {print -Pn "\e]0;${PWD/$HOME/\~}\a"}(powłoka Z)
Maksym Ganenko,
13

Poniższe działało dla mnie, aby zmienić nazwę każdej karty w gnome-terminal. Dodałem następujący kod do mojego pliku ~ / .zshrc .

precmd () { print -Pn "\e]0;$TITLE\a" }
title() { export TITLE="$*" }

Spowoduje to utworzenie funkcji tytułowej do zmiany nazwy każdej karty.

Uwaga: jeśli używasz oh-my-zsh , musisz wyłączyć jego polecenie automatycznego tytułu. Możesz to zrobić, usuwając komentarz z tego wiersza w pliku ~ / .zshrc :

DISABLE_AUTO_TITLE="true"
Steve
źródło
5
DISABLE_AUTO_TITLE = „true” załatwiło sprawę. Dziękuję Ci.
Rakesh Gopal,
4

Powinno to działać niezależnie od użytej powłoki:

printf "\033];%s\07\n" "hello world"
jlliagre
źródło
2

Wcześniejsze odpowiedzi nie do końca działały. Nie bez niektórych czkawek (nie zawsze odświeżanych czy coś w tym rodzaju). Może to wynikać z faktu, że miałem ZSH, bez oh-my-zsh. Na szczęście nauczyłem się chpwd, więc:

chpwd() {
  [[ -t 1 ]] || return
  case $TERM in
    sun-cmd) print -Pn "\e]l%~\e\\"
      ;;
    *xterm*|rxvt|(dt|k|E)term) print -Pn "\e]2;%~\a"
      ;;
  esac
}
  1. chpwd jest wywoływany przy każdej zmianie katalogu.
  2. przy pierwszym uruchomieniu Xterm (lub innych) nie liczy się to jako zmiana katalogu, więc umieść wywołanie chpwd bezpośrednio w .zshrc

Ponieważ nie używam oh-my-zsh , nie wiem, czy to tam działa, ale chyba, że ​​się zmieniły i nadpisały chpwd(w takim przypadku zastąpisz ich nadpisywanie: D), powinno.

LAFK mówi Przywróć Monikę
źródło
-1

Cóż, możesz zrobić skrypt, który wyświetla okno i ustawia nazwę tak, jak chcesz. Uruchom skrypt, aby wyświetlić okno z Twoim nazwiskiem. Możesz także ustawić pozycję X, Y i rozmiar okna. Możesz zrobić kilka i mieć okna nazwane na każdą okazję.

klif 2310
źródło
//, masz coś bardziej szczegółowego?
Nathan Basanese
Minęło ponad 12 lat, odkąd napisałem te skrypty. Nie chcę podawać złych informacji, ale myślę, że wszystko to zostało zrobione przy użyciu opcji xterm. Więcej informacji znajdziesz na stronie MAN pod kątem xterm. Mogę gdzieś mieć skrypty, ale Harvey zostawił cały mój stary dysk na stosie, na którym zostały one zrzucone, aby ich nie uszkodzić. Po zakończeniu naprawy mogę to zaktualizować.
cliff2310