Isso é um pouco confuso, mas funciona:
-
Adicione esta definição de função ao seu
~/.profile:tmux() ( ORIG_PWD_FOR_TMUX="${PWD}" command tmux "$@"; )Esta função executa
tmuxcom a variável de ambienteORIG_PWD_FOR_TMUXdefinida para o diretório atual (${PWD}). Esta variável será referenciada sempre que uma nova janela for criada. -
Adicione o seguinte ao seu arquivo
~/.tmux.conf:set-option -g default-command "[ -z \"\${ORIG_PWD_FOR_TMUX+set}\" ] || { cd \"\${ORIG_PWD_FOR_TMUX}\"; unset ORIG_PWD_FOR_TMUX; }; exec ${SHELL}" set-option -g -a update-environment " ORIG_PWD_FOR_TMUX"O valor
default-commandacima verifica se a variável de ambienteORIG_PWD_FOR_TMUXestá definida. Nesse caso, ele muda para esse diretório e desabilita a variável (para manter o ambiente limpo). Em seguida, ele invoca o shell, que será executado no diretório original.A configuração
update-environmentinforma aotmuxpara copiar o valor deORIG_PWD_FOR_TMUXno ambiente da sessão, para que os futuros comandosnew-windowtenham o valor da variável disponível.
Agora você pode simplesmente executar tmux como de costume, exceto que novas janelas serão iniciadas no mesmo diretório da sessão.