2010-03-24 11 views
12

(यकीन नहीं इस सवाल यहाँ या सुपर उपयोगकर्ता के अंतर्गत आता है तो)क्या टर्मिनल के पृष्ठभूमि रंग को निर्धारित करने का कोई तरीका है?

मैं अगर वहाँ एक टर्मिनल की पृष्ठभूमि का रंग निर्धारित करने के लिए किसी भी तरह से है जानना चाहते हैं?

मेरे मामले में, gnome-terminal का उपयोग कर।
इससे कोई फर्क नहीं पड़ता, क्योंकि यह पूरी तरह से टर्मिनल एप्लिकेशन तक इसकी खिड़कियों की पृष्ठभूमि खींचने के लिए है, जो कि सादे रंग की तुलना में कुछ और भी हो सकता है।

उत्तर

4

मैं निम्नलिखित के साथ आया है:

#!/bin/sh 
# 
# Query a property from the terminal, e.g. background color. 
# 
# XTerm Operating System Commands 
#  "ESC ] Ps;Pt ST" 

oldstty=$(stty -g) 

# What to query? 
# 11: text background 
Ps=${1:-11} 

stty raw -echo min 0 time 0 
# stty raw -echo min 0 time 1 
printf "\033]$Ps;?\033\\" 
# xterm needs the sleep (or "time 1", but that is 1/10th second). 
sleep 0.00000001 
read -r answer 
# echo $answer | cat -A 
result=${answer#*;} 
stty $oldstty 
# Remove escape at the end. 
echo $result | sed 's/[^rgb:0-9a-f/]\+$//' 

स्रोत/रेपो/सार: https://gist.github.com/blueyed/c8470c2aad3381c33ea3

+0

यह gnome-terminal 3.6.2 के साथ काम नहीं करता प्रतीत होता है। – aramadia

0

क्या आपका मतलब टर्मिनल पृष्ठभूमि रंग का पता लगाने या टर्मिनल रंग सेट करने का तरीका है?

यदि उत्तरार्द्ध आप रंग प्राप्त करने के लिए अपने टर्मिनल के PS1 पर्यावरण परिवर्तक से पूछ सकते हैं।

यहाँ की स्थापना (और इसलिए उत्पन्न होने वाली) टर्मिनल रंग पर एक लेख है: apparently rxvt-only $COLORFGBG से http://www.ibm.com/developerworks/linux/library/l-tip-prompt/

+0

मैं पृष्ठभूमि रंग का पता लगाने के मतलब है। अक्षरों को मुद्रित करने के लिए उपयोग नहीं किया गया रंग (बचने के कोड का उपयोग करके), लेकिन खिड़की का ही। अच्छा लेख हालांकि :) –

1

अलावा, मुझे पता है कि कुछ और भी मौजूद नहीं कर रहा हूँ। ज्यादातर लोग referring to प्रतीत होते हैं कि vim does it, और यहां तक ​​कि यह भी एक शिक्षित अनुमान है।

11

इस के लिए एक xterm control sequence है: (। \e और \a ESC और BEL वर्ण, क्रमशः)

\e]11;?\a 

xterm-संगत टर्मिनल, उसी क्रम के साथ उत्तर चाहिए प्रश्नवाचक चिह्न एक एक्स 11 colorpec द्वारा प्रतिस्थापित, उदाहरण के लिए काले रंग के लिए rgb:0000/0000/0000

+1

इसका उपयोग करने के तरीके के बारे में कुछ जानकारी एक उत्कृष्ट जोड़ होगी। (उदाहरण के लिए, शेल-स्क्रिप्ट का एक स्निपेट जो शैल के पृष्ठभूमि रंग के आधार पर एक अलग अग्रभूमि रंग में एक शब्द मुद्रित करता है?) – ELLIOTTCABLE

+0

(साथ ही, मुझे संदेह है कि यह टेक्स्ट * के लिए केवल पृष्ठभूमि रंग * प्राप्त करेगा, अगर कोई बंद हो वास्तविक टर्मिनल विंडो का पृष्ठभूमि-रंग नहीं, जो मुझे संदेह है, अभी भी 'rxvt' के बाहर अनुपयोगी है।) – ELLIOTTCABLE

+0

मैक 10.10.4 में, यह (और @ ब्लूयड का समान उत्तर) ऐप्पल टर्मिनल में काम नहीं कर रहा है (जो खुद को xterm-color के रूप में पहचानता है), लेकिन नियमित xterm में काम करता है। – TextGeek

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

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