Eu recentemente decidi mudar minha variável PS1 para acomodar algumas lindas cores Solarizadas para o meu prazer de visualização terminal. Quando não está em uma sessão do tmux, tudo é ótimo! Arco-íris, pôneis, unicórnios e um alerta diferenciado! Legal!
O problema está dentro do tmux, no entanto. Eu verifiquei que o valor de PS1 é o que eu espero que seja e o mesmo que quando o tmux não está rodando, a saber \[3]0;\wecho -ne "3[1;33m hi"
7\]\[\[\]\]\u\[\]@\[\[\]\]\h\[\]:\[\]\W\[\]$ \[\]
.
Todos os meus aliases, etc. no meu .bash_profile também estão funcionando conforme o esperado. O tmux também está exibindo cores sem incidentes, pois gls --color
se comporta como esperado, assim como export PS1="\[3]0;\wbash
7\]\[\[\]\]\u\[\]@\[\[\]\]\h\[\]:\[\]\W\[\]$ \[\]"
.
A linha atual relevante no meu .bash_profile é export PS1=[that long string I've already posted]
, embora originalmente eu estivesse pesquisando um script localizado em um arquivo .bash_prompt para lidar com alguns condicionais, etc. Eu tentei reverter para a versão mais simples.
A execução de touch testing_touch_from_bash_profile
fará com que o prompt seja colorido, mas deve ser feito em cada painel. echo $TERM
não será.
Meu arquivo .tmux.conf é o seguinte:
set-option -g default-command "reattach-to-user-namespace -l /usr/local/bin/bash"
set -g default-terminal "xterm-256color"
set-window-option -g automatic-rename on
bind '"' split-window -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
bind c new-window -c "#{pane_current_path}"
Porções relevantes de .bash_profile:
export TERM="xterm-256color"
if which tmux >/dev/null 2>&1; then
test -z "$TMUX" && (tmux attach || tmux new-session)
fi
Eu estou usando o macOS Sierra, iTerm 2, eu tentei tanto a versão homebrew atual do bash quanto o bash do sistema (atualmente ele está usando o homebrew), o tmux 2.4.
Eu também coloquei xterm-256color
no meu .bash_profile enquanto estava em uma sessão do tmux com dois painéis, matou um painel, abriu um painel e verificou que o arquivo foi criado de fato.
ps -ax | grep tmux
retorna tmux new bash
.
Eu assegurei que ao sair do tmux para testar mudanças de configurações que eu tenha saído do tmux e que nenhum processo tmux esteja atualmente rodando no sistema via %code% .
Curiosamente, fazer o sourcing do script .bash_prompt também altera a cor, desde que eu o faça dentro de cada painel tmux.
Eu analisei o link e tentei adicionar o sinalizador --login após a chamada do bash na primeira linha do meu .tmux.conf. Iniciar o tmux com %code% fará com que o primeiro painel seja colorido, mas os painéis subsequentes não.
A variável $ PS1 está sendo honrada por aparentemente todos os aspectos, exceto por colorir qualquer um dos campos.
Alguém tem alguma ideia?