alacritty設定を使用してtmuxを介してnvimを実行すると、色が異なります。

alacritty設定を使用してtmuxを介してnvimを実行すると、色が異なります。

背景:Arcolinuxインストールを設定しています。アジャイルを開始するには、キーボードショートカットSUPER + Enterがあります。

私が望むのは、alacrittyに新しいtmuxセッションを自動的に作成して開始させることです(まだ接続されているセッションがない場合)。または、何も追加されていない場合は、既存のtmuxセッションに追加されます。

alacritty.ymlに以下を追加してこれを達成しました。

shell:
  program: /usr/bin/bash
  args: 
    - -l
    - -c
    - "tmux ls | grep -v attached && tmux attach || tmux"

これらすべては私が望む方法で正確に動作します。 1つを除いて、このアプローチを使用するとnvimの色がめちゃくちゃになります(暗いので、視覚モードは背景と同じ強調色を持ちます。迷惑です)。

いくつかの関連する質問を見つけて解決策を試しました。たとえば、私のtmux設定には次のものがあります(および2つのライナーを含む他のバリエーション)。

set -ag terminal-overrides ",xterm-256color:RGB"

TERM変数がに設定されていることを確認し、xterm-256colornvimで背景を「暗」に設定してみました。

上記の設定を使用してalacrittyに接続されているtmuxセッションでnvimを起動すると、どちらも役に立たないようです。

しかし、alacritty設定を削除してコマンドを実行してtmuxに手動で接続すると、すべてが正常に機能し、nvimが期待どおりに見えます。

/usr/bin/bash -l -c "tmux ls | grep -v attached && tmux attach || tmux"

alacritty設定から起動すると、なぜ他の結果が出るのかがわかります。

参考までに、私がこれを行う理由の1つは、SUPER + Enterのバインディング設定がどこにあるのかわからず、どの設定ファイルや設定にも見つからないことです(追跡するより良い方法はあります)。それで、これも役に立つと思いました。

答え1

これが他の人に役立つことを願っています:

問題を解決しましたが、まだ少し混乱しています。 nvimで実行すると、:checkhealthTERM変数に問題があることが確認されます。 TERMがtmux-256color次の警告に設定されていることが報告されました。

警告 Tc と RGB の両方の機能が設定されていません。 True Colorが無効になっています。 |'termguicolors'| が正しく機能しません。

混乱する部分は、用語をすばやく設定できることです。ただし、文書には次のように記載されています。

# This value is used to set the `$TERM` environment variable for
# each instance of Alacritty. If it is not present, alacritty will
# check the local terminfo database and use `alacritty` if it is
# available, otherwise `xterm-256color` is used.

実行したときにecho $TERM返されたxterm-256colorままになりましたが、回避策はalacritty設定で次のようにTERMを明示的に設定することでしたxterm-256color

env:
  TERM: "xterm-256color"

このエントリもtmux設定に設定する必要があります(ただしすでに設定されています)。

set -ag terminal-overrides ",xterm-256color:RGB"

関連情報