프로그램이 터미널에서 사용되는 색상을 얻는 것이 가능합니까? [복사]

프로그램이 터미널에서 사용되는 색상을 얻는 것이 가능합니까? [복사]

터미널에서는 검정색 배경에 흰색 텍스트를 사용합니다. 이 프로그램에는 흰색 배경에 검정색 텍스트나 이와 유사한 것이 필요한 것 같습니다. 색상은 중요한 명령을 강조하는 데 사용되므로 일반 텍스트를 검정색으로 표시합니다. 내 질문은 프로그램이 터미널, 로컬 및 SSH에 사용되는 색상을 인식하여 필요할 때 색상을 식별하고 변경할 수 있다는 것입니다. 가능하다면 버그 보고서를 제출할 계획이지만, 할 수 있는 일이 없으면 그렇게 하지 않겠습니다.

답변1

터미널에 따라 다르지만 간단히 대답하자면 '예'입니다. 색상을 지원하는 대부분의 터미널은 색상 설정을 쿼리하는 방법(또는 색상 팔레트 변경)도 지원합니다.

전체 화면 텍스트 모드 인터페이스를 제공하는 프로그램은 일반적으로 다음을 사용합니다.저주 도서관. 기능을 제공합니다color_content배경과 전경을 지정하는 색상 쌍의 빨강-녹색-파랑 값을 쿼리합니다. 이것색상 쌍 0기본값입니다.

텍스트만 인쇄하고 커서를 이동하지 않는 프로그램은 색상을 변경하기 위해 이스케이프 시퀀스를 인쇄하여 이를 수행하는 경우가 많습니다. 이론적으로 서로 다른 터미널은 서로 다른 이스케이프 시퀀스를 사용할 수 있지만 실제로는 모든 최신 터미널(터미널이 다르게 작동하는 Windows의 터미널 제외)은 다음을 포함하는 기본 이스케이프 시퀀스 세트를 지원합니다.설정된 색상. 이스케이프 시퀀스가 ​​있습니다색상 정보 쿼리(저주도 이런 식으로 작동합니다.) 하지만 사용하기가 조금 어렵습니다.

이 모든 작업은 SSH를 통해 투명하게 이루어집니다.

관련 정보