2010-01-27 12 views
7

शुभ संध्या के समय के आधार टर्मिनल का रंग बदलना,मिनी परियोजना: दिन

मैं बहुत यूनिक्स के लिए नया हूँ तो शायद इस मिनी परियोजना भी महत्वाकांक्षी है। उम्मीद है कि कोई सही दिशा में इंगित कर सकता है।

एक क्यूबिकल में काम करना और मैं नहीं देख सकता कि यह कितना प्रकाश है। आम तौर पर मैं सुबह (धूप) में एक पीले टर्मिनल और 3:00 (रात) के काले/हरे रंग का उपयोग करता हूं।

मैं क्या करना चाहता हूं (आंशिक रूप से बस मेरे बैश का अभ्यास करने के लिए)। एक स्क्रिप्ट लिखना है जो 3:00 बजे मेरे सभी टर्मिनल के रंग को बदल देगा। अगर यह काम करता है तो मैं उन्हें हर घंटे या कुछ ऐसा बदल दूंगा। क्या वह सुरक्षित होगा? क्या यह संभव है? मैं इस अधिकार पर अब देख रहा हूँ Solaris 10 बैश खोल Gnome

: Change Gnome terminal theme programmatically

+0

"काला/हरा" का अर्थ काला पर सामान्य हरा है? "पीले" से आपका क्या मतलब है? क्या वह पीला, काला पीला, काला पर पीला, काला है? – Sparr

+1

@ पीले रंग पर काले और काले रंग पर हस्पर हरा, हालांकि मुझे नहीं लगता कि रंगों को कोई फर्क नहीं पड़ता .. – sixtyfootersdude

उत्तर

4

यदि मैं ऐसा कर रहा था, तो मैं PROMPT_COMMAND से शुरू करूंगा। एक प्रॉम्प्ट प्रदर्शित करने से पहले बैश उस स्क्रिप्ट को चलाएगा।

आपके पास कुछ विकल्प हैं। आप PROMPT_COMMAND अंदर एक स्क्रिप्ट ही हो सकता है:

PROMPT_COMMAND='if [ is_morning ]; then echo "MORNING_COLORS'; else echo "EVENING_COLORS"; fi 

या आप है PROMPT_COMMAND एक बाहरी आदेश चला सकता है (जो भी एक bash स्क्रिप्ट हो सकता है या आप किसी भिन्न भाषा इस्तेमाल कर सकते हैं यदि आप चाहते थे) सभी काम करने के लिए :

PROMPT_COMMAND=/path/to/setcolor_timeofday 

केवल छेद मैं इस में देखते हैं कि यदि आप एक कार्यक्रम चल रहा है जब समय (उदाहरण के लिए, एक फ़ाइल को देखने के लिए tail -f का प्रयोग करके) से अधिक बदल जाता है, जब तक आप पृष्ठभूमि पर लौट नहीं बदलेगा है बैश प्रॉम्प्ट।

0

उपयोग cron, यह यूनिक्स काम अनुसूचक है

यहाँ मेरी ऐनक से कुछ हैं। और इसे एक कमांड चलाने के लिए सेट करें जो आपके द्वारा लिंक किए गए प्रश्न में bashrc को बदलता है। समस्या यह है कि यह केवल नए टर्मिनल के लिए काम करेगा, अगर आपने कुछ खोला है तो यह उन्हें नहीं बदलेगा।

+0

हम्म, टिप्पणी के लिए धन्यवाद हालांकि मैं शायद ही कभी अपने टर्मिनलों को बंद कर देता हूं, इसलिए यह शायद काम नहीं करेगा। – sixtyfootersdude

2

बैश में पीएस 1 के माध्यम से खोल अग्रभूमि और पृष्ठभूमि रंगों को संशोधित करना सबसे आसान होगा, जैसा कि यहां दूसरों द्वारा बताया गया है। PROMPT_COMMAND के साथ आर सैमुअल Klatchko का दृष्टिकोण शायद सबसे बहुमुखी है। हालांकि, इसमें कमी है। बैश केवल 'सुस्त' पृष्ठभूमि रंगों का उपयोग कर सकता है, और इसके अग्रभूमि/पृष्ठभूमि रंगों को किसी भी एप्लिकेशन द्वारा ओवरराइड किया जा सकता है। अपने जीनोम टर्मिनल थीम को प्रोग्रामेटिक रूप से संशोधित करना, खासकर रीयलटाइम में, बहुत कठिन होगा, लेकिन बहुत सुंदर परिणाम देगा।

+0

@Sparr - ध्यान देने योग्य एक बात यह है कि मैंने PSMP नहीं, PROMPT_COMMAND की अनुशंसा की। PS1 (या PS2, आदि) में '0 चौड़ाई वर्ण' का उपयोग करना महत्वपूर्ण है क्योंकि बैश टर्मिनल हैंडलिंग को गड़बड़ कर देगा। मेरा मतलब यह देखने के लिए, 'निर्यात PS1 =' \ 033 [42m \ w \ $ ''और फिर कमांड लाइन टाइप करने का प्रयास करें जो टर्मिनल की चौड़ाई है। –

संबंधित मुद्दे