मुझे भी ऐसी ही समस्या का समाधान करना पड़ा था। मेरी स्थिति में, सेटिंग DISPLAY
पर्याप्त नहीं थी। डिफ़ॉल्ट रूप से, कुछ वातावरण सेट किया जाता है जब tmux सर्वर शुरू होता है (जब पहला सत्र शुरू होता है), न कि केवल कोई नया सत्र। निम्नलिखित मेरे लिए काम करता है, लेकिन मुझे संदेह है कि यह इष्टतम है।
में .tmux.conf
, tmux उन चरों को याद रखें जिन्हें आप बाहरी वातावरण से रखना चाहते हैं। मैंने उन लोगों का उपयोग किया, जो स्थानीय रूप से गनोम टर्मिनल का उपयोग कर रहे थे और दूर से टर्मिनल.एप्प का उपयोग कर रहे थे। उनमें से कुछ शायद आवश्यक नहीं हैं, लेकिन मुझे यकीन नहीं है जो। -g
झंडा सही नहीं हो सकता है।
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 \
"
"अद्यतन-पर्यावरण" नाम के बावजूद, सेटिंग वास्तव में पर्यावरण को बदलने के लिए प्रतीत नहीं होती है। हालाँकि, आप इसका उपयोग करके पुनः प्राप्त कर सकते हैं tmux show-environment
। इसलिए मैंने इसे अपने वातावरण में अद्यतन करने के लिए उपयोग किया .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
शायद का उपयोग करना बेहतर होता। लेकिन मुझे इस बारे में नहीं पता था कि जब तक मैं man tmux
इस उत्तर को लिखने के लिए फिर से नहीं पढ़ता ।
फिर भी, मुझे एक मौजूदा सत्र का उपयोग करते समय, कभी-कभी अलग करना होगा। हालांकि यह पहले की तुलना में बहुत कम कष्टप्रद है।
पूर्ण प्रकटीकरण: प्रयोग का विचार tmux show-environment
में precmd
और preexec
हुक अपने ही नहीं था, लेकिन मैं भूल जाते हैं जहां मैं इसे देखा था। शुक्रिया, जिसने भी लिखा है, जहां भी लिखा है।