ओएस एक्स टर्मिनल रंग विषयों को बदलने के लिए आदेश


17

क्या कोई आदेश है जिसका उपयोग मैक ओएस एक्स टर्मिनल की रंग योजना को बदलने के लिए किया जा सकता है? मुझे अपने द्वारा चलाए जाने वाले स्क्रिप्ट के आधार पर रंग बदलने में सक्षम होने का विचार पसंद है। अब तक मैं पीएस 1 के साथ सिर्फ अपने बैश प्रॉम्प्ट का रंग बदल रहा हूं जो ठीक है लेकिन जैसा मैं चाहूंगा वैसा ध्यान देने योग्य नहीं।


मैं जो करना चाहता हूं वह टर्मिनल बैकग्राउंड का रंग बदल Terminal -> Preferences -> Settingsरहा है, जैसे कि मैं एक कमांड के साथ ऐसा करना चाहता हूं, वैसे ही इसे बदल दिया जाएगा । मैं एक स्क्रिप्ट है कि इस तरह दिखेगा बनाना चाहते हैं: changeBackgroundTheme; ssh; changeBackgroundTheme। यह मुझे यह याद दिलाने में मदद करेगा कि वर्तमान में कौन सी खिड़कियां हैं ssh
साठफुटेरसुडे 17

जवाबों:


18

आप वास्तव में क्या हासिल करना चाहते हैं, इसके आधार पर , आपके टर्मिनल शैलियों का उपयोग करके AppleScript में कुछ विचार दिए गए हैं। ये तुलना में अधिक मजबूत हैं tput, क्योंकि यह रंगीन संकेतों द्वारा रीसेट हो जाता है। आदि (कम से कम मेरे लिए)।

यह पैथॉन को चलाने वाले सभी टैब (अभी परीक्षण के लिए कोई एसएसएच सर्वर उपलब्ध नहीं है), होमब्रे को, अन्य महासागर को:

tell application "Terminal"
    repeat with w from 1 to count windows
        repeat with t from 1 to count tabs of window w
            if processes of tab t of window w contains "Python" then
                set current settings of tab t of window w to (first settings set whose name is "Homebrew")
            else
                set current settings of tab t of window w to (first settings set whose name is "Ocean")
            end if
        end repeat
    end repeat
end tell

स्क्रिप्ट के रूप में सहेजें और जितनी बार osascript Name.scptआप अपने गोले को फिर से रंगना चाहते हैं (निश्चित रूप से आप इसे शेल स्क्रिप्ट या कुछ के रूप में लपेट सकते हैं)।

यदि आप सभी लंबी चलने वाली प्रक्रियाओं को अलग-अलग तरीके से प्रदर्शित करना चाहते हैं, तो निम्न स्थिति का उपयोग करें:

if busy of tab t of window w is true then


या, आप एकल टैब की शैली सेट कर सकते हैं, मैन्युअल रूप से चयनित:

on run argv
    tell application "Terminal" to set current settings of tab (item 1 of argv as number) of front window to first settings set whose name is (item 2 of argv)
end run

इसे इस तरह चलाएं:

osascript StyleTerm.scpt 3 Homebrew

-> सबसे सामने वाले टर्मिनल विंडो के तीसरे टैब में होमब्रे स्टाइल मिलता है!

यदि आप पृष्ठभूमि विंडो को संशोधित करना चाहते हैं, तो "टैब" के बाद "फ्रंट विंडो" को एक कोष्ठक की तरह अभिव्यक्ति के साथ बदलें। यदि आप हमेशा चयनित "वर्तमान टैब" को संशोधित करना चाहते हैं, तो selected tabइसके बजाय का उपयोग करें tab (item 1 of argv as number)


.bash_profileयदि आपके लिए पहला समाधान बहुत श्रम मैनुअल है, तो इसे अपने साथ जोड़ें :

PROMPT_COMMAND='osascript "/path/to/Name.scpt"'

अब यह हर प्रॉम्प्ट से पहले ही निष्पादित हो जाता है (केवल समस्या: कुछ शुरू करने के बाद नहीं, यानी ssh। लेकिन यह विषय वैसे भी फैंसी बैश ट्रिक के बारे में नहीं है। यह सिर्फ एक सूचक है।)


6

आपकी स्क्रिप्ट tputपोर्टेबल तरीके से रंग सेट करने के लिए कमांड का उपयोग कर सकती है। निम्नलिखित स्क्रिप्ट का प्रयास करें और आप कुछ चमकीले सियान पाठ के साथ एक डार्क सियान पृष्ठभूमि के लिए टर्मिनल को स्पष्ट देखेंगे।

#!/bin/bash
tput setab 6
tput clear
tput setaf 14
echo Hello World

आप इसके बारे में अधिक जानकारी man 5 terminfo"कलर हैंडलिंग" नामक अनुभाग में देख सकते हैं ।

आप भागने के दृश्यों को प्रतिध्वनित करके वही काम कर सकते हैं जो आपका टर्मिनल सीधे पहचानता है। यह तेज़ होगा, लेकिन यह किसी अन्य टर्मिनल प्रोग्राम का उपयोग करके काम नहीं कर सकता है। उनमें से कई xterm अनुक्रमों को पहचानते हैं और यहां ऊपर दी गई स्क्रिप्ट का उपयोग करते हुए कैसा दिखेगा।

#!/bin/bash
printf "\033[48;5;6m"  # or "\033[46m"
printf "\033[H\033[2J" # your system's clear command does something similar
printf "\033[38;5;14m" # or "\033[96m"
echo Hello World

यहाँ xterm नियंत्रण अनुक्रमों के बारे में अधिक जानकारी है


यह रंग पर कुछ प्रभाव डालता है, लेकिन सेटाफ मेरे लिए कुछ भी नहीं करता है। मैं वास्तव में क्या पसंद करूंगा कि मैक ओएस टर्मिनल थीम को बदलना कुछ है जैसे कि वैवाई सुझाव देते हैं लेकिन प्रोग्रामिक रूप से और जीयूआई का उपयोग नहीं करते हैं।
satur9nine

क्या उस थीम को बदलने का कोई तरीका है जो इसके समान उपयोग किया जा रहा है Terminal -> Preferences -> Settings?
साठफुटेरसुडे 18

@sixtyfootersdude: शायद ऐसा करने का एक तरीका है osascript, लेकिन मैं इससे परिचित नहीं हूं।
अगली सूचना तक रोक दिया गया।

1

आप हर नए टर्मिनल को एक यादृच्छिक विषय देने के लिए एप्सस्क्रिप्ट का उपयोग कर सकते हैं।

अपना संपादन करें .bash_profileऔर इस कमांड को जोड़ें

osascript -e "tell application \"Terminal\" to set current settings of front window to some settings set"

यदि आपको वही रैंडम थीम टर्मिनल मिलता है, तो आप हमेशा ⌘Iइसे मैन्युअल रूप से हिट और सेट कर सकते हैं ।

यदि आप बहुत से अलग-अलग दिखने वाले टर्मिनल थीम प्राप्त करते हैं तो यह अधिक उपयोगी है। उसके लिए कई साइटें हैं, यदि आप चारों ओर देखें।


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