हर बार जब मैं टर्मिनल खोलता हूं तो स्वचालित रूप से अलग-अलग टर्मिनल रंग मिलते हैं


15

मैं अक्सर अपने आप को तीन टर्मिनलों को खोलते हुए पाता हूं और मुझे वास्तव में प्रत्येक पर अलग-अलग रंग पट्टियाँ होने का आभास होता है।

मेरे पास कुछ रंग पट्टियाँ बची हैं और मैं डिफ़ॉल्ट रूप से अपने सहेजे गए प्रोफाइल के माध्यम से प्रगति करना पसंद करूँगा जब भी मैं एक टर्मिनल खोलता हूँ, ताकि अगर मैं 3 खोलूँ तो वे प्रत्येक अलग रंग हैं मेरे बिना मैन्युअल रूप से 2 पर प्रोफ़ाइल बदलने के लिए।

कोई विचार?

धन्यवाद!


बस एक स्क्रिप्ट के साथ मेरे जवाब को संपादित किया जो आपको चाहिए। इसे ./bashrc फ़ाइल में जोड़ा जाना चाहिए । आशा है कि यह आपकी आवश्यकता के अनुरूप है!
IanC

जवाबों:


10

कार्यात्मक संस्करण

निर्देश:

स्क्रिप्ट मानती है कि आप सूक्ति-टर्मिनल का उपयोग कर रहे हैं , जो कि डिफ़ॉल्ट उबंटू टर्मिनल है।

स्क्रिप्ट चलाने से पहले, सूक्ति-टर्मिनल खोलें और अपनी इच्छा के अनुसार अलग-अलग सेटिंग्स के साथ कुछ प्रोफाइल बनाएं (संपादित करें> वरीयता> प्रोफाइल) (पृष्ठभूमि का रंग, पाठ का रंग, ..)। आप उन्हें प्रोफाइल 1, प्रोफाइल 2, प्रोफाइल 3 आदि नाम दे सकते हैं। टर्मिनलों की मात्रा को कवर करने के लिए पर्याप्त प्रोफ़ाइल बनाएं, जिन्हें खोला जाएगा, लेकिन यदि अधिक संख्या में टर्मिनल खोले जाते हैं, तो डिफ़ॉल्ट प्रोफ़ाइल का उपयोग किया जाएगा।

स्क्रिप्ट एक फ़ाइल बनाता है ~ / .Bash_Color_Changer , जिस पर यह निर्भर करता है, क्योंकि यह स्क्रिप्ट को बताएगा कि टर्मिनल नियमित रूप से खोला गया था या .bashrc पर कॉल के बाद ।

अपनी ~ / .bashrc फ़ाइल के अंत में स्क्रिप्ट जोड़ें ।

स्क्रिप्ट:

इसमें जोड़ें .bashrc:

#Change color according to the number of Bash shells opened
#Creates the .Bash_Color_Changer file if it's not present
if ! [ -f ~/.Bash_Color_Changer ]; then
    echo ORIGINAL > ~/.Bash_Color_Changer
fi

#Array holding the name of the profiles: Substitute it for the names you're using
Color_counter=(Profile1 Profile2 Profile3)
#Finds out the number of opened bashs counting the lines containing "bash"
#in the pstree function. (-c deactivates compact display to avoid it showing
#lines with "2*[bash]" instead of one for each bash)
Number_of_bashs=$(($(pstree -c | grep "bash" | wc -l)-1))

#Checks if the terminal being opened was opened by the user or by
#the script, and act according to it
if [ $(cat ~/.Bash_Color_Changer) = ORIGINAL ]; then 
    if ((Number_of_bashs < ${#Color_counter[*]})); then
        echo COPY > ~/.Bash_Color_Changer
        gnome-terminal --tab-with-profile-internal-id=${Color_counter[${Number_of_bashs}]} 
        exit
    fi
else 
    echo ORIGINAL > ~/.Bash_Color_Changer
fi

परीक्षण किया गया लेकिन बड़े पैमाने पर नहीं। का आनंद लें!


कल के लिए आइडिया exitकुछ फ़ाइल के आधार पर एक सशर्त जोड़ रहा है जैसे ~/bashcolor.txt। यह कहने के लिए एक पंक्ति हो सकती है कि क्या बैश खोला जा रहा है "मूल" या "कॉपी"। तो अगर cat ~/bashcolor.txtरिटर्न "मूल" exitकमांड चलाने के लिए और है echo COPY > ~/bashcolor.txt। इसके अलावा, निकास नहीं चलता है लेकिन फ़ाइल मूल ( echo ORIGINAL > ~/bashcolor.txt) में वापस चली जाती है । यह चमकती टर्मिनल समस्या को हल करेगा।
IANC

बनाने के लिए मजेदार स्क्रिप्ट, शायद खुद भी इसका इस्तेमाल कर सकते हैं :) किसी भी सुधार सुझाव का स्वागत है!
IanC

यह भरोसेमंद +1
बूमट 14

2
मैंने अपने संस्करण में 1 परिवर्तन किया ... इस तरह से जब आप प्रोफ़ाइल रखते हैं तो अधिक टर्मिनल खोलने पर यह साइकिल चलता रहता है। Number_of_bashs=$(($(($(pstree -c | grep "bash" | wc -l)-1))%${#Color_counter[@]}))
कोप

अच्छा! यह मेरे दिमाग में पुनरावृत्ति चक्रीय रखने के लिए मापांक का उपयोग करने के लिए नहीं आया: p
IanC

9

एक विकल्प का उपयोग किया जा सकता है xfce4-terminal। यह डिफ़ॉल्ट उबंटू टर्मिनल (जो है gnome-terminal) के समान है और इसके कई निर्भरता पैकेज gtk घटक का उपयोग करते हैं, जो इसे एक उपयुक्त विकल्प बनाता है।

पहले इसे स्थापित करें

sudo apt-get install xfce4-terminal

फिर इसे खोलें, संपादन पर जाएं -> प्राथमिकताएं , रंग टैब का चयन करें और उस विकल्प की जांच करें जो कहता है, प्रत्येक टैब के लिए पृष्ठभूमि का रंग भिन्न करें , और अब बाहर निकलें।

डिफ़ॉल्ट टर्मिनल बनाएं xfce4-terminalया Ctrl-Alt-Tइसे खोलने के लिए शॉर्टकट बदलें ।

अब, हर बार जब आप खोलते हैं, तो आपको अलग-अलग रंग पैलेट के साथ प्रस्तुत किया जाएगा। अलग रंग का टर्मिनल

उपयोगी कड़ियाँ:


5

हाहा, बहुत दिलचस्प। मैं भी ऐसा करने की कोशिश कर सकता हूं। मैं ज्यादातर केवल कई टर्मिनल और एक ब्राउज़र चलाता हूं।

इसलिए मैंने चारों ओर देखा और यह पाया - https://github.com/sos4nt/dynamic-colors । एक बहुत साफ-सुथरी छोटी परियोजना जो आपको मनचाहा हिस्सा हासिल करने में मदद करती है।

अब, colorschemes/उस परियोजना की निर्देशिका में, आप देखेंगे कि वर्तमान में इसमें 4 रंग योजनाएँ हैं। आप जितने की जरूरत / चाह सकते हैं, जोड़ सकते हैं।

तो एक अलग रंग-योजना का चयन करने के लिए हर टर्मिनल प्राप्त करने के लिए, मैं करने के लिए एक समारोह जोड़ना होगा मेरी .bash_profileया .bashrcया जहाँ भी, समारोह दो बातें करता है ऐसी है कि:

  1. यह पता लगाना कि वर्तमान में कितने टर्मिनल चल रहे हैं
  2. dynamic-colors switch colorscheme-name(1) के आधार पर एक आदेश जारी करें ।

उम्मीद है की यह मदद करेगा!

पीएस मैं आपके लिए एक स्क्रिप्ट लिखूंगा, लेकिन मुझे चम्मच-फीडिंग से नफरत है और मैं आलसी हूं। :)


अच्छा एक ... टर्मिनल कमांड को एक रैपर / उर्फ ​​बनाना यह हासिल होगा।
विष्णु कुमार

@ विष्णुकुमार, हाँ, यह पहली बार दिमाग में आया, हालांकि यह सबसे अच्छा समाधान नहीं हो सकता है। खुश हूँ कि आपने इसे पसंद किया।
तघिनवदास

एक ठीक जवाब के लिए, मैं वास्तव में "काम करता है" के साथ नहीं लड़ना चाहता, लेकिन इस जवाब के लिए आवश्यक है कि मैं मालिकाना शैली परिभाषाओं का उपयोग अपने गतिशील-रंग परियोजना का उपयोग करूं, इसके अलावा (और यह वास्तव में मुझे मिल गया है) 'टी सपोर्ट अपारदर्शिता: (मुझे ऐसा लगता है कि उत्तर को gnome-terminal --load-config=FILE
23

@kpie, हाहा। कोई निष्पक्ष, अस्पष्टता प्रश्न में उल्लेख नहीं किया गया था। इसके अलावा, कमांड लाइन से अपारदर्शिता को स्थापित करना मुश्किल है और बहुत सी चीजों पर निर्भर करता है। साथ ही, इस प्रश्न का उत्तर विभिन्न तरीकों से दिया जा सकता है, लेकिन मुझे लगा कि मेरा उत्तर बहुत सुविधाजनक था (यदि केवल मेरे लिए, हाहा) :)
theabhinavdas

मुझे आशा है कि मैं आवश्यक स्क्रिप्ट प्रदान करके बुनना उठा सकता हूं ... github.com/Krewn/stylingTerminalOnOpen और मुझे यह निर्दिष्ट करना चाहिए कि यह चर अपारदर्शिता का समर्थन नहीं करता है, रंग योजनाएं आपके डिफ़ॉल्ट प्रोफ़ाइल की अस्पष्टता को बनाए रखेंगी।
केपी

1

कॉन्सोल वास्तव में इस कार्यक्षमता का समर्थन करता है। कॉन्सोल वास्तव में शक्तिशाली और उच्च अनुकूलन योग्य है।

यदि आपके पास कोनो कंसोल नहीं है तो बस sudo apt install konsole

  1. सेटिंग्स में जाओ
  2. कॉन्सोल सेटिंग
  3. प्रकटन टैब चुनें
  4. अपनी रंग योजना चुनें
  5. दाईं ओर "संपादित करें" चुनें
  6. सेट करने के लिए एक बॉक्स है "प्रत्येक टैब के लिए पृष्ठभूमि का रंग भिन्न करें"

इसके शीर्ष पर, यदि आप एक ही समय में तीन सर्वरों पर काम कर रहे हैं, तो आप यहाँ दिखाए गए कुछ निफ्टी उपनाम शामिल कर सकते हैं


एक ठीक जवाब के लिए +1, लेकिन मेरे पास कंसोल नहीं है। @ <MemoryAddress> का उत्तर अधिक टर्मिनल इंटरफेस (जो कि OSC एस्केप सीक्वेंस का समर्थन करता है) का समर्थन करता है। लेकिन आपका उपयोग करना आसान है। मैं एक दो दिनों में सबसे ज्यादा वोट पाने वाले को इनाम दूंगा। आपके उत्तर के लिए धन्यवाद!
कोपी

आपको आश्चर्य होगा कि कितने लोग वास्तव में यहाँ पर टिप्पणी करेंगे कि मुझे यह बताने की आवश्यकता है कि मैं इसे कैसे स्थापित करूं -_-
मैट ओ।

क्या आपने अन्य ans पर टिप्पणियों को पढ़ा?
kpie

मैंने किया। शायद मुझे कुछ याद आ रहा है लेकिन आप परिवर्तनशील अस्पष्टता और कुछ ऐसी चीज़ों की तलाश कर रहे हैं जिनमें एलियास की आवश्यकता न हो। कॉनसोल उन दोनों को प्राप्त करता है, लेकिन मैं भागने के दृश्यों के बारे में निश्चित नहीं हूं।
मैट ओ।

1
haha मैं समझ गया। मुझे दोष मत दो, यहाँ पर पर्याप्त मात्रा में पोषक तत्व होने के बाद मैं केवल स्वचालित रूप से इसे संपादित करने का सुझाव देता हूं। मैं आपकी बुद्धि का अपमान करने की कोशिश नहीं कर रहा हूँ।
मैट ओ।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.