Running custom zsh function for tmux status bar not displaying output -
i'm wrote function called test_status trying incorporate in tmux status bar. give background, tests output file called .guard_result either success or failure , test_status function reads file , echoes 💚 if tests passing , ❤️ if failing.
the news running test_status works fine, i'm having trouble getting work tmux. missing here?
# ~/.oh-my-zsh/custom/aliases.zsh function test_status { if [ ! -f "./.guard_result" ]; echo "?" return 1 fi result="$(cat ./.guard_result)" if [[ $result == *"success"* ]] echo "💚"; elif [[ $result == *"fail"* ]] echo "❤️"; fi } this function works... here tmux configuration (which doesn't show result):
# ~/.tmux.conf set -g status-right "#(test_status) #[fg=colour245]%d %b %y #[fg=white]:: #[fg=colour245]%l:%m %p" i know must missing simple... help!
tmux passes shell commands /bin/sh not zsh. , if tmux use zsh, function not available in context ~/.zshrc, loads oh-my-zsh, read interactive shells.
in order the output of test_status tmux, suggest put function zsh script , call that.
you can either source ~/.oh-my-zsh/custom/aliases.zsh within script , call test_status:
#!/usr/bin/zsh # ^ make sure reflects path zsh (`type zsh`) source ~/.oh-my-zsh/custom/aliases.zsh test_status or can put entire function script, not clutter alias.zsh:
#!/usr/bin/zsh function test_status { if [ ! -f "./.guard_result" ]; echo "?" return 1 fi result="$(cat ./.guard_result)" if [[ $result == *"success"* ]] echo "💚"; elif [[ $result == *"fail"* ]] echo "❤️"; fi } safe script somewhere (e.g. /path/to/test_status.zsh), make executable (chmod a+x /path/to/test_status.zsh) , call path in tmux configuration.
Comments
Post a Comment