Como obter o diretório de trabalho atual e o processo atual na linha de status do tmux?

Como obter o diretório de trabalho atual e o processo atual na linha de status do tmux?

Eu gostaria de ter duas linhas de status, com a primeira linha de status mostrando em qual diretório a janela está e a segunda mostrando qual processo está sendo executado na janela. Isso é possível? Eu uso o bash, mas estou aberto a mudar para outro shell se for mais fácil fazer essa configuração.

Se isso não for possível com o tmux ou for muito difícil de configurar, existe alguma outra ferramenta que eu possa usar e que possa me fornecer essas informações? (Basicamente eu quero várias abas/janelas abertas no terminal, com o diretório e as informações do processo.)

Responder1

Uma pergunta muito boa. Consigo fazer com que "funcione", mas não o suficiente para ser "utilizável", IMHO. Concordo que seria um bom formato, se funcionasse bem o suficiente. Fornecerei as informações que encontrei aqui, na esperança de que talvez você (ou outra pessoa que apareça) possa preencher o resto do quebra-cabeça.

Começando com o tmux 2.9 em 2019, é fácil adicionar uma segunda linha de status com setw -g status 2. O formato da primeira linha seria (muitobásicoversão):

setw -g status-format[0] '#{W:#{pane_current_path} }' # or ...
setw -g status-format[0] '#{W:#(pwd) }'

A segunda linha seria:

setw -g status-format[1] '#{W:#{pane_current_command} }' # or possibly
setw -g status-format[1] '#{W:#W } # if there's no other function changing the window title'

O problema é que eles não ficam alinhados entre si, e ainda não encontrei uma maneira de fazer isso por meio das diretivas de configuração do tmux. Pode haver uma maneira de pelo menos preencher/forçar os resultados superior e inferior a uma determinada largura para criar alinhamento dessa forma, mas ainda não cheguei tão longe.

Observe também que, por padrão, o tmux atualiza apenas a cada 15 segundos. Você pode atualizar esse intervalo usando algo como setw -g status-interval 1.

Observe também que qualquer um dos comandos pode ser usado interativamente no shell apenas pré-preparando o tmuxcomando.

informação relacionada