콘솔/가상 터미널의 색상 변경

콘솔/가상 터미널의 색상 변경

콘솔/가상 터미널에서 사용 가능한 모든 색상을 변경할 수 있는 방법이 있습니까?
콘솔이란 xterm이나 urxvt와 같은 것이 아니라 CTRL + ALT + F1을 누른 후 얻는 것을 의미합니다. 그러니까 그건 변화를 의미하는 것 같아요

다음과 같이 이스케이프 시퀀스를 사용하여 8가지 색상을 변경할 수 있습니다.

echo -en "\e]PY######"

여기서 Y는 색상의 숫자 ID(0~7)이고 ######은 16진수 색상 값입니다.

내 궁극적인 목표는 Solarized 색상 구성표를 콘솔에 포팅하는 것입니다. 왜냐하면 콘솔에 있든 vim에 있든 동일하게 보이길 원하기 때문입니다.

이에 대한 제안이 있으십니까?

xterm의 htop:
xterm의 htop, 일광 색상

8가지 색상을 적용한 후 콘솔의 htop:
htop 콘솔에서 8가지 색상을 적용한 후 다음을 수행할 수 있습니다.

답변1

TTY 프레임 버퍼 콘솔은 커널 해킹 없이 8-16색 이상을 가질 수 없습니다. 다음 인용문을 참조하십시오. "Linux 프레임 버퍼는 256(또는 그 이상) 색상을 지원하지만 Linux 콘솔 드라이버는 지원되지 않습니다. 따라서 콘솔 응용 프로그램은 여전히 ​​16색으로 제한됩니다. 프레임버퍼 유무에 관계없이 Linux 콘솔."

따라서 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 1700있습니다 default_blu.

이제 를 입력합니다 tput setaf 1; echo hi. 여기서 전경색을 인덱스 1의 색상(변경한 색상)으로 설정한 다음 인쇄합니다. (한 줄의 명령을 콜론으로 구분해야 합니다. 그렇지 않으면 프롬프트가 tput그 사이에 명령을 재설정할 수 있습니다.)

평소와 동일해 보인다면 라인을 다시 시도해 보세요 echo -n '\033]R'. tput지금,둘 다"안녕"은 노란색이어야 합니다.

작동하게 되면(또는 작동하지 않으면) 알려주세요.

관련 정보