콘솔/가상 터미널에서 사용 가능한 모든 색상을 변경할 수 있는 방법이 있습니까?
콘솔이란 xterm이나 urxvt와 같은 것이 아니라 CTRL + ALT + F1을 누른 후에 얻는 것을 의미합니다. 그래서 내 생각엔 그게 변경을 의미할 것 같아
다음과 같이 이스케이프 시퀀스를 사용하여 8가지 색상을 변경할 수 있습니다.
echo -en "\e]PY######"
여기서 Y는 색상의 숫자 ID(0~7)이고 ######은 16진수 색상 값입니다.
내 궁극적인 목표는 솔라라이즈된 색상 구성표를 콘솔에 이식하는 것입니다. 왜냐하면 콘솔에 있든 X에 있든 상관없이 모두 똑같이 vim으로 보이고 싶기 때문입니다.
이에 대한 제안이 있으십니까?
xterm의 htop:
xterm의 htop, 태양광 색상
8가지 색상을 적용한 후 콘솔의 htop:
콘솔의 htop, 8가지 색상을 적용한 후
답변1
TTY 프레임 버퍼 콘솔은 커널 해킹 없이 8-16개 이상의 색상을 가질 수 있는 방법이 없습니다. 다음 인용문을 참조하십시오. "Linux 프레임 버퍼는 256개(또는 그 이상) 색상을 지원하지만 Linux 콘솔 드라이버는 지원하지 않습니다. 따라서 콘솔 애플리케이션은 여전히 Linux 콘솔에서는 프레임 버퍼 여부에 관계없이 16가지 색상으로 제한됩니다."
따라서 16개 또는 8개 이상의 색상을 가질 수 없습니다. ~/.bashrc에 설명된 것과 동일한 명령을 사용하여 프레임 버퍼 터미널(일명 ctrl+alt+1)의 색상을 변경하는 방법에 대한 튜토리얼이 있습니다.TTY 튜토리얼의 색상
답변2
콘솔에서 이 bash 기능을 사용해 보세요. 적절하게도 X 터미널에서는 작동하지 않습니다(탭 때문에 그런 것 같습니다). 특히 마지막에 사용된 세 파일을 확인하세요.
/sys/module/vt/parameters/default_red
/sys/module/vt/parameters/default_grn
/sys/module/vt/parameters/default_blu
clr () {
clear # GFX bug otherwise
setterm -regtabs 4
Color_names="bla red gre yel blu mag cya whi"
Color_arr=($Color_names)
tput setaf 4
tput setab 7
echo -n " normal "
tput sgr0
echo -n " "
tput setaf 7
tput setab 4
echo " bright "
tput sgr0
for cmd in sgr0 bold
do
tput $cmd
for m in 0 1 2 3 4 5 6 7
do
tput setaf $m
echo -n ${Color_arr[$m]}" "
done
done
echo
tput sgr0
cat /sys/module/vt/parameters/default_red \
/sys/module/vt/parameters/default_grn \
/sys/module/vt/parameters/default_blu | sed s/,0/", "/g | \
sed s/^0/" "/g | \
tr "," "\t"
}
댓글에 대한 응답으로 수정
예를 들어, 녹색 파일( sys/module/vt/parameters/default_grn
)의 두 번째 숫자를 다음과 같이 변경합니다 170
. 이렇게 하면 두 번째 색상(인덱스 1 포함)에 빨간색만큼 녹색이 제공되고 파란색은 제공되지 않습니다(적어도 제 경우에는 해당 숫자가 에 있으므로 default_red
170
, 그리고 0
) default_blu
.
이제 tput setaf 1; echo hi
. 여기서 전경색을 인덱스 1(변경한 색상)의 색상에 넣은 다음 인쇄합니다. (명령을 구분하기 위해 콜론이 있는 oneliner를 참고하세요. 그렇지 않으면 프롬프트가 그 tput
사이를 재설정할 수 있습니다.)
항상 동일하게 나타나면 라인을 다시 시도 echo -n '\033]R'
하십시오 tput
. 지금,둘 다"안녕하세요"는 일종의 노란색이어야 합니다.
작동하게 되었는지 여부를 알려주세요.