এক্সটার্ম চলমান স্ক্রিনে আমি কীভাবে স্বয়ংক্রিয়ভাবে শিরোনাম আপডেট করতে পারি?


14

এই একটি ফলোআপ একটি বিট এই প্রশ্নের । আমি কাজ করছি tcsh শেল গনুহ মধ্যে পর্দা একটি ইন xterm

আমার .cshrc এ নিম্নলিখিতটি রয়েছে:

alias res_t 'xtset -t %h:%d "(%u:%g)" %e'       # reset titlebar
res_t                                           # reset title right now
alias precmd res_t

এবং এটি সূক্ষ্ম কাজ করে!

যাইহোক, আমি যখন স্ক্রিন চালাই তখন দেখতে পাচ্ছি যে শিরোনামটি বর্তমান ডিরেক্টরিটি দিয়ে আপডেট হয় না। আমি কীভাবে এক্সটার্ম শিরোনাম স্ক্রিন আপডেট করতে পারি?


আপনি কি এমন কোনও সমাধান খুঁজে পেয়েছেন যা এখনও আপনার জন্য কাজ করেছিল?
ট্রে হানার

না। আমি প্রস্তাবিত উত্তরগুলি চেষ্টা করেছিলাম কিন্তু সেগুলি কার্যকর হয়নি। এ কারণেই আমি তাদের গ্রহণ করি নি বা তাদের উন্নতও করি নি।
নাথান ফেলম্যান

উত্তর:


4

আপনি এটিতে নিজের যোগ করে .tcshrcবা .cshrcআপনার বর্তমান নামটি প্রতিস্থাপন করুন precmd) এক্সটার্ম উইন্ডো শিরোনাম সেট করতে পারেন :

alias precmd 'echo -n "\033]0;${PWD}\a"'

এটি ব্যবহার করার সময় এটি আপনার .cshrcএবং .tcshrcফাইলগুলির মধ্যে একমাত্র প্রাকদ্বার উলাম is এই পদ্ধতিটি জিএনইউ স্ক্রিন সেশনটি উন্মুক্ত কিনা তা নির্বিশেষে উভয় এক্সটারমে আমার জন্য উইন্ডো শিরোনাম হিসাবে বর্তমান ডিরেক্টরিটি প্রদর্শন করে।

আমার উত্তর এই উপর ভিত্তি করে ছিল ।


3

আমি বুঝতে পেরেছি আপনি টিসিএস ব্যবহার করছেন তাই এটি সম্ভবত কাজ করবে না ... ঠিক যদি কেউ এই কাজ করার জন্য বাশ উপায় খুঁজছে।

যদি আপনার সিস্টেমগুলি (স্থানীয় / দূরবর্তী) বাশ চলছে তবে আপনি উইন্ডো শিরোনাম সেট করতে "PROMPT_COMMAND" পরিবেশ পরিবর্তনশীল ব্যবহার করতে পারেন। একটি প্রম্পট প্রদর্শিত হওয়ার আগে PROMPT_COMMAND খালি করা হবে।

(আপনার .bashrc এ):

export PROMPT_COMMAND='history -a && echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/$HOME/~}\007'

ব্যাখ্যা:

'history -a'

পুরো শেলটি সম্পূর্ণ হওয়ার পরিবর্তে প্রতিটি কমান্ড সমাপ্ত হওয়ার পরে এটি শেলটিকে ইতিহাসের ফাইলে সংযুক্ত করতে সেট করে। (এটি এই উদাহরণের সাথে সম্পর্কিত নয়)।

'echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/$HOME/~}\007"'

এটি পলায়নের কোড "\ 033] 0" প্রতিধ্বনিত করে; যা "ব্যবহারকারী" @ "হোস্ট" ভেরিয়েবলগুলির সাথে উইন্ডো শিরোনাম সেট করে (প্রথম থেকে ডান থেকে দীর্ঘতম ম্যাচ অপসারণ "।") এবং তারপরে কার্যকরী ডিরেক্টরি ('OME হোমের' জন্য '~' প্রতিস্থাপন করে)।

উপরের ট্রিকটি এমন কোনও টার্মিনাল অ্যাপ্লিকেশন নিয়ে কাজ করবে যা উইন্ডো শিরোনামের গতিশীল পরিবর্তনকে সমর্থন করে (যা আইটার্ম, টার্মিনাল.এপ, ইউআরএসভিটি, অ্যাটার্ম, ইটার্ম। এক্সটারম ইত্যাদি সব করে)। আপনি বাশ ডকুমেন্টেশনে শেল ভেরিয়েবল "TITLEBAR" সন্ধান করতে পারেন, এটি একই রকম।


1
gnuscreen এর অভ্যন্তরে এটি কাজ করবে না। অন্তত এটি আমার পক্ষে কাজ করছে না। কেন আমি এখানে :)
গিসিবি

এটা কি সাহায্য করে? aperiodic.net/sc
رین

2

এটি কোনও শেলটিতে কাজ করা উচিত তবে এটি একটি নোংরা .স্ক্রিনসিআর হ্যাক। এটি আপনার হার্ডস্ট্যাটাস লাইনটিকে কাজে লাগায়, যা কিছু ব্যবহারকারীর কাছে গ্রহণযোগ্য নয়। তবে এটি নীচে টার্মক্যাপিনফো লাইন ছাড়াই সর্বশেষ উবুন্টুতে জিনোম-টার্মিনালে কাজ করে। কিছু পরিস্থিতিতে গভীরতর টুইটের প্রয়োজন হতে পারে (উদাহরণস্বরূপ আমি পিটিটিওয়াইতে পরীক্ষা করিনি)।

# enable xterm title setting; may not be necessary on some platforms
termcapinfo xterm*|rxvt* 'hs:ts=\E]2;:fs=\007:ds=\E]2;screen\007'

# dirty hack: put xterm title escapes in the hardstatus
# this example will yield "user@host || screen Win#:(windowtitle)
defhstatus "$USER@^EH || screen ^E:(^Et)"
# now turn it off so it doesn't print in the hardstatus line
hardstatus off

# and finally, use caption as a replacement hardstatus
caption always '%{= kG}[%{G}%H%{G}][%= %{= kw}%?%-Lw%?%{R}(%{W}%n*%f%t%?(%u)%?%{R})%{w}%?%+Lw%?%?%= %{G}][%{B}%C%a %M.%d%{G}]'

এই লিঙ্কে পাওয়া গেছে ।


2
setenv TITLE "%{\033]0;%n@%m:%~\007%}"
set prompt = "${TITLE}%n@%m:%~%#"

1
তবে চলমান অবস্থায় কি এই শিরোনামটি আপডেট করবেscreen
নাথান ফেলম্যান

1
এটি স্ক্রিন 4.00.02 + tcsh 6.12.00 দিয়ে সূক্ষ্মভাবে কাজ করে। এটি ধরে নিয়েছে যে আপনার স্ক্রিন hardstatusভেরিয়েবল যথাযথভাবে সেট হয়েছে এবং টার্মক্যাপ / টার্মিনফো সমর্থন রয়েছে hs|ts|fs|ds
ড্যারেন হল

হার্ডস্ট্যাটাস এখানে কি খেলে?
gcb

2

এই পৃষ্ঠাটি (যা উপরে লিঙ্ক করা হয়েছে) সমাধান, তবে আপনাকে অবশ্যই এটির টার্মিনাল স্ট্রিং লাইনগুলি আপনার টার্মিনালের আইডি স্ট্রিং (যেমন; ভেরিয়েবল টিআরএম সেট করা আছে) দিয়ে তৈরি করা উচিত তা নিশ্চিত করা দরকার অন্যথায় এর কোনও প্রভাব থাকবে না।

এখানে আমি কী করেছি তার একটি সংক্ষিপ্তসার, যা এই বিষয়টি খুঁজে বের করার জন্য পর্যাপ্ত সময় ব্যয় না করার বছর পরে আমার পক্ষে কাজ করেছিল:

  1. চালিয়ে আপনার টার্মিনালের আইডি স্ট্রিংটি কী তা সন্ধান করুন:

    echo $TERM
    

    এটি সম্ভবত 'xterm' বা 'লিনাক্স' বা 'rxvt' এর মতো কিছু বলবে।

  2. এখন আপনার হোমডির (~ / .screenrc) এ অবস্থিত আপনার .screenrc ফাইলটিতে (বা এটি উপস্থিত না থাকলে একটি তৈরি করুন) নীচের লাইনটি যুক্ত করুন:

    termcapinfo xterm 'hs:ts=\E]2;:fs=\007:ds=\E]2;screen\007'
    

    'Xterm' এটি আপনার TERM এর আইডি স্ট্রিং যা আপনি উপরে এসেছেন তা নিশ্চিত করে তোলার জন্য কীটি রয়েছে। আপনি ব্যবহার করেন এমন প্রতিটি পৃথক শব্দ টাইপের জন্য আপনি একাধিক লাইন করতে পারেন।

উদাহরণস্বরূপ আমার কাছে এটি আমার .স্ক্রিনআরসি ফাইল হিসাবে রয়েছে কারণ আমি বাক্সে এসশিংয়ের সময় এক্সটার্ম এবং 'লিনাক্স' শব্দ দুটিই ব্যবহার করি:

termcapinfo linux 'hs:ts=\E]2;:fs=\007:ds=\E]2;screen\007'
termcapinfo xterm 'hs:ts=\E]2;:fs=\007:ds=\E]2;screen\007'

আশা করি এটি সহায়তা করে এবং এটি পুরোপুরি শাঁস অজ্ঞাব্য। মনে রাখবেন আপনি যদি স্ক্রিনটিকে রুট হিসাবে চালনা করেন তবে আপনার নিজের ~ / .স্ক্রিনসিআরসি ফাইলের মতো আপনার নিজের পাশাপাশি / রুট / .স্ক্রিনসিআরসি পরিবর্তন করতে হবে।


1

নির্দেশাবলী এখানে আমাকে আমার জন্য ব্যাশ থেকে rxvt শিরোনাম আপডেট করার জন্য অনুমতি দেওয়া - যা prehaps কোন সাহায্যের কিন্তু আমি এটা তদন্ত মূল্য হতে পারে (অধ্যায় তথ্যমূলক স্ট্যাটাস যদি লিংক পৃষ্ঠার ডান অংশ ঝাঁপ না)

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