utilisation de variables d'environnement dans les fichiers tmux.conf

12

Est-il possible d'utiliser une variable d'environnement dans un fichier tmux.conf? J'essaie de définir un chemin par défaut pour une variable d'environnement. Actuellement, ce que j'essaie, c'est:

set -g default-path $MYVAR

en outre, je voudrais vérifier si $ MYVAR est déjà défini afin que je puisse faire:

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

Des idées?

Pouvoirs numériques
la source

Réponses:

12

Oui, il semble qu'il soit possible d'étendre les variables shell dans le .tmux.conffichier. Il semble que ce ne soit pas obligatoire, mais une bonne idée de les citer, en particulier. J'ai réussi à le faire avec les options de la barre d'état tout à l'heure.

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

$ export MYVAR="Shell stuff"
$ tmux

Je ne connais pas de «si» ou d'autres structures de contrôle dans la configuration, mais il pourrait y en avoir.

Caleb
la source
Je ne peux pas faire fonctionner cela dans un fichier de script tmux. Je suis sûr que $ MYVAR est défini, et j'exécute le script et il échoue. set -g default-path "$ MYVAR" split-window -h il divise la fenêtre mais default-path n'est pas réglé sur $ MYVAR
Digital Powers
2
ok j'ai trouvé où les choses tombent en panne, si je définis la variable d'environnement avant d'exécuter tmux alors je peux l'utiliser dans mon fichier tmux.conf. Si je définis la variable d'environnement, soit dans tmux.conf en utilisant set-environment, soit après que je sois dans tmux, puis rechargez le tmux.conf, il n'utilise pas les nouvelles variables que j'ai définies. Une idée pourquoi?
Digital Powers
Les shells que vous exécutez dans tmux sont des processus enfants de tmux. Changer les choses à l' intérieur de ces environnements ne va pas revenir propager jusqu'à la ligne au processus parent tmux. Cela ne fonctionne que dans l'autre sens car tmux devient un enfant du shell à partir duquel vous l'avez lancé. Je suppose que le rechargement de la configuration est similaire en ce qu'il lance un nouvel enfant du processus parent.
Caleb