Benzer bir sorun yaşadım. Benim durumumda, ayar DISPLAY
yeterli değildi. Varsayılan olarak, ortamın bir kısmı yalnızca yeni bir oturumu değil, tmux sunucusunu başlatırken (ilk oturumu başlatırken) ayarlanır. Aşağıdakiler benim için işe yarıyor, ama bunun en uygun olduğundan şüpheliyim.
İçinde .tmux.conf
, tmux'u dış ortamdan korumak istediğiniz değişkenleri hatırlayın. Yerel olarak Gnome Terminali ile uzaktan Terminal.app kullanarak farklı olanları kullandım. Bazıları muhtemelen gerekli değildir, ama hangisinden emin değilim. -g
Bayrak doğru olmayabilir.
set -g update-environment "\
CLUTTER_IM_MODULE \
DBUS_SESSION_BUS_ADDRESS \
DBUS_SESSION_BUS_ADDRESS \
DEFAULTS_PATH \
DESKTOP_AUTOSTART_ID \
DESKTOP_SESSION \
DISPLAY \
GDMSESSION \
GNOME_DESKTOP_SESSION_ID \
GPG_AGENT_INFO \
GTK_IM_MODULE \
GTK_MODULES \
SESSION_MANAGER \
SSH_AGENT_PID \
SSH_ASKPASS \
SSH_AUTH_SOCK \
SSH_CONNECTION \
WINDOWID \
WINDOWPATH \
XAUTHORITY \
XDG_CONFIG_DIRS \
XDG_CURRENT_DESKTOP \
XDG_DATA_DIRS \
XDG_MENU_PREFIX \
XDG_RUNTIME_DIR \
XDG_SEAT \
XDG_SESSION_DESKTOP \
XDG_SESSION_ID \
XDG_SESSION_TYPE \
XDG_VTNR \
XMODIFIERS \
"
"Güncelleme ortamı" adına rağmen, ayar aslında ortamı değiştirmiyor gibi görünüyor. Ancak bunu kullanarak geri alabilirsiniz tmux show-environment
. Bu yüzden benim ortamımı güncellemek için kullandım .zshrc
:
zshrc_restore_x11_vars()
{
if [[ -z $TMUX ]]
then
return 0
fi
local tmux_env="$(tmux show-environment)"
for var_line in ${(f)tmux_env}
do
if [[ $var_line == -[A-Za-z_]* ]]
then
local var=${var_line#-}
unset $var
elif [[ $var_line == [A-Za-z_]*'='* ]]
then
export $var_line
fi
done
}
precmd()
{
zshrc_restore_x11_vars
}
preexec()
{
zshrc_restore_x11_vars
}
tmux show-environment -s
Muhtemelen kullanmak daha iyi olurdu. Ama man tmux
bu cevabı yazmak için bir kısmını tekrar okuyana kadar bunu bilmiyordum .
Yine de, mevcut bir oturumu kullanırken bazen ayırmak ve yeniden bağlamak zorundayım. Her ne kadar öncekinden daha az can sıkıcı olsa da.
Tam açıklama: kullanma fikri tmux show-environment
de precmd
ve preexec
kancalar kendi değildi, ama onu nerede gördüğünü unutuyorum. Bunu kim yazmış olursa olsun, nerede yazmış olursanız olun teşekkür ederim.