배경색을 기준으로 PS1 색을 변경 하시겠습니까?


12

PS1의 형식, 특히 문자열의 색을 변경할 수 있다는 것을 알았습니다. 그러면 쉘의 배경색을 기준으로 색상을 변경할 수 있습니까? 또는 껍질의 배경색을 어떻게 감지합니까?

답변:


4

내가 아는 한 터미널 에뮬레이터의 색상을 쿼리하는 방법은 없습니다. 넌으로 변경할 수있다 \e]4;NUMBER;#RRGGBB\a(단, NUMBER단말 색수 (밝은 색 광의 색 0-7, 8-15)이며 #RRGGBB진수 RGB 컬러 값이다) 경우 단말기에서 지원 서열 그런 (참조 : ctlseqs ).

강력한 색 구성표 메커니즘에는 종종 검은 색 또는 어두운 회색 배경인지, 흰색 또는 밝은 회색 배경인지를 나타 내기 위해 제공해야하는 어둡거나 밝은 배경 설정이 있습니다.

자신을 구성 할 때는 항상 같은 배경색을 사용하기로 결정하는 것으로 충분합니다.


"색상 입력"을 보면 termcap 항목에서 지원되는 색상 수를 얻을 수 있지만 256 색 터미널에 대한 termcap 지원은 실제로 약하기 때문에 8과 같이 낮은 수를 말하는 경우가 많습니다.
slacy 2016 년

1
@slacy 오늘날 터미널의> 99 %에 대해 termcap / terminfo 데이터는 관련이 없습니다. xterm의 모든 작은 변형이며 색상 수와 같이 다른 세부 사항은 값에 반영 TERM되지 않으므로 환경에서 얻습니다.
Gilles 'SO- 악의를 멈춰라'

4

gnome-terminal을 사용하는 경우 모든 프로파일의 배경색을 얻을 수 있습니다.이 경우 기본 프로파일은 다음과 같습니다.

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

그런 다음 프롬프트를 적절하게 설정하는 방법을 결정할 수 있습니다.


2

xterm을 사용하면 \e]11;?\a이스케이프 시퀀스로 배경색을 쿼리 할 수 ​​있습니다 . 터미널에서 응답을 읽어야합니다. xtermcontrol당신을 위해 그것을 하는 명령이 있습니다 :

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

gnome-terminal 및 아마도 다른 터미널 에뮬레이터에서도 동일하게 작동합니다 (그러나 반드시 전부는 아닙니다).
egmont
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.