나는 irssi, mc, tig와 같은 ncurses 애플리케이션 어디에서나 볼 수 있는 파란색 배경을 싫어합니다. 색상을 변경하고 싶은데 어떻게 해야 합니까?
Midnight Commander에 테마가 있다는 것은 알고 있지만 모든 CLI 프로그램의 전역 설정은 어떻습니까? setterm
Linux와 FreeBSD에서 사용할 수 있다는 것을 알았지 vidcontrol
만 vidcontrol
나에게는 작동하지 않으며 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 색상을 지원하지 않는 터미널로 전환하면 더 이상 파란색 배경이 표시되지 않습니다.