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

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

Первая вещь, которую я погуглил, состояла в том, как протестировать цветную поддержку в терминале. Я установил 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 вместо screen-256colors. Это хорошо, некоторое учебное руководство сказало мне делать это.

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

enter image description here

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

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

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

Tmux относительно требователен в отношении установки терминала правильно. Если Вы можете, установить термин значение в конфигурации терминала гнома, не в Вашем .bashrc. Сбой этого, окружите те настройки проверкой на"screen"или"screen-256color"ТЕРМИН, и не сбрасывает их в этом случае.

Хорошо, таким образом, я понимаю это за пределами 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

# 256 color support
set -g default-terminal "screen-256color"
3
задан 13 April 2017 в 15:37

1 ответ

В первую очередь, я хотел бы подтвердить то, под чем Вы уже выяснили, а именно, это непосредственно gnome-terminal (то есть, за пределами tmux или screen) необходимо установить TERM=xterm-256color, тогда как внутри tmux или screen это должно быть установлено на TERM=screen-256color.

По-видимому, Ваш .zshrc сегмент правильно устанавливает его для оболочки, это выполняется непосредственно терминалом гнома.

Я не уверен во что потребности быть вставленным .tmux.conf, Я решил его в моем .bashrc так же к Вашему .zshrc фрагмент для xterm-256color. Я также удаляю TERMCAP который установлен screen и причины некоторые проблемы, но по-видимому tmux не устанавливает его так, это не должно иметь значения для Вас.

if [ "$TERM" = "xterm" ]; then
    export TERM=xterm-256color
fi
if [ "$TERM" = "screen" -o "$TERM" = "screen-256color" ]; then
    export TERM=screen-256color
    unset TERMCAP
fi

Это решает проблему для Вас?

Между прочим, вместо этого отрывки, копируя Ваш .tmux.conf также наборы это правильно для меня (на Ярком), таким образом, Вы на правильном пути, это должно работать. Есть ли, возможно, что-то еще полученное Вашим zsh (например, глобальная конфигурация или oh-my-zsh), который возвращается к 8/16-color TERM=screen?

1
ответ дан 1 December 2019 в 17:37

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

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