Jeśli rozpocznę tmux
sesję lokalnie i pozostawię ją otwartą, następnie ssh wejdzie zdalnie i rozpocznę nową tmux
sesję (nie łącząc się ze starą, marką lecącą nowej sesji) przekazywanie X11 wydaje się zepsuć. Próbowałem tego obejścia dla podobnego problemu, screen
ale bezskutecznie ...
Komunikat o błędzie podczas próby uruchomienia aplikacji GUI (podobnej xeyes
) jest efektem can't open display: wrong authentication
. Właściwie to nie wiem na pewno, ponieważ wydaje się, że generuje powrót karetki i zastępuje część komunikatu o błędzie nowym ...
Na razie po prostu przeglądam i ręcznie zamykam wszystkie sesje tmux, które rozpocząłem lokalnie przed rozpoczęciem mojej nowej sesji zdalnej. Czy jest jakiś sposób, aby przekazywanie X11 działało z mieszanymi tmux
sesjami lokalnymi / zdalnymi ?
źródło
ssh -Y
zamiastssh -X
?Miałem podobny problem. W mojej sytuacji ustawienie
DISPLAY
nie wystarczyło. Domyślnie niektóre środowiska są ustawione podczas uruchamiania serwera tmux (podczas rozpoczynania pierwszej sesji), a nie tylko każda nowa sesja. Poniższe działa dla mnie, ale wątpię, aby było optymalne.W
.tmux.conf
, spraw, aby tmux zapamiętywał zmienne, które chcesz zachować ze środowiska zewnętrznego. Użyłem tych, które różniły się między lokalnie za pomocą Gnome Terminal i zdalnie za pomocą Terminal.app. Niektóre z nich prawdopodobnie nie są konieczne, ale nie jestem pewien, które.-g
Flaga nie może być prawidłowa.Pomimo nazwy „update-environment” ustawienie wydaje się nie zmieniać środowiska. Możesz go jednak odzyskać za pomocą
tmux show-environment
. Użyłem go więc do aktualizacji środowiska w moim.zshrc
:Korzystanie
tmux show-environment -s
prawdopodobnie byłoby lepsze. Ale nie wiedziałem o tym, dopóki nie przeczytałem ponownie części,man tmux
aby napisać tę odpowiedź.Mimo to muszę czasami odłączać i ponownie podłączać, korzystając z istniejącej sesji. Chociaż jest to znacznie mniej irytujące niż wcześniej.
Pełne ujawnienie: Pomysł wykorzystania
tmux show-environment
wprecmd
ipreexec
haki nie był mój własny, ale nie pamiętam gdzie to widziałem. Dziękuję każdemu, kto to napisał, gdziekolwiek to napisałeś.źródło