Gnome-терминал работает неправильно с экраном-256colors

Сегодня я заметил, что у меня не было поддержки цвета 256 в Weechat. Я решил, что это будет быстрым решением. Это не так.

Первое, что я искал в googled, - это тестирование цветовой поддержки в терминале. Я установил colortest на моем локальном компьютере, и когда я запустил его, он отображает 256 цветов. Однако, когда я запускал echo $TERM, он показывал мне xterm.

Так как я не знаю подробностей обо всех этих вещах, я пытался настроить его таким образом, чтобы он соответствовал каждому учебнику на тема. Все они говорят, что это должно дать мне screen-256colors.

Первое, что я сделал, это добавить это в мой файл .zshrc:

# If the $term variable is xterm, change it to 256 colors!
if [ "$TERM" = "xterm" ]; then
    # No it isn't, it's gnome-terminal
    export TERM="xterm-256color"
fi

В нем написано xterm-256colors вместо [ f11]. Это нормально, в каком-то учебнике мне было сказано.

Я запускаю новый терминал, echo $TERM, и я замечаю, что он действительно установлен. Запустите tmux и посмотрите, что это говорит мне, когда я набираю echo $TERM. В нем говорится screen. Так что это должно показать мне screen-256colors, чтобы он работал правильно в weechat. Поэтому я попытался изменить xterm-256colors в файле .zshrc на screen-256colors, но когда я это сделаю, я получаю искаженный вывод. См. Скриншот.

Итак, следующее я искал, как изменить переменную для tmux. Я нашел эту ссылку. Он показывает возможность настройки tmux для использования 256 цветов. Это вариант, который показан практически во всех учебниках.

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

Итак, я попробовал, но это ничего не изменило. Так что я погулял вокруг еще и нашел эту ссылку . Цитата:

Tmux относительно придирчив к правильному подключению терминала. Если вы можете, установите значение термина в конфигурации терминала gnome, а не в вашем .bashrc. В противном случае окружайте эти настройки с помощью проверки на "screen" или "screen-256color" TERM, и не сбрасывайте их в этом случае.

Хорошо, поэтому я понимаю, что вне tmux я не должен использовать значения screen* для $TERM. Это нормально, потому что он установлен на xterm-256colors. Затем в нем четко указано, что я не должен переопределять переменную $TERM, если она установлена ​​на screen. Который я убедился в использовании теста if в файле .zshrc.

То, что меня смущает, это то, что 256 цветов действительно работают в tmux. См. Снимок экрана ниже. Когда я запускаю echo $TERM внутри tmux, он показывает screen. Когда я запускаю colortest-256, он показывает мне все цвета правильно. Тем не менее, я думаю, weechat основывается на переменной $TERM, чтобы показывать цвета. И поскольку я запускаю его внутри tmux с $TERM, установленным на screen, он предполагает, что у меня нет поддержки цвета 256.

enter image description here

Я в тупике о том, как решить эту проблему. Все, что я хотел, были некоторые цвета в weechat:>

Для полноты ниже приведены два моих конфигурационных файла.

.zshrc

# Path to your oh-my-zsh installation.
export ZSH=/home/christophe/.oh-my-zsh
ZSH_THEME="flazz"
plugins=(git command-not-found common-aliases dircycle lein)


# Show dots for progress
COMPLETION_WAITING_DOTS="true"

##########
## PATH ##
##########

# Export directory if it exists.
#if [ -d "/usr/local/go/bin" ]; then
#    export PATH=$PATH:/usr/local/go/bin
#fi

#############
## ALIASES ##
#############

alias randompass="< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-32};echo;"

############
## TWEAKS ##
############

# Disable shared history
setopt no_share_history


# Start existing or new tmux session each shell startup
#[[ $TERM != "screen" ]] && exec tmux attach -d
alias chat='tmux attach -dt weechat || tmux new -s weechat \; new-window htop'


# If the $term variable is xterm, change it to 256 colors!
if [ "$TERM" = "xterm" ]; then
    # No it isn't, it's gnome-terminal
    export TERM="xterm-256color"
fi


######################
# User configuration #
######################

export PATH="/home/christophe/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
source $ZSH/oh-my-zsh.sh

.tmux.conf [ ! d22]
# 256 color support
set -g default-terminal "screen-256color"

1
задан 13 April 2017 в 15:37

0 ответов

Другие вопросы по тегам:

Похожие вопросы: