Сегодня я заметил, что у меня не было поддержки цвета 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.
Я в тупике о том, как решить эту проблему. Все, что я хотел, были некоторые цвета в weechat:>
Для полноты ниже приведены два моих конфигурационных файла.
# 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
# 256 color support
set -g default-terminal "screen-256color"