tmux는 256색 터미널에서 256색을 출력하고 8색 터미널에서 8색을 출력합니다.

tmux는 256색 터미널에서 256색을 출력하고 8색 터미널에서 8색을 출력합니다.

tmux256색 모드를 자동으로 선택하고 싶습니다 . 즉, 환경 변수가 있습니다.

TERM=tmux-256color

~에 tmux환경변수가 있을 때

TERM=xterm-256color

설정되었습니다외부.

기본 동작

256색 터미널 에뮬레이터

현재 동작은 tmux모든 경우에 8색 모드를 선택하는 것입니다. 256색을 지원하는 터미널 에뮬레이터(예: Gnome Terminal 또는 xterm)를 사용하고 256색을 지원하는지 확인하세요.

echo $TERM; tput colors
# xterm-256colors
# 256

그런 다음 시작하십시오 tmux. 기본적으로 tmux8가지 색상으로 전환됩니다 .

echo $TERM; tput colors
# screen
# 8

8색 터미널 에뮬레이터

8색 터미널로 전환하면, 즉 /dev/tty2Ctrl+Alt+F2를 눌러 전환하면 다음과 같은 결과가 나타납니다.

echo $TERM; tput colors
# linux
# 8

내부 tmux만큼 낡았어

echo $TERM; tput colors
# screen
# 8

강제 256색 모드

tmux256색 모드를 강제로 적용할 수 있나요?다음을 추가하여~/.tmux.conf

set -s default-terminal "tmux-256color"

그러나 이는 다음의 경우에도 적용됩니다.외부 터미널 에뮬레이터256색은 처음부터 지원되지 않습니다. 이것은 내가 원하는 것이 아닙니다.

적응형 256 색상 모드

가지다하나의 질문그리고자주하는 질문GitHub에서 명령문은 다음 중 하나를 설정합니다(사람들은 충돌하는 매개변수를 보고합니다).

set -ga terminal-overrides ",xterm-256color*:Tc"
set -sa terminal-overrides ",xterm-256color*:Tc"
set -ga terminal-overrides ",*256col*:Tc"
set -sa terminal-overrides ",*256col*:Tc"

터미널의 색상 모드를 선택 해야 tmux하지만 내 설치(Arch의 tmux 3.0)에서는 작동하지 않습니다.

tmux현재 터미널 에뮬레이터가 지원하는 색상에 따라 8색 또는 256색을 선택하는 명확한 방법이 있습니까 ?

답변1

예를 들어 xterm-256color를 사용하여 터미널에서 분리하고 xterm을 사용하여 터미널에 다시 연결하는 경우 이미 실행 중인 프로그램에서 TERM을 변경할 수 없기 때문에 tmux 자체가 전적으로 수행할 수 있는 작업은 아닙니다.

그러나 스스로 할 수 있습니다. 클라이언트 용어는 client_termname 형식으로 제공됩니다. 따라서 PS1이나 .profile 등에 다음과 같은 내용을 넣을 수 있습니다.

if [ -n "$TMUX" ]; then
    T=$(tmux display -p '#{client_termname}')
    case "$T" in
    *-256color)
         export TERM=tmux-256color
         ;;
    *)
         export TERM=tmux
         ;;
    esac
fi

분명히 연결되지 않은 세션에서 Pod를 생성하는 경우(client_termname은 비어 있음) 기본값은 tmux입니다. 여러 클라이언트에 세션이 연결된 경우 기본값은 가장 최근에 사용한 클라이언트에서 TERM입니다.

이와 같이 셸에서 수행하고 싶지 않은 경우 클라이언트 측 연결 후크를 사용하여 기본 터미널을 변경할 수 있습니다. 하지만 이는 기존 창이 아닌 새 창에서만 작동합니다.

또 다른 옵션은 항상 tmux-256color로 실행하고 외부 터미널이 256 색상을 수행할 수 없는 경우 tmux가 색상을 하향 변환하도록 하는 것입니다.

Tc에 관한 FAQ의 모든 내용은 RGB 색상(트루 컬러)에 관한 것이며 귀하가 묻는 내용이 아닙니다.

관련 정보