এক্স 11 ফরোয়ার্ডিং একাধিক tmux সেশনের সাথে কাজ করে না


9

যদি আমি tmuxস্থানীয়ভাবে একটি অধিবেশন শুরু করি এবং এটি খোলা ছেড়ে রাখি , তবে দূরবর্তীভাবে ssh করে একটি নতুন tmux অধিবেশন শুরু করুন (পুরানোটির সাথে সংযুক্তি করা হচ্ছে না, একটি নতুন ব্র্যান্ড স্প্যানাকৃত একটি ব্র্যান্ড) এক্স 11 ফরোয়ার্ডিং বিরতি বলে মনে হচ্ছে। আমি অনুরূপ সমস্যার জন্য এই চেষ্টাটি চেষ্টা করেছি screenতবে কোনও ফল লাভ হয়নি ...

আমি যখন একটি জিইউআই অ্যাপ্লিকেশন চালু করার চেষ্টা করি তখন ত্রুটি বার্তা (যেমন xeyes) এর প্রভাব হিসাবে আসে can't open display: wrong authentication। এটি আসলে কী তা আমি আসলে জানি না কারণ মনে হচ্ছে এটি কোনও ক্যারেজ রিটার্ন আউটপুট করছে এবং একটি নতুন দিয়ে ত্রুটি বার্তার অংশটি ওভাররাইট করছে ...

আপাতত আমি কেবল আমার নতুন রিমোট সেশন শুরু করার আগে স্থানীয়ভাবে শুরু হওয়া সমস্ত টিএমএক্স সেশনটি ম্যানুয়ালি বন্ধ করে দিয়েছি। মিশ্র স্থানীয় / দূরবর্তী tmuxসেশনগুলির সাথে কাজ করে X11 ফরোয়ার্ডিংয়ের কোনও উপায় আছে কি ?

উত্তর:


12

এটি আপনার পক্ষে কাজ করবে না এমন 100% নিশ্চিত নয়, তবে সেই লিঙ্কটি আমার পক্ষেও কার্যকর হয়নি এবং আমি প্রাথমিক টার্মিনাল থেকে ডায়ালপ ভেরিয়েবলটি অনুলিপি করে লিখেছিলাম export DISPLAY=${copied from outside tmux}যা ভাল কাজ করেছে - যেমন

log in ...
echo $DISPLAY # remember this
tmux a
export DISPLAY=${variable from memory}

এই লিঙ্কটি থেকে ফাংশনটি আমাকে সম্পূর্ণ আলাদা আলাদা ডিসপ্লে দিয়েছে যা কার্যকর হয়নি


"ভুল প্রমাণীকরণের" কারণে এখনও ব্যর্থ হয়েছে
ম্যাগলসগুলি

ধন্যবাদ, এটি আমাকে xdg- ওপেন ফাইল.পিডিএফ দিয়ে tmux থেকে পিডিএফগুলি খোলার অনুমতি দিয়েছে
পাস্কালহুপ থেকে

আপনি কি ssh -Yপরিবর্তে চেষ্টা করেছেন ssh -X?
ফিডমে

3

আমারও একই সমস্যা ছিল। আমার পরিস্থিতিতে, সেটিং DISPLAYযথেষ্ট ছিল না। ডিফল্টরূপে, কেবলমাত্র কোনও নতুন অধিবেশনই নয়, কিছু পরিবেশ সেটআপ করা হয় যখন tmux সার্ভারটি শুরু করার সময় (প্রথম সেশনটি শুরু করার সময়)। নিম্নলিখিতটি আমার পক্ষে কাজ করে তবে আমি সন্দেহ করি এটি অনুকূল।

ইন .tmux.conf, tmux আপনি যে পরিবর্তনশীলগুলি বাইরের পরিবেশ থেকে রাখতে চান তা মনে রাখুন make আমি স্থানীয়ভাবে জিনোম টার্মিনাল ব্যবহার এবং দূরবর্তীভাবে টার্মিনাল.এপ ব্যবহারের মধ্যে পার্থক্যগুলি ব্যবহার করেছি। তাদের মধ্যে কিছু সম্ভবত প্রয়োজন হয় না, তবে আমি নিশ্চিত না কোনটি। -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আঙ্গুলসমূহ আমার নিজের ছিলেন না কিন্তু আমি ভুলে যেখানে আমি এটা দেখেছি। আপনাকে ধন্যবাদ, যে কেউ এটি লিখেছেন, যেখানেই আপনি লিখেছেন।


শেল স্ক্রিপ্ট ছাড়া আমার জন্য কাজ করেছেন। খুব খুশি আপনাকে ধন্যবাদ।
wbg
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.