Aby rozpocząć tmux
przy każdym logowaniu do powłoki, do ~/.bashrc
(na serwerze) dodano :
if [ $TERM != "screen-256color" ] && [ $TERM != "screen" ]; then
tmux attach || tmux new; exit
fi
Chcę także zmienić tytuł okna na coś takiego user@server
(zamiast user@localhost
), gdy ssh zostanie hostem. Oto moje ~/.tmux.conf
:
set -g prefix C-a
unbind C-b
bind C-a send-prefix
set -g set-titles on
set -g set-titles-string "#T"
bind-key o split-window -v
bind-key e split-window -h
bind-key w kill-pane
set -g terminal-overrides 'xterm*:smcup@:rmcup@'
Jak widać, set-titles
ustawiono na on
, ale nie działa zgodnie z oczekiwaniami.
Więcej informacji:
Poza tmux:
$ echo $TERM
xterm
Wewnątrz tmux:
$ echo $TERM
screen
show -g
: https://clbin.com/h7oDh
tmux info
: http://sprunge.us/XHCB
A oto dzienniki, gdy tmux -vvvvv
trochę się uruchamia :
- tmux-client-8441.log: https://clbin.com/eFwFF
- tmux-out-8443.log: https://clbin.com/MSKZv
- tmux-server-8443.log: https://clbin.com/JXwRN
Jeśli skomentuję wiersze w ~/.bashrc
, z mojego laptopa, ssh na serwer, pasek tytułowy wyświetli się poprawnie ( quanta@server
), a następnie zacznij tmux
od tego również działa zgodnie z oczekiwaniami.
Ale jeśli chcę zacząć tmux
natychmiast po zalogowaniu, pasek tytułu pozostaje quanta@Ubuntu
po ssh.
AKTUALIZACJA Pt 10 maja 07:51:23 ICT 2013
Usunąłem exit
polecenie, aby nie zamykać sesji powłoki, gdy ostatnie tmux
okno jest zamknięte:
if [ $TERM != "screen-256color" ] && [ $TERM != "screen" ]; then
tmux attach || tmux new
fi
Dziwne jest to:
- ssh to server -> pasek tytułu:
quanta@Ubuntu
- odłącz od
tmux
-> przełącz pasek tytułu naquanta@server
- dołącz do
tmux
ponownie -> pasek tytułu nadal wyświetla się poprawniequanta@server
Nie jestem pewien, czy jest on powiązany ze PROMPT_COMMAND
zmienną środowiskową, czy nie:
Poza tmux
:
$ echo $PROMPT_COMMAND
echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\007"
Wewnątrz tmux
:
$ echo $PROMPT_COMMAND
echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\033\\"
tmux info
.Odpowiedzi:
Problem rozwiązany!
Aby włączyć natywne przewijanie myszą xterm
tmux
, wiele stron wiki , pytań i odpowiedzi , post na blogu sugerują dodanie wiersza:do
~/.tmux.conf
. I to jest winowajca.Aby zezwolić na tytuły Xterm w oknie terminala, musisz również dodać
XT
flagę, coś takiego:Źródło: http://opennomad.com/content/goodbye-screen-hello-tmux
źródło
rxvt
ustawienie toset -ga terminal-overrides ",rxvt*:XT"
-a
opcji z,set
aby dołączyć przesłonięcia smcup / rmcup. To naprawi inne dziwne problemy, takie jak niemożność prawidłowego ustawienia kształtu kursora.Przeszedł przez ten wątek z listy dyskusyjnej tmux-users. Wątek został zatytułowany: set-titles nie działa . W tym wątku jest kilka rzeczy do wypróbowania. Jest czystsza wersja wątku .
Zasoby XTerm
Na początek ostatecznym rozwiązaniem było dodanie następującego wiersza do pliku zasobów XTerm
~/.Xresources
:Debugowanie wskazówek Tmux
W tym wątku było również kilka wskazówek dotyczących debugowania, które również mogą ci pomóc.
pełny tmux
tmux -vvvvv
vi foo
Po wykonaniu tej czynności powinieneś mieć 3 pliki, takie jak te:
informacje o tmux
źródło
XTerm*allowSendEvents: true
nie działało Pliki dziennika zostały przesłane. Zobacz moje zaktualizowane pytanie.