उबंटू 15.04 ताजा इंस्टॉल: सूक्ति-टर्मिनल टैब का नाम नहीं बदल सकता


38

उबंटू 14.10 में, यदि मेरे पास कई टर्मिनल टैब खुले हैं, तो मैं एक टर्मिनल टैब पर राइट-क्लिक कर सकता हूं और उसका नाम बदल सकता हूं। Ubuntu 15.04 में मुझे यह सुविधा नहीं मिली।

क्या इसे वापस पाने का कोई आसान तरीका है?

यह वर्तमान संस्करण है:

$ gnome-terminal --version
GNOME Terminal 3.14.2

जवाबों:


21

यहां उत्तर दिया गया

मैं उद्धृत करता हूं:

user titleकोड हटा दिया गया था 1 से gnome-terminal 3.14। भागने के अनुक्रम का उपयोग करके शीर्षक सेट करने का केवल एक ही तरीका है - जैसे bash:

PROMPT_COMMAND='echo -ne "\033]0;YOUR TITLE GOES HERE\007"'

1: सूक्ति बग 724110 और सूक्ति बग 740188 देखें


10
जवाब के लिए धन्यवाद। यह शर्म की बात है, मुझे आशा है कि वे इसे अगले रिलीज में वापस जोड़ देंगे, इस बीच, मैं राइट-क्लिक विधि के बजाय भागने के अनुक्रम का उपयोग करूंगा।
टॉम

2
@Tom एक बग रिपोर्ट लिखें =)
AB

13
यह सिर्फ शर्म की बात नहीं है: यह गैर-समझदारी है। मेरे पास डेबियन व्हीज़ी से जेसी तक "अपग्रेड" करने का बुरा विचार था, मेरे पास सब कुछ था (निश्चित रूप से अभी तक नहीं, वास्तव में) इससे पहले, लेकिन इससे भी बदतर; खराब निर्णय और मूर्खतापूर्ण दोष (उदाहरण के लिए gdm3 में संभव wm / session की सूची जो मैंने स्थापित की है, वह फिट नहीं है और न ही स्क्रॉल की गई है, इसलिए यह सरल कट है और इसलिए मैं उन सभी wm को नहीं चुन सकता) जो मेरे पास हैं। मेरे लिए, गनोम कब से बर्बाद है gnome-shell। यह एक नई विंडो या टैब में एक नया टर्मिनल खोलने के लिए मेनू भी गायब हो गया (लेकिन आप अभी भी शॉर्टकट के माध्यम से कर सकते हैं। क्यों? एक बड़े स्मार्ट बटन के साथ सब कुछ बदलें: एक क्लिक करें और यह कुछ भी करता है!)
ShinTakezou

2
आमतौर पर नई रिलीज़ में सुविधाओं को जोड़ा जाता है और हटाया नहीं जाता है।
स्वर्गदूत

2
मैंने एक कमांड (एक शेल स्क्रिप्ट) बनाया, जिसे टैब कहा जाता है जिसमें केवल "-033" 0 है; $ 1 \ 007 "इसलिए अब किसी भी टैब में मैं टैब टाइटल सेट करने के लिए टैब टैबनाम चला सकता हूं। नाम बदलने के लिए टैब को राइटक्लाइक करने जितना सुविधाजनक नहीं है, लेकिन यह अभी के लिए करेगा। धन्यवाद AB!
ब्रायन पीपा

31

.bashrcसमाधान किर्बी द्वारा प्रस्तावित मेरे लिए काम किया:

set-title(){
  ORIG=$PS1
  TITLE="\e]2;$@\a"
  PS1=${ORIG}${TITLE}
}

तो मेरे संकेत से: $ set-title test-title


2
मेरे लिए 15.10 पर ठीक काम करता है, केवल यह कहा जा रहा है कि हर बार जब आप इसे चलाते हैं तो आप पीएस 1 से जुड़ जाते हैं, इसलिए इसे स्क्रिप्ट से न करें। के बाद मैं इसे कुछ समय के साथ बुलाया set-title "longer and ":echo $PS1 \[\e]0; \u@\h: \w \a\]\u@\h:\w\[\033[m\]$(__git_ps1)$ \e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a
आह

1
ubuntu 16.04 पर मेरे लिए काम करता है!
प्रोग्रामर

1
आकर्षण की तरह काम करता है !!
शरदेंदु सिन्हा

अग्रभूमि प्रक्रिया चलने के दौरान मैं शीर्षक कैसे बदलूं, जिसे मैं गर्भपात नहीं कराना चाहता?
जॅनिस एल्मेरिस

1
मुझे लगता है कि आप इसका उपयोग करके प्रक्रिया को रोक सकते हैं Control + Z, फिर set-title X, फिर fgप्रक्रिया को फिर से शुरू करने के लिए कर सकते हैं।
रोनन_मैक

18

मैं विश्वास नहीं कर सकता कि उन्होंने इस तरह के उपयोगकर्ता के अनुकूल सुविधा को हटा दिया।

मैं ROXTerm ( http://roxterm.sourceforge.net ) पर स्विच कर रहा हूं , जो अच्छी तरह से काम करता है। यह उबंटू में पैक किया गया है:

sudo apt-get install roxterm

फिर, डायनासोर अपने तरीके से जारी रखने ;-)


1
मैं roxterm में Tab Title कैसे बदल सकता हूँ? मैं इसे नहीं पा सका।
हैलील

16.04 के लिए भी काम करेंगे
prusswan

वाह, गनोम-टर्मिनल के साथ पृष्ठभूमि के लिए एक टर्मिनल सेट नहीं किया जा सकता है और मुझे कभी समझ नहीं आया कि क्यों ... यह टर्मिनल के साथ ही एक समस्या है। डेविल्स्की टर्मिनल बैकग्राउंड रॉक्सटरम के साथ अच्छा काम करता है।
erm3nda

1
रॉक्सटर्म कमाल का है और अभी भी काम करता है, लेकिन दुख की बात यह है कि यह अब ज्यादा समय तक जारी नहीं रहेगा: sadface:: sourceforge.net/p/roxterm/discussion/422638/thread/60da6975
विलियम्स

मैंने तब से टर्मिनेटर पर स्विच किया है, और रॉक्सटर्म का उपयोग नहीं करना पड़ा है ....
माइकल ओपडनेकर

14

मैंने उपर्युक्त सुझाव के अनुसार रॉक्सटर्म की कोशिश की है, अच्छे परिणाम के साथ। लेकिन मैं MATE टर्मिनल पर आ गया, जो MATE प्रोजेक्ट का हिस्सा है, जो 15.04 को Gnome 2 की निरंतरता है:

sudo apt-get install mate-terminal

यह टर्मिनल गनोम टर्मिनल कोड पर आधारित है।


टिप्पणी: सूक्ति टर्मिनल देवों की मानसिकता को समझना कठिन है। टर्मिनल टैब्स को नाम देने के लिए "कैसे" के बारे में वहाँ बहुत चर्चा है, और कैसे सही होना मुश्किल है। यदि ऐसा है, तो उपयोगकर्ता को उनका नाम देना कठिन क्यों है? बहुत स्मार्ट नहीं है।


6

अब मैंने एक दिन के बेहतर हिस्से के लिए इसकी जांच की है और अंत में इस शीर्षक को स्थापित करने का एक तरीका खोज लिया है। यह पलायन अनुक्रमों के माध्यम से किया जाता है जो कि \ e] 0 से शुरू होता है; और एक बीईएल चरित्र (= \ 007 = \ a) के साथ समाप्त होता है। जैसा कि मैंने ऊपर कहा था, इस तरह के एस्केप सीक्वेंस के माध्यम से शेल एप्लिकेशन से टर्मिनल एप्लिकेशन तक संचार बहुत सीमित है, बहुत सीमित है।

इसके बारे में ऊपर से:

PROMPT_COMMAND='echo -ne "\e]0;YOUR TITLE GOES HERE\a"'

यह काम कर सकता है , लेकिन यह हमेशा नहीं होता है। PROMPT_COMMANDएक चर है जो सामग्री हर बार जब आप एक आदेश भेजते हैं, तो यह इस क्रम को भी भेजता है। हालाँकि, यह PS1 चर में एक एस्केप अनुक्रम द्वारा ओवरराइड किया जा सकता है, जो कमांड लाइन प्रॉम्प्ट सेट करता है। यही कारण है कि यहाँ ऊपर का कोई प्रभाव नहीं था।

एक पुराने उबंटू इंस्टॉलेशन से मैंने इसे पकड़ा, जो कमांड प्रॉम्प्ट (दायाँ भाग, के बाद ]) सेट करता है और आवश्यक एस्केप सीक्वेंस भी छोड़ता है (बायां हिस्सा, ऊपर और सहित ]):

PS1="\[\e]0;\u@\h: \w\a\]\u@\h:\w\$ "

यह संभावना बेहतर प्रदर्शन करती है, क्योंकि $PROMPT_COMMANDहर बार व्याख्या करने की आवश्यकता नहीं है । इसके कई और विकल्प भी हैं, क्योंकि बैश के यहां अधिक एस्केप सीक्वेंस हैं, उदाहरण के \uलिए, वर्तमान उपयोगकर्ता नाम के \Wलिए, वर्तमान निर्देशिका नाम के लिए या \wवर्तमान कार्यशील निर्देशिका के पूरे पथ के लिए, वैकल्पिक रूप से केवल संख्या में अंतिम कुछ तक छंटनी की जाती है $PROMPT_DIRTRIMPROMPTINGबैश मैन पेज में अध्याय देखें । यह भी ध्यान रखें कि भागने का क्रम इसके अलावा \[और \]यहाँ से घिरा हुआ है ।

एक निश्चित शीर्षक सेट करने के लिए, यह काम करता है:

PS1="\[\e]0;YOUR TITLE GOES HERE\a\]\u@\h:\w\$ "

का आनंद लें!


अपनी जांच के दौरान मैंने गनोम-टर्मिनल स्रोत कोड को समझने की कोशिश की, जो वीटीटी स्रोत कोड की ओर जाता है और वहाँ शीर्षक सेटिंग और भागने के क्रम को पढ़ने के लिए समर्थन को सुरक्षा जोखिम माना जाता है: यहां देखें (केस 20, केस 21) और यहां ("विंडो शीर्षक रिपोर्टिंग")।


यह शीर्षक सेट करता है, लेकिन PS1कस्टम कमांड प्रॉम्प्ट सेट करने जैसे अन्य उपयोगों के लिए पिछली किसी भी परिभाषा को मिटा देता है । मैंने मौजूदा PS1सामग्री पर आपके भागने के क्रम को जोड़ने की कोशिश की और यह काम करने लगता है। इस तरह: PS1+="\[\e]0;YOUR TITLE GOES HERE\a\]\u@\h:\w\$ "
२०:१०

5

ऊपर दिखाए गए अनुसार $ PROMPT_COMMAND सेट करना यहाँ शून्य प्रभाव रखता है। कोई आश्चर्य नहीं, क्योंकि बैश टर्मिनल और मूल प्रक्रियाओं के अंदर चलता है (यहाँ: सूक्ति-टर्मिनल) एक यूनिक्स जैसे ओएस पर एक बच्चे के पर्यावरण को नहीं पढ़ सकता है। कुछ और अधिक सरल का उपयोग करना, जैसे

PROMPT_COMMAND='echo bla'

कार्यान्वित गूंज bla , और कुछ नहीं होता है।

संपादित करें: किसी को भागने के क्रम में इसे लपेटना है, मेरा दूसरा जवाब देखें। बच्चे के वातावरण को पढ़ने के बावजूद संभव नहीं है, इन दृश्यों के माध्यम से माता-पिता के लिए कुछ संचार वापस आ गया है।

गनोम बग 740188 में वे .bashrc में एक शीर्षक () फ़ंक्शन को परिभाषित करने के बारे में बात करते हैं। प्रत्येक टैब के लिए एक अलग खोला गया? गंभीर बदसूरत हैकिंग आगे, यदि संभव हो तो सब पर!

यहां तक ​​कि Stackexchange पर अन्य स्पष्टीकरण $ PS1 सेट करने के बारे में बात करते हैं (और उठो)। क्षमा करें, नहीं, यह शीर्षक नहीं है, यह कमांड प्रॉम्प्ट है।

संक्षेप में: उन्होंने वरीयताओं के संवाद में थोड़ा सा स्थान बचाने के लिए इसे मरम्मत से परे गड़बड़ कर दिया। हे भगवान

अब, एक डेवलपर निर्णय वापस लेने का एकमात्र मौका एक गंभीर गंदगी को हटाने के लिए है, अन्यथा वे आपकी बग रिपोर्ट को सेकंड में बंद कर देते हैं (कई बार कई बार कोशिश की गई)। हम यह शिटस्टॉर्म कैसे बनाएंगे?

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.