TERM 변수가 터미널 에뮬레이터의 트루 컬러 지원을 반영하지 않는 이유

TERM 변수가 터미널 에뮬레이터의 트루 컬러 지원을 반영하지 않는 이유

따라서 st 터미널 에뮬레이터를 사용 TERM하도록 변수를 설정하면 256이 표시됩니다 st-256color.tput colors

그러나 내가 실행한 여러 소스와 테스트에 따르면 ST는 TRECOLOR를 지원하는 것으로 보입니다. 바라보다https://github.com/termstandard/colors#complete-supporting

많은 프로그램과 응용 프로그램이 색상 지원에 의존 TERM하거나 COLORTERM거의 감지하지 못하는 것으로 보이며 이는 문제가 있는 것 같습니다.

대부분의 온라인 정보에서는 수동으로 설정하지 말 것을 강력히 권장하므로 TERM문제가 어떻게 해결되는지 모르겠습니다.

TERMST가 변수를 올바르게 설정하지 않는 것이 문제인가요? 색상 기능을 다르게 확인하지 않는 응용 프로그램의 버그입니까?

이 경우 트루 컬러 지원을 감지하는 이상적인 방법은 무엇입니까?

답변1

이것은 TERM단순한 변수가 아닙니다. 어떤 터미널 설정을 사용해야 하는지 지정합니다. 기본적으로 터미널은 많은 이스케이프 시퀀스를 이해합니다. 하지만 서로 다른 터미널은 동일한 이스케이프 시퀀스에 대해 서로 다른 작업을 수행할 수 있습니다. 또는 동일한 작업에 다른 이스케이프 시퀀스가 ​​필요합니다. 이는 터미널 이스케이프 시퀀스 데이터베이스를 통해 해결됩니다 terminfo.

/usr/lib/terminfo(또는 *nix 취향에 따라) 로 이동하면 파일이 실제로 가리키는 /usr/share/terminfo많은 파일(디렉토리로 그룹화됨)을 찾을 수 있습니다 . TERM이는 제어 시퀀스 = 이스케이프 시퀀스 쌍의 시퀀스로 구성된 컴파일된 바이너리입니다.

infocmpterminfo 파일을 실행하여 디코딩 할 수 있습니다 .

man 5 terminfo제어 시퀀스의 전체 목록과 설명을 보려면 실행하세요 .

터미널에 트루 컬러를 표시하려면 해당 terminfo파일을 찾거나 직접 작성하십시오. 그 후에는 를 사용하여 선택할 수 있습니다 TERM.

관련 정보