tmux
256색 모드를 자동으로 선택하고 싶습니다 . 즉, 환경 변수가 있습니다.
TERM=tmux-256color
~에 tmux
환경변수가 있을 때
TERM=xterm-256color
설정되었습니다외부.
기본 동작
256색 터미널 에뮬레이터
현재 동작은 tmux
모든 경우에 8색 모드를 선택하는 것입니다. 256색을 지원하는 터미널 에뮬레이터(예: Gnome Terminal 또는 xterm)를 사용하고 256색을 지원하는지 확인하세요.
echo $TERM; tput colors
# xterm-256colors
# 256
그런 다음 시작하십시오 tmux
. 기본적으로 tmux
8가지 색상으로 전환됩니다 .
echo $TERM; tput colors
# screen
# 8
8색 터미널 에뮬레이터
8색 터미널로 전환하면, 즉 /dev/tty2
Ctrl+Alt+F2를 눌러 전환하면 다음과 같은 결과가 나타납니다.
echo $TERM; tput colors
# linux
# 8
내부 tmux
만큼 낡았어
echo $TERM; tput colors
# screen
# 8
강제 256색 모드
tmux
256색 모드를 강제로 적용할 수 있나요?다음을 추가하여~/.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 색상(트루 컬러)에 관한 것이며 귀하가 묻는 내용이 아닙니다.