Hoje percebi que não tinha suporte a 256 cores em Weechat. Eu decidi que isso seria uma solução rápida. Não é.
A primeira coisa que eu pesquisei foi como testar o suporte de cores no terminal. Eu instalei o colortest
na minha máquina local e quando o executo ele mostra 256 cores. No entanto, quando eu corro echo $TERM
, ele ficava me mostrando xterm
.
Como não conheço os detalhes sobre todas essas coisas, tentei configurá-lo de modo que ele corresponda a todos os tutoriais sobre o tópico. Todos dizem que deveria me dar screen-256colors
.
A primeira coisa que fiz foi adicionar isso ao meu arquivo .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
Diz xterm-256colors
em vez de screen-256colors
. Tudo bem, algum tutorial me disse para fazer isso.
Eu inicio um novo terminal, echo $TERM
e percebo que está realmente definido. Acione um tmux
e veja o que isso me diz quando digito echo $TERM
. Diz screen
. Então, isso deve me mostrar screen-256colors
para funcionar corretamente no weechat. Então, a seguir tentei alterar o xterm-256colors
no meu arquivo .zshrc
para screen-256colors
, mas quando faço isso, recebo uma saída distorcida. Veja a captura de tela.
Então,emseguida,eupesquiseisobrecomoalteraravariávelparaotmux.Euencontrei este link . Ele mostra uma opção para configurar o tmux para usar 256 cores. É uma opção que é mostrada em quase todos os tutoriais.
set -g default-terminal "screen-256color"
Então eu tentei, mas não mudou nada. Então eu pesquisei um pouco mais e encontrei esta pergunta . Citação:
Tmux is relatively picky about having a terminal set correctly. If you can, set the term value in gnome-terminal's configuration, not in your .bashrc. Failing that, surround those settings with a check for "screen
" or "screen-256color
" TERM, and don't reset them in that case.
Ok, entendo que, fora de tmux
, não devo usar valores de screen*
para $TERM
. Tudo bem, porque está definido para xterm-256colors
. Em seguida, afirma claramente que não devo substituir a variável $TERM
se estiver definida como screen
. Que eu tenho certeza de usar o teste if
no meu arquivo .zshrc
.
O que mais me confunde é que 256 cores realmente funcionam no tmux. Veja a imagem abaixo. Quando executo echo $TERM
dentro do tmux, ele mostra screen
. Quando eu executo colortest-256
, ele mostra todas as cores corretamente. No entanto, penso que base-se na variável $TERM
para mostrar cores. E porque eu o executo dentro de tmux
com $TERM
definido como screen
, presumo que não tenho suporte a 256 cores.
Estouperplexosobrecomoresolveresseproblema.Tudooqueeuqueriaeramalgumascoresnoweechat:>
Paracompletar,abaixoestãoosmeusdoisarquivosdeconfiguração.
.zshrc
#Pathtoyouroh-my-zshinstallation.exportZSH=/home/christophe/.oh-my-zshZSH_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
# 256 color support
set -g default-terminal "screen-256color"