เปลี่ยนสี PS1 ตามสีพื้นหลังหรือไม่


12

ฉันเรียนรู้ว่าฉันสามารถเปลี่ยนรูปแบบของ PS1 ได้โดยเฉพาะสีของสตริง จากนั้นเป็นไปได้หรือไม่ที่จะเปลี่ยนสีตามสีพื้นหลังของเปลือกหอย? หรือฉันจะตรวจจับสีพื้นหลังของเปลือกได้อย่างไร

คำตอบ:


4

เท่าที่ฉันรู้ไม่มีวิธีสอบถามสีของเทอร์มินัลอีมูเลเตอร์ คุณสามารถเปลี่ยนได้ด้วย\e]4;NUMBER;#RRGGBB\a(โดยที่NUMBERหมายเลขสีเทอร์มินัล (0–7 สำหรับสีอ่อน 8–15 สำหรับสีสว่าง) และ#RRGGBBเป็นค่าสีฐานสิบหก RGB) หากเทอร์มินัลของคุณรองรับลำดับนั้น (อ้างอิง: ctlseqs )

กลไกโครงร่างสีที่มีประสิทธิภาพมักจะมีการตั้งค่าพื้นหลังสีเข้มหรือสีอ่อนที่คุณต้องระบุเพื่อระบุว่าคุณมีพื้นหลังสีดำหรือสีเทาเข้มหรือพื้นหลังสีขาวหรือสีเทาอ่อน

เมื่อคุณกำหนดค่าเองก็มักจะเพียงพอที่จะตัดสินใจว่าคุณจะใช้สีพื้นหลังเดียวกันเสมอ


คุณสามารถรับจำนวนสีที่รองรับได้ในรายการ termcap โดยดูที่ "tput colours" แต่ในหลาย ๆ กรณีที่จะบอกว่ามีจำนวนน้อยเช่น 8 เนื่องจาก termcap รองรับเทอร์มินัล 256 สีอ่อนมาก
slacy

1
@slacy สำหรับ> 99% ของเทอร์มินัลทุกวันนี้ข้อมูล termcap / terminfo ไม่เกี่ยวข้อง: พวกเขาทั้งหมดมีการเปลี่ยนแปลงเล็กน้อยของ xterm และรายละเอียดที่แตกต่างกันเช่นจำนวนสีไม่ได้สะท้อนให้เห็นถึงคุณค่าของTERMสิ่งนั้น ที่ได้รับจากสภาพแวดล้อม
Gilles 'ดังนั้น - หยุดความชั่วร้าย'

4

หากคุณใช้ gnome-terminal คุณสามารถรับสีพื้นหลังสำหรับโปรไฟล์ใด ๆ ในกรณีนี้สำหรับโปรไฟล์เริ่มต้นเป็น

   $ gconftool-2 --get /apps/gnome-terminal/profiles/Default/background_color
   #E12FE12FC74D

จากนั้นคุณสามารถตัดสินใจว่าจะตั้งค่าพรอมต์ของคุณอย่างไร


2

ด้วย xterm คุณสามารถสืบค้นสีพื้นหลังด้วย\e]11;?\aลำดับ escape คุณต้องอ่านคำตอบจากเครื่อง มีxtermcontrolคำสั่งที่ทำเพื่อคุณ:

~$ xtermcontrol --get-bg
rgb:b0b0/b0b0/b0b0

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