จะให้แต่ละเทอร์มินัลเสมือนในหน้าจอ GNU เป็นสีพื้นหลังของตัวเองได้อย่างไร


1

ฉันมีความฝัน: ฉันต้องการให้แต่ละเทอร์มินัลเสมือนภายในหน้าจอ GNU มีสีพื้นหลังที่เป็นเอกลักษณ์ของตัวเอง

ฉันคิดว่าฉันสามารถปลอมมันในสคริปต์. bashrc ที่ปล่อยรหัสควบคุม xterm เพื่อตั้งค่าสีพื้นหลังตามตัวแปร $ WINDOW - แต่วิธีนี้จะไม่ทำงานถ้าฉันเริ่มกระบวนการที่ไม่ใช่การทุบตี (เช่นถ้าฉันเรียกใช้ " หน้าจอ vi foo ")

มีวิธีที่ฉลาดกว่านี้ในการเปลี่ยนสีพื้นหลังทุกครั้งที่เปลี่ยนเทอร์มินัลเสมือนจริงหรือไม่?

คำตอบ:


0

ฉันชอบที่จะพิสูจน์ว่าผิด แต่ไม่สามารถทำได้ด้วยเทอร์มินัล vt100 ซึ่งเป็นหน้าจอที่เลียนแบบเพื่อตั้งค่าสีพื้นหลังเป็นค่าเริ่มต้น มันเป็นไปได้เพียงผ่านทางลำดับ CSI เพื่อเปลี่ยนสีพื้นหลังเป็นค่าเริ่มต้น เป็นไปได้ว่าการจัดเตรียมเทอร์มินัลโฮสต์ของคุณรองรับเพื่อส่งลำดับหนี OSC เพื่อตั้งค่าสีพื้นหลังเริ่มต้น ผลของการตั้งค่าสีพื้นหลังด้วยวิธีนี้ แต่หมายความว่าการเปลี่ยนแปลงที่ทำกับสีพื้นหลังในหน้าต่างหน้าจออื่นจะไม่ได้รับการรักษาไว้ กล่าวอีกนัยหนึ่งถ้าสีพื้นหลังของเทอร์มินัลโฮสต์เปลี่ยนไปในหน้าต่างหน้าจอเดียวคุณจะเปลี่ยนเป็นหน้าต่างอื่นและเปลี่ยนสีพื้นหลังเริ่มต้นอีกครั้งสิ่งที่คุณเห็นเมื่อคุณเปลี่ยนกลับไปเป็นหน้าต่างหน้าจอเดิมเป็นสีพื้นหลังล่าสุด เปลี่ยนแปลง

ตัวอย่างต่อไปนี้. screenrc แสดงให้เห็นถึงการพิสูจน์แนวคิด มันใช้งานได้กับ konsole แต่ไม่สามารถใช้งานได้จริงเนื่องจากมันต้องการให้แต่ละหน้าต่างเป็น shell prompt เสมอซึ่งสามารถส่งลำดับที่เหมาะสมได้

# start a few screen windows
screen 0
screen 1
screen 2
screen 3

# set up key bindings to set the host terminal bg color when you switch windows
# spawn the echo in a subshell to avoid displaying single quote/also need to quote the trailing backslash
bind 0 eval "select 0" "stuff \"(echo -n $'\eP\e]11;navy\cg\e\134\134\134\134') \012\""
bind 1 eval "select 1" "stuff \"(echo -n $'\eP\e]11;forestgreen\cg\e\134\134\134\134') \012\""
bind 2 eval "select 2" "stuff \"(echo -n $'\eP\e]11;slategray\cg\e\134\134\134\134') \012\""
bind 3 eval "select 3" "stuff \"(echo -n $'\eP\e]11;purple\cg\e\134\134\134\134') \012\""

# switch to the first window and set the background color to blue
eval "select 0" "stuff \"(echo -n $'\eP\e]11;navy\cg\e\134\134\134\134') \012\""

สำหรับสีที่รองรับโปรดอ้างอิงเอกสารประกอบของ Qt

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.