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カラー(トゥルーカラー)に関するものであり、あなたが尋ねるものではありません。