usando variáveis ​​de ambiente nos arquivos tmux.conf


12

É possível usar uma variável de ambiente em um arquivo tmux.conf? Estou tentando definir um caminho padrão para uma variável de ambiente. Atualmente, o que estou tentando é:

set -g default-path $MYVAR

além disso, gostaria de verificar se $ MYVAR já está definido para que eu possa fazer:

if($MYVAR == "") set-environment -g MYVAR /somepath/

Alguma ideia?

Respostas:


12

Sim, parece que é possível expandir variáveis ​​do shell no .tmux.confarquivo Parece que não é necessário, mas é uma boa ideia citá-las, esp. Consegui fazer isso com sucesso com as opções da barra de status agora.

# In ~/.tmux.conf:
set -g status_left "$MYVAR etc: "

$ export MYVAR="Shell stuff"
$ tmux

Eu não sei sobre qualquer 'se' ou outras estruturas de controle na configuração, mas pode haver.


Não consigo fazer isso funcionar em um arquivo de script tmux. Tenho certeza de que $ MYVAR está definido e executo o script e ele falha. conjunto -g default-path "$ MYVAR" split-window -h que divide a janela, mas default-path não está definido para $ MYVAR
Powers Digital

1
Ok, eu encontrei onde as coisas estão quebrando, se eu definir a variável de ambiente antes de executar o tmux, então eu posso usá-lo no meu arquivo tmux.conf. Se eu definir a variável de ambiente, no tmux.conf usando o set-environment ou depois que estiver no tmux, recarregue o tmux.conf, pois ele não usará as novas variáveis ​​que defini. Alguma idéia do porquê?
Digital Powers

Os shells que você executa no tmux são processos filhos do tmux. Mudar as coisas nesses ambientes não vai propagar o backup da linha para o processo pai do tmux. Só funciona de outra maneira, porque o tmux se torna um filho do shell a partir do qual você o lançou. Presumo que o recarregamento da configuração seja semelhante, pois está lançando um novo filho do processo pai.
Caleb
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.