터미널이 주로 어두운지 밝은지 확인하는 한 가지 방법은 배경색 값을 가져와 회색과 비교하는 것입니다.
하지만 이렇게 하려면 흰색의 RGB 값이 무엇인지 알아야 합니다(그 중 절반을 차지).
일부 터미널의 경우 0xff + 0xff + 0xff이고 다른 터미널의 경우 0xffff + 0xffff + 0xffff입니다.
이 두 가지 가능성(있는 경우 다른 가능성) 중 어느 것이 쉘 스크립트 내에 존재하는지 확인하는 방법에 대한 아이디어가 있습니까?
참고: 이는 다음과 유사합니다.어둡거나 밝은 터미널 배경을 설정하기 위한 공용 환경 변수그러나 질문은 다소 좁습니다.
답변1
아마도 당신은 다음에 설명된 것과 유사한 쿼리를 사용하고 있을 것입니다.XTerm 제어 순서:
OSC Ps ; Pt BEL
OSC Ps ; Pt ST
Ps = 4 ; c ; spec -> Change Color Number c to the color
specified by spec. This can be a name or RGB specification as
per XParseColor. Any number of c/spec pairs may be given.
The color numbers correspond to the ANSI colors 0-7, their
bright versions 8-15, and if supported, the remainder of the
88-color or 256-color table.
If a "?" is given rather than a name or RGB specification,
xterm replies with a control sequence of the same form which
can be used to set the corresponding color. Because more than
one pair of color number and specification can be given in one
control sequence, xterm can make more than one reply.
ffff
xterm 은 X 맨페이지에서 선호되는 형식이기 때문에 4자리 숫자(예: )를 사용합니다 .
The eight primary colors can be represented as:
black rgb:0/0/0
red rgb:ffff/0/0
green rgb:0/ffff/0
blue rgb:0/0/ffff
yellow rgb:ffff/ffff/0
magenta rgb:ffff/0/ffff
cyan rgb:0/ffff/ffff
white rgb:ffff/ffff/ffff
이 제어 시퀀스에 대한 응답으로 임의의 터미널에서 반환된 비트 수를 감지하는 스크립트를 작성해야 한다면 색상 1, 2, 4의 빨간색, 녹색 및 파란색 구성 요소를 살펴보겠습니다. , 이들은 여전히 "흰색"과 동일한 비트 수로 사용됩니다.
이것은 xterm의 스크린샷입니다.스크립트그것이 하는 일은:
나는 몇 가지 다른 터미널 에뮬레이터를 확인했습니다. 응답한 것들은 RGB 구성 요소를 사용했으며 그 중 가장 큰 것은 ANSI에 해당했습니다(응답한 세 개 중 두 개는 실제로 보고하지 않았지만).미국 국립표준협회색상 -ymmv).