私はlocalhostのtmuxを使ってターミナルで素晴らしいテーマを持つことができる多くのドットファイルを持っています。私はキティ、フィッシュ、tmuxを使用します。色を正しく定義し、全体的な一貫性を維持するために、次のファイルを使用します。
- .X リソース
- 子猫のプロフィール
- fish_tip.fish
- .tmux.conf
また、同じArch + Fish + tmuxを実行し、まったく同じドットファイルを使用するリモートサーバーがあります。しかし、SSH経由でサーバーに接続すると、すべてがまったく異なるように見えます。
Googleで検索してみると、いくつかの奇妙な設定を追加するためのチュートリアルがたくさんありますが、それらのどれも実際に何が起こっているのかを説明していません(そして見てわかるように何も機能しません)。
(実際に理由を理解していないまま)操作しようとした方法は次のとおりです。
- tmux.confに追加:
set^[[3m -g default-terminal "xterm-kitty"
set-option^[[3m -ga terminal-overrides ",xterm-kitty*:Tc"
- xterm-kitty terminfoファイルを追加しました。
TERM
ログイン時に環境変数をxterm-kittyに変更してください。
これらすべてがどのように機能するかを指摘するためのリソースがあれば幸いです!ありがとうございます!
編集する:
TERM
明確にするために私が持っている価値は次のとおりです。
- ローカルホストから:
xterm-kitty
- tmux内のlocalhostから:
xterm-256color
- SSHを開いた後、リモートホストから直接:
xterm-kitty
- tmuxのリモートホストから:
xterm-256color
すべてのファイルはgitリポジトリを使用して同期され、すべてのバージョンは同じです。terminfo
に関連する同じファイルを転送しました。xterm-kitty
また、これスクリプトでは、すべての色が正しく表示され、両方のホストで同じであることがわかります。
また、tmuxなしでリモートシステムにログインすると、異なる色の組み合わせが生成されることも確認しました(どこでも同じ魚プロファイルを使用)。
答え1
default-terminal
TERM
tmux内でデフォルト値を設定します。に設定しないでくださいxterm-kitty
。 tmuxはxtermやkittyではありません。tmux-256color
コンピュータに存在する場合(選択)に設定しinfocmp tmux-256color
、そうでない場合に設定しますscreen-256color
。
TERM
同様に、すべての端末のシェル構成ファイルに同じ項目を設定しないでください。
あなたが持っている行は、tmuxに設定をterminal-overrides
見ると、端末がTrue(RGB)色をサポートしていることを意味します(それで)。TERM
xterm-kitty
Tc
TERM
inside tmux は tmux 内のプログラムに彼らが言う内容 (tmux) を知らせます。TERM
外部tmuxは、tmuxに通信しているオブジェクト(この場合はキティ)を知らせます。
ローカルで実行されているがSSHを介して実行されない場合、最も可能性の高いシナリオは次のとおりです。
TERM
外部tmuxとは異なります。echo $TERM
SSHを介してtmuxを起動する直前に、ローカルコンピュータに同じコンテンツが表示されますか?tmux設定は実際には同じではありません。確かですか?ある場所で必要な場合は
terminal-overrides
別の場所でも必要で、そうでなければ必要ありません。xterm-kitty
それが存在し、両方のコンピュータに同じですか?確認してくださいinfocmp xterm-kitty
。他のtmuxバージョン。彼らは同じだと確信していますか?確認してください
tmux -V
。
答え2
ローカルコンピュータでtmuxを使用してからリモートコンピュータでsshを実行すると、リモートセッションはインデックスカラー(256色)の代わりに(または追加で)RGBカラーを使用できることを知らせる方法はありません。これは、tmux "Tc"オーバーライドがリモートセッションに表示されないためです。
次の対応する端末の説明を修正することで、この問題を解決できます。基本端末たとえば、使用する設定を追加してtmuxを設定する端末の適用範囲端末と使い方を説明するテキストファイルでtic
(各マシンで)コンパイルしてください。たとえば(基本端末はいtmux
):
infocmp -x tmux >foo
printf '\tTc,\n' >>foo
tic -x foo
ケイティはよくある質問ただし、「-x」は無視されます。infocmp
。
考慮すべきいくつかの点があります。
生成されたバイナリファイルをコピーします。
tic
信頼できません(さまざまな理由で)。リモート側に同じ端末記述がある場合、リモートアプリケーションが端末記述を使用すると仮定すると、(より一貫した)動作が得られます。コンテンツ代わりに名前端末の説明。
答え3
問題を解決してみてください!これは、与えられたすべての答えと1つの重要な追加変数を組み合わせたものです。
必要なステップ:
TERM
使用された変数が各ホストと各tmux内で同じであることを確認してください。 (私はxterm-kitty
ホストとtlux-256color
TMUXセッション内で直接変数を使用しました。)ニコラス・マリオットのおかげで。Tc;
私が使用している端末でinfocmpに追加するには、次のようにします。このビデオはThomas Dickeyによって提供されました。:
infocmp -x tmux-256color >foo
printf '\tTc,\n' >>foo
tic -x foo
set -g fish_term24bit 1
魚がTrue Colorモードを使用するように強制するために、私のconfig.fishに追加されました。