मैक ओएस एक्स में टर्मिनल शीर्षक बदलें


39

मैं मैक ओएस एक्स में एक टर्मिनल विंडो के शीर्षक को मनमाने ढंग से कैसे बदल सकता हूं? मैंने इस सवाल और इस मैजिकवैप चीज़ को देखा है , लेकिन लगता है कि यह सिर्फ एक साधारण मैक ओएस एक्स कमांड है।


ध्यान दें कि इस बारे में कुछ भी ओएस एक्स विशिष्ट नहीं है - जवाब बहुत अधिक किसी भी टर्मिनल पर काम करेगा।
एंड्रयू आयलेट

क्या यह बैश-विशिष्ट है?
दान रोसेनस्टार्क

@ और आइलेट, इसलिए मैंने अपने उत्तर में (नीचे) जो स्क्रिप्ट लगाई है, वह लिनक्स डिस्ट्रोस पर भी काम करेगी?
दान रोसेनस्टार्क

हां, इसे कहीं भी (श-व्युत्पन्न शेल के साथ) काम करना चाहिए जो यूनिक्स-वाई टर्मिनलों का उपयोग करता है।
एंड्रयू आइलेट

जवाबों:


48

यह लेख आपको बताता है कि कैसे।

अनिवार्य रूप से, आप स्क्रीन पर दिखाए गए वर्ण अनुक्रम का उपयोग टर्मिनल को यह बताने के लिए करते हैं कि उसे किस शीर्षक को प्रदर्शित करना चाहिए।

title='My first title'
echo -n -e "\033]0;$title\007"

उपरोक्त उदाहरण में, टर्मिनल शीर्षक बनने के दौरान जो भी चर शीर्षक निर्धारित किया गया है। बेशक, आप स्ट्रिंग में शीर्षक को प्रतिध्वनित कर सकते हैं जैसे:

echo -n -e "\033]0;My first title\007"

लेकिन पहला तरीका इसे बाद में उपयोग और / या विस्तार करने के लिए थोड़ा आसान बनाता है।


अति उत्कृष्ट। क्या आप echo -n -e "\033]0;$1\007"अपने उत्तर में एक नमूना स्क्रिप्ट (इस तरह? ) शामिल कर सकते हैं ताकि मैं इसे सर्वश्रेष्ठ उत्तर के रूप में चिह्नित कर सकूं?
दान रोसेनस्टार्क

2
प्रिंटफ अधिक विश्वसनीय हो सकता है: printf "\033]0;%s\007" "$title_variable"( गूंज के विभिन्न विकल्प और व्यवहार सभी प्रणालियों, गोले, या यहां तक ​​कि शेल विकल्पों में समान नहीं हैं) इसके अलावा, बैश में चर असाइनमेंट में बराबर चिह्न के आसपास रिक्त स्थान नहीं होना चाहिए।
क्रिस जॉन्सन

1
मैंने $ * का उपयोग किया और एक समारोह के भीतर, इसलिए मुझे अपना शीर्षक स्ट्रिंग उद्धृत नहीं करना पड़ेगा।
21:39 पर BeepDog

क्या सी कार्यक्रम के भीतर से शीर्षक बदलने का कोई तरीका है? मैं जिस कार्यक्रम के बारे में सोच रहा हूं वह ncurses.h पर आधारित एनीमेशन चल रहा है, इसलिए मुझे यकीन नहीं है कि टर्मिनल के लिए कैसे गूँजना है :-(
phs

ठीक है: बस fprintf (stdout, ..) काम करता है। मुझे पूछने से पहले कोशिश करनी चाहिए थी।
phs

34

निम्नलिखित को अपने साथ जोड़ने से ~/.profileसमान प्रभाव प्राप्त होगा:

# function for setting terminal titles in OSX
function title {
  printf "\033]0;%s\007" "$1"
}

और फिर एक त्वरित title 'et voila'आपके सभी टैब को छाँट देगा।


यदि आपके पास .profile में कई कार्य हैं तो यह एक समस्या क्यों है? क्या कोई सीमा है?
tgkprog

1
IDK क्यों, लेकिन संपादित करने के बजाय .bash_profile .profile
Nakilon

2
या: alias title="printf '\033]0;%s\007'"
kenorb

export alias title="printf '\033]0;%s\007'"
मवई

आप इसका उपयोग करके भी जोड़ सकते हैं sudo nano /etc/bashrc। यह सभी उपयोगकर्ताओं के लिए चलना चाहिए। टर्मिनल सत्र को पुनरारंभ करें या source /etc/bashrcअपने परिवर्तनों को लागू करने के लिए करें।
यूजीन कुलबुहोव

8

दान MgG के जवाब के रीमिक्स:

echo -n -e "\033]0;$1\007"

इसे एक फाइल / usr / bin / title (sudo का उपयोग करके!) में स्टोर करें और इसे + x पर chmod करें। फिर कहीं से भी आप सिर्फ टाइप कर सकते हैं

title 'Trying to Figure This GIT Thing Out'

और आपको एक अच्छा सा शीर्षक मिलता है।

(यदि आप सही तरीके से समझते हैं तो सिंटैक्स भिन्न हो सकता है, यदि आप OSX पर नहीं हैं)


यदि आप OS X के उन नए संस्करणों में से एक पर हैं जो आप /usr/local/bin/titleइसके बजाय कर सकते हैं ।
सामी बेनचेरी

2

श-आधारित कमांड लाइन समाधान के विकल्प के रूप में, ओएस एक्स टर्मिनल ऐप में शीर्षक बदलने की प्राथमिकता है: टर्मिनल-> शेल मेनू के तहत "एडिट शीर्षक" पसंद है, उसे चुनें और आप शीर्षक बदल सकते हैं आसानी से।


1

OS X पर, टर्मिनल प्राथमिकताएँ संग्रहीत हैं ~/Library/Preferences/com.apple.Terminal.plist

टर्मिनल का शीर्षक WindowTitleवरीयता में संग्रहीत है ।


0

इसके लिए धन्यवाद। मैंने अभी अपने .bashrc में एक फ़ंक्शन जोड़ा:

    function stit() {
    echo -n -e "\033]0;$1\007"
}

मेरे दिमाग में "stit" = "set_title" के लिए एक सुविधाजनक शॉर्टकट। और अब जब मैं मक्खी पर अपनी खिड़कियों का शीर्षक सेट करना चाहता हूं, तो मैं टाइप करता हूं:

stit "[new window title]"

0

सर्वश्रेष्ठ उत्तर के रूप में चिह्नित उत्तर ठीक काम करता है ... यही मैंने किया ...

tell application "Terminal"
    activate
    do script "echo -n -e \"\\033]0;WorkerTab1\\007\"; cd $HOME/folder1"
end tell

यह नए टैब का नाम WorkerTab1 पर सेट करेगा और फिर "cd", आदि जैसे अन्य कमांड करेगा।

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