xterm과 같은 터미널에서 최대 RGB 값(흰색)을 결정합니다.

xterm과 같은 터미널에서 최대 RGB 값(흰색)을 결정합니다.

터미널이 주로 어두운지 밝은지 확인하는 한 가지 방법은 배경색 값을 가져와 회색과 비교하는 것입니다.

하지만 이렇게 하려면 흰색의 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.

ffffxterm 은 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의 스크린샷입니다.스크립트그것이 하는 일은: xterm 및 query-colors.pl

나는 몇 가지 다른 터미널 에뮬레이터를 확인했습니다. 응답한 것들은 RGB 구성 요소를 사용했으며 그 중 가장 큰 것은 ANSI에 해당했습니다(응답한 세 개 중 두 개는 실제로 보고하지 않았지만).미국 국립표준협회색상 -ymmv).

관련 정보