LINUX.ORG.RU

tmux: выставить $TERM в screen или screen-256color основываясь на $TERM терминала

 , ,


1

1

Добрый день! Решил освоить tmux. Сейчас решаю вопрос о том, чтобы выставить $TERM в screen или screen-256color в зависимости от $TERM того терминала, в котором запускается tmux.

Нашёл на ArchWiki такой фрагмент:

## set the default TERM
set -g default-terminal screen

## update the TERM variable of terminal emulator when creating a new session or attaching a existing session
set -g update-environment 'DISPLAY SSH_ASKPASS SSH_AGENT_PID SSH_CONNECTION WINDOWID XAUTHORITY TERM'
## determine if we should enable 256-colour support
if "[[ ${TERM} =~ 256color || ${TERM} == fbterm ]]" 'set -g default-terminal screen-256color'
Поместил его в ~/.tmux.conf, запускаю tmux в xfce4-terminal с $TERM==xterm-256color и в tmux получаю $TERM==screen

Подскажите, пожалуйста, что я делаю не так. Заранее спасибо.

★★

Последнее исправление: Norong (всего исправлений: 2)

У меня работает, если поместить это в ~/.tmux.conf. Я бы ещё глянул содержимое /etc/tmux.conf.

xaizek ★★★★★
()
Ответ на: комментарий от Norong

Я бы проверил сделать просто

set -g default-terminal screen-256color
Может где-то в другом месте $TERM присваивается (.bashrc или подобном).

xaizek ★★★★★
()
Ответ на: комментарий от xaizek

Если эту строку установить в конфиге, то TERM окажется равным screen-256color, т.е. переопределения нигде не происходит. У меня tmux версии 2.3.

Norong ★★
() автор топика
Ответ на: комментарий от xaizek

Там чуть ниже в ArchWiki был приложен специальный workaround для zsh, которым я и пользуюсь:

~/.zshrc

## workaround for handling TERM variable in multiple tmux sessions properly from http://sourceforge.net/p/tmux/mailman/message/32751663/ by Nicholas Marriott
if [[ -n ${TMUX} && -n ${commands[tmux]} ]];then
        case $(tmux showenv TERM 2>/dev/null) in
                *256color) ;&
                TERM=fbterm)
                        TERM=screen-256color ;;
                *)
                        TERM=screen
        esac
fi
После его добавления в .zshrc всё заработало. Всем спасибо!

Norong ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.