স্ক্রিন ব্যবহার করার সময় এক্সটার্ম (পটিটিওয়াই) উইন্ডো শিরোনাম সেট করবেন?


12

আমি screenআমার xtermশিরোনাম সেট করার চেষ্টা করছি । আমার বাইরে এটি কাজ করছে screen, তবে screenআমি যখন এটি শুরু করেছি তখন যা শিরোনাম ছিল তা রাখে। এখানে আমার .bashrc:

ফাংশন bash_prompt_command () {
    # পিডাব্লুডির কতটি অক্ষর রাখা উচিত
    স্থানীয় pwdmaxlen = 25
    # ইঙ্গিত করুন যে ডিয়ার কাটা হয়েছে
    স্থানীয় ট্রাঙ্ক_সাইকম্বল = ".."
    স্থানীয় দির = $ {পিডব্লিউডি ## * /
    pwdmaxlen = $ ((pwdmaxlen <$ {# দির})? $ {# দির}: pwdmaxlen))
    NEW_PWD = $ {গণপূর্ত / # $ হোম / \ ~}
    স্থানীয় pwdoffset = set (($ {# NEW_PWD} - pwdmaxlen))
    যদি [$ {pwdoffset} -gt "0"]
    তারপর
        NEW_PWD = $ {NEW_PWD: $ pwdoffset: $ pwdmaxlen}
        NEW_PWD = $ {trunc_symbol} / $ {NEW_PWD # * /}
    ফাই

    NEW_PWD রফতানি করুন
}

PROMPT_COMMAND = bash_prompt_command
# রঙিন চার্ট @ http://wiki.archlinux.org/index.php/Color_Bash_Prompt
কেস "{ER TERM}" ইন
    "Xterm")
        টাইটেলবার = '\ [\ 033] 0; \ u @ \ এইচ> $ {NEW_PWD} \ 007 \]'
        PS1 = "$ {শীর্ষকবারে} \ [\ ই [1; 32m \] [\ ই [0; 36m \] \ তোমার দর্শন লগ করা \ ই [1; 32m \] @ \ ই [1; 33m \] \ জ \ ই [ 1; 32 মি \]] \ ই [0; 37 মি \] \ $ {NEW_PWD} / \ ই [1; 32 মি \] \ $ \ [\ ই [0 মি "
        ;;
    "স্ক্রীন")
        টাইটেলবার = '\ [\ 033] 0; \ u @ \ এইচ> $ {NEW_PWD} \ 007 \]'
        চট্টগ্রাম সিটি কর্পোরেশন = '\ [\ EK \ ই \\\]
        পিএস 1 = "$ {টাইটেলবার} \ [\ ই [1; 32 মি \] [\ ই [0; 36 মি \] \ উ \ ই [1; 32 মি \]] \ ই [0; 37 মি \] \ $ {NEW_PWD} / \ ই [1; 32 মি \] \ $ $ {ইসি} \ [\ ই [0 মি "
        ;;
    *)
        PS1 = "\ [\ ই [1; 32m \] [\ ই [0; 36m \] \ তোমার দর্শন লগ করা \ ই [1; 32m \] @ \ ই [1; 33m \] \ জ \ ই [1; 32m \ ]] \ ই [0; 37 মি \] \ $ {NEW_PWD} / \ ই [1; 32 মি \] \ $ \ [\ ই [0 মি "
    ;;
esac

এবং এখানে আমার .screenrc:

হার্ডস্ট্যাটাস সর্বদা
হার্ডস্ট্যাটাস স্ট্রিং '% {= কেজি} [% {ওয়াই}% এইচ% {জি}] [% =% {= কেডব্লু}%?% - এলডব্লু%?% {= বি কেআর} (% {ডব্লু}% n-% t%? (% u)%?% {= b কেআর})% {= কেডব্লু}%?% + এলডব্লু%?%?% =% {জি}] [% {ওয়াই%%%% {জি}]% {g} [% {বি}% মি।% d।% ওয়াই% {জি}% সি% {জি}] '

টার্মক্যাপিনফো xterm | xterms | xs | rxvt ti @: te @
টার্মক্যাপিনফো xterm 'hs: ts = \ E] 2;: fs = \ 007: ds = \ E] 2; স্ক্রীন \ 007'

আলটস্ক্রিন চালু আছে
শেলিটল '$ | বাশ'

আমি কী ভুল করছি?

আপডেট (19 আগস্ট 2010): সমস্যাটি হ'ল আপনি সেট করার সময় আপনি পর্দার মধ্যে থেকে টার্মিনালের শিরোনাম আপডেট করতে পারবেন না alwayslastline। সুতরাং আমার সমাধানটি হ'ল আমার পর্দা সেশনের জন্য পূর্বনির্ধারিত, দরকারী, শিরোনামটি ছেড়ে দেওয়া এবং স্থির করা। আমার আপডেট হয়েছে .bashrcএবং http://bitbucket.org/jsumners/rcfiles/src.screenrc এ পাওয়া যাবে ।

উত্তর:


4

পর্দার কোডগুলি পর্দার অভ্যন্তরে পৃথক

এটি পর্দার বাইরে:

PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'

এই অভ্যন্তরীণ পর্দার সমতুল্য:

PROMPT_COMMAND='echo -ne "\033_${USER}@${HOSTNAME}: ${PWD}\033\\"'

আপনার কেস $ ER TERM} = "স্ক্রিন" শিরোনাম বারে পরিবর্তন করা হচ্ছে

TITLEBAR='\[\033_\u@\h > ${NEW_PWD}\033\\\]'

আপনার সমস্যা সমাধান করবে।


এটি কাজ করছে না। আমি বুঝতে পারছি না কেন।
জেমস সামনার্স

আমি স্থির করেছি যে hardstatus alwayslastlineআমি সেটিংটি শিরোনাম সেট করা থেকে screenবিরত রাখি । এখন যদি আমি ঠিক করতে পারি যে একই সাথে উভয় কীভাবে করতে হয়। screenxterm
জেমস সামনার্স

এটি কি কারণ আপনার হার্ডস্ট্যাটাসের এতে% টি (শিরোনামের জন্য) রয়েছে?
crb

নাঃ। সবেমাত্র এটি সরিয়ে ফেলুন এবং একই ফলাফল পান। আমি বিশ্বাস করি screenযে উইন্ডো শিরোনাম সেট করে এবং তারপরে প্রোগ্রামটি চালু করে তার জন্য আমি একটি উপকরণ সেট করতে যাব । এবং তারপরে ব্যবহার করার সময় গতিশীল টার্মিনাল শিরোনাম ছেড়ে দিন screen। :(
জেমস সামার্স

1
bugs.launchpad.net/byobu/+bug/338722/comments/10 বলছে এটি পর্দার মধ্যে একটি সীমাবদ্ধতা
অগ্নুল

7

প্রকৃতপক্ষে, পর্দার মধ্য দিয়ে চলে যাওয়া সরাসরি এক্সটার্মে পালানোর সিকোয়েন্সগুলি প্রেরণের একটি উপায় রয়েছে। এটি সন্ধান করা সহজ ছিল না তবে স্ক্রিন কোড (src / ansi.c) থেকে আমি মনে করি এটি ২০০৫ সাল থেকে রয়েছে I আমি এটি এক্সটার্ম, জিনোম টার্মিনাল এবং পুট্টিতে কাজ করছি। আমি পুদিনা উত্সে একটি নোট পেয়েছি এটি নির্দেশ করে যে এটি সেখানে কাজ করে না কারণ তারা ডিসিএস হ্যান্ডেল করে না (যদি তা সম্প্রতি স্থির না করা হয়)।

নীচের স্ক্রিনের জন্য ডকুমেন্টেশন থেকে ( http://www.gnu.org/software/screen/manual/html_node/Control-Sequences.html )

ESC P (A) Device Control String
          Outputs a string directly to the host terminal without interpretation.

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

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

ডিসিএস = \ 033 পি, এসটি = \ 033

উদাহরণ - বর্তমান কার্যকারী ডিরেক্টরি সহ উইন্ডো শিরোনাম আপডেট করতে, ব্যবহার করুন

NEW_TITLE="\033]0;${PWD/$HOME/~}\007"
echo -ne "\033P${NEW_TITLE}\033\\"

আগের চেয়ে বেশি দেরী! আশা করি এটি কাউকে সাহায্য করবে।

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

git clone git://git.savannah.gnu.org/screen.git
git difftool e6618a14^! src/ansi.c

1

crb এক ধরণের সঠিক, কিন্তু

ক) তিনি যে পালানোর কোডটি ব্যবহার করেন তা আমার পক্ষে কাজ করে না। এটি এর \033kপরিবর্তে হওয়া উচিত \033_screen (1)নীচে দেখুন "TITLES (naming windows)"। সুতরাং এটি হওয়া উচিত:

PROMPT_COMMAND='echo -ne "\033k${USER}@${HOSTNAME}: ${PWD}\033\\"'

খ) এই ধরণের পলায়ন শুধুমাত্র স্ক্রিন-উইন্ডোর শিরোনাম সেট করার জন্য ব্যবহৃত হয়। স্ক্রিনের একটি উদাহরণে একাধিক উইন্ডোজ থাকতে পারে, তাদের প্রত্যেকটির একটির নাম রয়েছে, এটিই hardstatusএবং পালানো ক্রমের captionসাথে প্রদর্শিত হয় t

গ) আপনি যদি xterm এর জন্য সঠিক টার্মিনো সেট করে থাকেন তবে সাধারণ ব্যাশ পলায়ন কাজ করে .screenrc:

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

(এটি works on my machineপুটি জন্যও )

সুতরাং স্ক্রিন উইন্ডো এবং পুট্টি / এক্সটার্ম শিরোনাম উভয়ের জন্য সঠিক শিরোনামটি সেট করতে, আমি কিছুটা ব্যবহার করি:

XTERM_TITLE="${USER}@${HOSTNAME}: ${PWD}"
SCREEN_TITLE="${PWD}"
PROMPT_COMMAND='echo -ne "\033]0;$XTERM_TITLE\007\033k$SCREEN_TITLE\033\\"'

রেফারেন্সের জন্য: http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x395.html


1

আমি পুরোপুরি প্রশ্নের উত্তর দিতে যাচ্ছি না, তবে আমাকে সমস্যা সমাধানের উপায়টি পরামর্শ দিন suggest অনেক উইন্ডো ম্যানেজার EWMH নির্দিষ্টকরণ সমর্থন করে । একটি কমান্ড লাইন সরঞ্জাম রয়েছে wmctrlযা তাদের সাথে যোগাযোগ করতে সক্ষম। এই সরঞ্জামটি ব্যবহার করে, কেউ নিম্নলিখিত কমান্ডের সাহায্যে সক্রিয় উইন্ডোর শিরোনামটি সহজেই পরিবর্তন করতে পারে:

  wmctrl -r :ACTIVE: -T "FooTitle"

উইন্ডো আইকন, লেআউট এবং অন্যান্য বৈশিষ্ট্যগুলি পরিবর্তন করাও সম্ভব tool সরঞ্জামটি সম্ভবত পটিটির জন্য কাজ করবে না কারণ উইন্ডোজ ইডব্লিউএমএইচ সমর্থন করে না, তবে বেশিরভাগ লিনাক্স সিস্টেম এটি গ্রহণ করবে।

এই পদ্ধতিটি ব্যবহার করে আপনি কী ব্যবহার করেন screenবা না তা বিবেচ্য নয়।


0

গত 2 সপ্তাহ আমি অনেক ফোরাম অনুসন্ধান করেছি এবং আমি প্রশ্নের উত্তর খুঁজে পাইনি:

পুটি শিরোনামে কীভাবে সমস্ত কমান্ড আউটপুট পাবেন?

সার্ভারে কিছু কাজ কখন সম্পন্ন হয় এবং এটি সঠিক বা অন্যায় হয়ে যায় তা অন্য প্রোগ্রামগুলির জন্য জানা দরকার। প্লিংক স্টডআউট এবং স্টিডিন কাজ করছিল না, আমি অপেক্ষা করতে বিলম্ব সহ অনেকগুলি টুইট ব্যবহার করেছি এবং কিছু আদেশের জন্য যা অন্যদের পক্ষে কাজ করে নি worked এক্সএসইএল এবং এক্সসিএলআইপি সেই সার্ভারে ইনস্টল করা যায়নি।

সুতরাং সমাধান এখানে:

  1. একটি ফাইলে কমান্ড আউটপুট পান।
  2. শিরোনামে সেই ফাইল প্রতিধ্বনি।

পুট্টি ক্লায়েন্ট এবং মামলা সার্ভারে এটি দেখতে এমন দেখাচ্ছে:

ls /home | grep domagaja > logutoit.txt 
echo -e "\033]0\\;$(cat logutoit.txt)\\007\\c"

আশা করি কেউ এটি ব্যবহার করতে সক্ষম হবেন। এটি অবশ্যই সমস্ত সার্ভারের ধরণের এবং পুটি ক্লায়েন্ট সেটিংসের জন্য কাজ করবে না, তবে ধারণাটি ভালভাবে কাজ করা উচিত।

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