저주 응용 프로그램의 배경색을 변경하는 방법은 무엇입니까?

저주 응용 프로그램의 배경색을 변경하는 방법은 무엇입니까?

나는 irssi, mc, tig와 같은 ncurses 애플리케이션 어디에서나 볼 수 있는 파란색 배경을 싫어합니다. 색상을 변경하고 싶은데 어떻게 해야 합니까?

Midnight Commander에 테마가 있다는 것은 알고 있지만 모든 CLI 프로그램의 전역 설정은 어떻습니까? settermLinux와 FreeBSD에서 사용할 수 있다는 것을 알았지 vidcontrolvidcontrol나에게는 작동하지 않으며 VESA용이므로 나에게 필요한 것이 아니라고 생각합니다. 저는 여기서 SSH를 통해 작업하고 있습니다.

답변1

일부 터미널(예: xterm)에서는 리소스 파일을 통해 또는 동적으로 색상 재정의를 허용합니다. $TERM의 terminfo 항목에 올바르게 노출된 경우 다음을 사용하여 이를 수행할 수 있습니다.

tput initc 4 1000 0 0

ANSI 색상 4(보통 파란색)를 밝은 빨간색인 RGB(1000, 0 0)로 변경합니다.

터미널이 색상 재정의를 지원하지 않는 경우(참고자료 참조 infocmp -1 | grep initc), terminfo를 사용하는 애플리케이션이 다른 이스케이프 시퀀스를 보내 색상 4(파란색)를 요청하도록 속일 수도 있습니다.

infocmp -x > terminal.info

를 편집하고 terminal.info터미널 이름을 "myterm"과 같은 것으로 바꾸고 "setab" 속성(ANSI 배경 설정)을 편집합니다.

바꾸다

setab=\E[4%p1%dm

그건:

tput setab 4

^[[44m을 보내고 다음으로 변경하세요.

setab=\E[4%?%p1%{4}%=%t1%e%p1%d%;m

%? ....if-then-else로, "4"가 요청되면 "1"이 전송되고, 그렇지 않으면 요청된 값이 전송됨을 나타냅니다.

그래서

tput setab 4

보내드립니다 ^[[41m, (빨간색) tput setab 5보내드립니다^[[45m

그런 다음 다음 명령을 사용하여 컴파일합니다.

TERMINFO=$HOME/.terminfo tic -x terminal.info

다음과 같이 사용하십시오.

TERMINFO=$HOME/.terminfo TERM=myterm the-application-to-trick

이는 애플리케이션이 terminfo 데이터베이스를 사용하여 시퀀스를 터미널로 보내는 경우에만 작동합니다.

답변2

TERM 변수를 ANSI 색상을 지원하지 않는 터미널로 전환하면 더 이상 파란색 배경이 표시되지 않습니다.

관련 정보