To trochę kontynuacja tego pytania . Pracuję w tcsh na ekranie GNU w xterm .
Mam następujące .cshrc:
alias res_t 'xtset -t %h:%d "(%u:%g)" %e' # reset titlebar
res_t # reset title right now
alias precmd res_t
I to działa dobrze!
Jednak po uruchomieniu ekranu widzę, że tytuł nie jest aktualizowany w bieżącym katalogu. Jak mogę zaktualizować tytuł ekranu Xterm?
gnu-screen
xterm
tcsh
Nathan Fellman
źródło
źródło
Odpowiedzi:
Możesz ustawić tytuł okna xterm, dodając go do swojego (
.tcshrc
lub.cshrc
zastąp swój obecnyprecmd
alias):Upewnij się, że jest to jedyny alias precmd w twoim
.cshrc
i.tcshrc
plikach podczas korzystania z tego. Ta metoda wyświetla dla mnie bieżący katalog jako tytuł okna w terminalu gnome niezależnie od tego, czy sesja ekranowa GNU jest otwarta.Moja odpowiedź była na tym oparta .
źródło
Rozumiem, że używasz tcsh, więc to prawdopodobnie nie zadziała ... Na wypadek, gdyby ktoś szukał bashowego sposobu na zrobienie tego.
Jeśli twój system (lokalny / zdalny) działa w trybie bash, możesz użyć zmiennej środowiskowej „PROMPT_COMMAND”, aby ustawić tytuł okna. PROMPT_COMMAND jest ewaluowany przed wyświetleniem monitu.
(w twoim .bashrc):
Wyjaśnienie:
Powoduje to, że powłoka dołącza się do pliku historii za każdym razem, gdy polecenie jest wykonywane, a nie po zakończeniu całej powłoki. (Nie ma to związku z tym przykładem).
To echo kodu ucieczki „\ 033] 0;” który ustawia tytuł okna ze zmiennymi „user” @ „host” (usuwając najdłuższe dopasowanie od prawej do pierwszej „.”), a następnie katalog roboczy (zastępując „~” zamiast „$ HOME”).
Powyższa sztuczka będzie działać z każdą aplikacją terminalową, która obsługuje dynamiczną zmianę tytułu okna (co robią iTerm, Terminal.app, urxvt, aterm, eTerm. Xterm itp.). Możesz także zajrzeć do zmiennej powłoki „TITLEBAR” w dokumentacji bash, jest ona podobna.
źródło
Powinno to działać w dowolnej powłoce, ale jest to brudny hack .screenrc. Przejmuje linię hardstatus do pracy, co może być nie do przyjęcia dla niektórych użytkowników. Ale działa w gnome-terminal na najnowszym Ubuntu, nawet bez poniższej linii termcapinfo . Niektóre sytuacje mogą wymagać głębszych poprawek (na przykład nie testowałem na PuTTY).
Znaleziono pod tym linkiem .
źródło
źródło
screen
hardstatus
odpowiednio ustawioną zmienną ekranową i obsługuje termcap / terminfohs|ts|fs|ds
.Ta strona (do której odsyłam powyżej) jest rozwiązaniem, jednak musisz upewnić się, że ciąg terminala wpisu jest zgodny z ciągiem identyfikatora terminala (tj. Do czego ustawiona jest zmienna TERM), w przeciwnym razie nie przyniesie to żadnego efektu.
Oto podsumowanie tego, co zrobiłem, co zadziałało dla mnie po latach, gdy nie zainwestowałem wystarczająco dużo czasu, aby to zrozumieć:
Sprawdź, jaki jest ciąg identyfikatora terminala, uruchamiając:
Prawdopodobnie powie coś takiego jak „xterm”, „linux” lub „rxvt”.
Teraz dodaj następujący wiersz do pliku .screenrc (lub utwórz go, jeśli nie istnieje) znajdującego się w katalogu głównym (~ / .screenrc):
Kluczem do sukcesu jest upewnienie się, że „xterm” jest ciągiem identyfikacyjnym twojego TERM, który masz powyżej. Możesz wykonać wiele wierszy dla każdego używanego typu terminu.
Na przykład mam to jako plik .screenrc, ponieważ używam zarówno xterms, jak i typu „linux”, gdy SShing do pudełka:
Mam nadzieję, że to pomaga i jest całkowicie niezależne od powłoki. Pamiętaj, że jeśli uruchamiasz screen jako root, musisz zmodyfikować ~ root / .screenrc oprócz własnego pliku ~ / .screenrc w ten sposób.
źródło
Instrukcje tutaj pozwoliły mi zaktualizować tytuł w rxvt z bash dla mnie - co może nie jest żadną pomocą, ale pomyślałem, że warto to zbadać (sekcja Informacyjny pasek stanu, jeśli link nie przeskakuje do prawej części strony)
źródło