Невозможно включить поддержку TrueColor в tmux через переопределение terminfo

Невозможно включить поддержку TrueColor в tmux через переопределение terminfo

дистрибутив: Arch Linux.

У меня есть сборка st из AUR и tmux из официального репозитория. В st я нашел хорошую поддержку TrueColor, которая работает с последней версией Vim через опцию termguicolors. Но когда я попытался перенести это в tmux, я столкнулся с некоторыми проблемами.

В первый раз выход

tmux info | grep Tc

изнутри tmux был

197: Tc: [missing]

после прочтения страницы руководства tmux я обнаружил, что эта опция должна привести к tmux Tc

set-option -g terminal-overrides "st-256color:Tc"

где из моего эмулятора терминала он возвращает мне:

TERM=st-256color 

Но результат tmux info все равно был тот же. Просто для проверки я установил xterm и попробовал те же манипуляции с ним, но это не дало мне другого результата. В конце концов tmux распознает, что терминал поддерживает 256 цветов и эмулирует true color через него

решение1

Вы можете изменить копию описания терминала, чтобы указать этот флаг:

infocmp -x >foo
edit foo, adding "Tc," after the end of any line ending with a comma
tic -x foo

Это будет работать для ncurses (который есть в любом дистрибутиве Linux) ивозможноNetBSD ругается.

решение2

Вам необходимо добавить -a, а не переопределять существующие возможности терминала:

set-option -ga terminal-overrides ",*256*:Tc"

Это будет работать для любого терминала, поддерживающего 256 цветов.

Проверьте, нет ли set -g terminal-overridesгде-нибудь еще чего-нибудь подобного в вашем конфигурационном файле.


Для vim, вам, вероятно, также понадобится:

set -g default-terminal "screen-256color"

Связанный контент