ฉันเรียนรู้ว่าฉันสามารถเปลี่ยนรูปแบบของ PS1 ได้โดยเฉพาะสีของสตริง จากนั้นเป็นไปได้หรือไม่ที่จะเปลี่ยนสีตามสีพื้นหลังของเปลือกหอย? หรือฉันจะตรวจจับสีพื้นหลังของเปลือกได้อย่างไร
ฉันเรียนรู้ว่าฉันสามารถเปลี่ยนรูปแบบของ PS1 ได้โดยเฉพาะสีของสตริง จากนั้นเป็นไปได้หรือไม่ที่จะเปลี่ยนสีตามสีพื้นหลังของเปลือกหอย? หรือฉันจะตรวจจับสีพื้นหลังของเปลือกได้อย่างไร
คำตอบ:
เท่าที่ฉันรู้ไม่มีวิธีสอบถามสีของเทอร์มินัลอีมูเลเตอร์ คุณสามารถเปลี่ยนได้ด้วย\e]4;NUMBER;#RRGGBB\a
(โดยที่NUMBER
หมายเลขสีเทอร์มินัล (0–7 สำหรับสีอ่อน 8–15 สำหรับสีสว่าง) และ#RRGGBB
เป็นค่าสีฐานสิบหก RGB) หากเทอร์มินัลของคุณรองรับลำดับนั้น (อ้างอิง: ctlseqs )
กลไกโครงร่างสีที่มีประสิทธิภาพมักจะมีการตั้งค่าพื้นหลังสีเข้มหรือสีอ่อนที่คุณต้องระบุเพื่อระบุว่าคุณมีพื้นหลังสีดำหรือสีเทาเข้มหรือพื้นหลังสีขาวหรือสีเทาอ่อน
เมื่อคุณกำหนดค่าเองก็มักจะเพียงพอที่จะตัดสินใจว่าคุณจะใช้สีพื้นหลังเดียวกันเสมอ
TERM
สิ่งนั้น ที่ได้รับจากสภาพแวดล้อม
หากคุณใช้ gnome-terminal คุณสามารถรับสีพื้นหลังสำหรับโปรไฟล์ใด ๆ ในกรณีนี้สำหรับโปรไฟล์เริ่มต้นเป็น
$ gconftool-2 --get /apps/gnome-terminal/profiles/Default/background_color
#E12FE12FC74D
จากนั้นคุณสามารถตัดสินใจว่าจะตั้งค่าพรอมต์ของคุณอย่างไร
ด้วย xterm คุณสามารถสืบค้นสีพื้นหลังด้วย\e]11;?\a
ลำดับ escape คุณต้องอ่านคำตอบจากเครื่อง มีxtermcontrol
คำสั่งที่ทำเพื่อคุณ:
~$ xtermcontrol --get-bg
rgb:b0b0/b0b0/b0b0