Eu ainda não usei o tmux, então pode haver maneiras melhores de fazer isso. Essa resposta também é bash-bash, já que é o shell que eu estou mais familiarizado. Tenho certeza de que outros shells têm conceitos semelhantes aos quais isso pode ser adaptado.
A idéia básica é ter um código na janela inicial que configure uma função que é chamada logo antes de um novo prompt de shell ser exibido; a segunda janela criaria um segundo script separado. A função do primeiro script atualiza uma variável TMUX_PWD tmux sempre que o diretório atual é alterado. A segunda função do script verifica a variável TMUX_PWD e altera o diretório se seu diretório atual for diferente.
O código da janela principal:
function prompt_command_primary {
if [[ "$(tmux showenv TMUX_PWD | cut -d= -f2)" != "$PWD" ]]
then
tmux setenv TMUX_PWD "$PWD"
fi
}
PROMPT_COMMAND='prompt_command_primary'
# initialize it
tmux setenv TMUX_PWD "$PWD"
O código da janela secundária:
function prompt_command_mirror {
if [[ $(tmux showenv TMUX_PWD | cut -d= -f2) != "$PWD" ]]
then
cd -- "$(tmux showenv TMUX_PWD | cut -d= -f2)"
fi
}
PROMPT_COMMAND='prompt_command_mirror'
# initialize ourselves
prompt_command_mirror
Essa pareceu-me a maneira mais elegante de ter o segundo diretório de mudança de janela baseado na primeira janela.