Thay đổi màu PS1 dựa trên màu nền?


12

Tôi đã học được rằng tôi có thể thay đổi định dạng của PS1, đặc biệt là màu của chuỗi. Sau đó, có thể thay đổi màu dựa trên màu nền của vỏ không? Hoặc, làm thế nào tôi có thể phát hiện màu nền của vỏ?

Câu trả lời:


4

Theo tôi biết, không có cách nào để truy vấn màu sắc của trình giả lập thiết bị đầu cuối. Bạn có thể thay đổi chúng bằng \e]4;NUMBER;#RRGGBB\a( NUMBERsố màu của thiết bị đầu cuối (0 Biến7 cho màu sáng, 8 trừ15 cho màu sáng) và #RRGGBBlà giá trị màu RGB thập lục phân) nếu thiết bị đầu cuối của bạn hỗ trợ chuỗi đó (tham khảo: ctlseqs ).

Các cơ chế phối màu mạnh mẽ thường có cài đặt nền tối hoặc sáng mà bạn phải cung cấp để cho biết bạn có nền đen hay xám đen hay nền trắng hoặc xám nhạt.

Khi bạn tự cấu hình, điều đó thường đủ để quyết định bạn sẽ luôn sử dụng cùng màu nền.


Bạn có thể nhận được số lượng màu được hỗ trợ trong mục termcap bằng cách xem "màu tput" nhưng trong nhiều trường hợp sẽ nói số lượng thấp, như 8, vì hỗ trợ termcap cho thiết bị đầu cuối 256 màu rất yếu.
Slacy

1
@slacy Đối với> 99% thiết bị đầu cuối ngày nay, dữ liệu termcap / terminfo là không liên quan: tất cả chúng đều là các biến thể nhỏ của xterm và các chi tiết khác nhau, chẳng hạn như số lượng màu, không được phản ánh trong giá trị TERMvà vì vậy không thể được thu được từ môi trường.
Gilles 'SO- ngừng trở nên xấu xa'

4

Nếu bạn đang sử dụng gnome-terminal, bạn có thể lấy màu nền cho bất kỳ cấu hình nào, trong trường hợp này đối với cấu hình Mặc định là

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

sau đó bạn có thể quyết định làm thế nào để thiết lập lời nhắc của bạn cho phù hợp.


2

Với xterm, bạn có thể truy vấn màu nền với \e]11;?\achuỗi thoát. Bạn cần đọc phản hồi từ thiết bị đầu cuối. Có một xtermcontrollệnh thực hiện điều đó cho bạn:

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

Điều tương tự cũng hoạt động trong gnome-terminal và có lẽ một số trình giả lập thiết bị đầu cuối khác nữa (nhưng chắc chắn không phải tất cả chúng).
egmont
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.