diff --git a/powerline/bindings/bash/powerline.sh b/powerline/bindings/bash/powerline.sh index c5d56e7c..4aeefea6 100644 --- a/powerline/bindings/bash/powerline.sh +++ b/powerline/bindings/bash/powerline.sh @@ -10,8 +10,7 @@ if test -z "${POWERLINE_COMMAND}" ; then fi _powerline_init_tmux_support() { - # Note: `test -w ""` returns false, so first condition may be removed - if test -n "$TMUX" && test -w "$TMUX" ; then + if test -n "$TMUX" && tmux source-file /dev/null &>/dev/null ; then # TMUX variable may be unset to create new tmux session inside this one _POWERLINE_TMUX="$TMUX" diff --git a/powerline/bindings/fish/powerline-setup.fish b/powerline/bindings/fish/powerline-setup.fish index 75ca19c4..71acb3cb 100644 --- a/powerline/bindings/fish/powerline-setup.fish +++ b/powerline/bindings/fish/powerline-setup.fish @@ -20,18 +20,20 @@ function powerline-setup " end _powerline_update - if test -w "$TMUX" - function _powerline_tmux_setenv - tmux setenv -g TMUX_$argv[1]_(tmux display -p "#D" | tr -d "%") "$argv[2]" - tmux refresh -S + if test -n "$TMUX" + if tmux source-file /dev/null ^/dev/null + function _powerline_tmux_setenv + tmux setenv -g TMUX_$argv[1]_(tmux display -p "#D" | tr -d "%") "$argv[2]" + tmux refresh -S + end + function --on-variable PWD _powerline_tmux_set_pwd + _powerline_tmux_setenv PWD "$PWD" + end + function --on-signal WINCH _powerline_tmux_set_columns + _powerline_tmux_setenv COLUMNS "$COLUMNS" + end + _powerline_tmux_set_columns + _powerline_tmux_set_pwd end - function --on-variable PWD _powerline_tmux_set_pwd - _powerline_tmux_setenv PWD "$PWD" - end - function --on-signal WINCH _powerline_tmux_set_columns - _powerline_tmux_setenv COLUMNS "$COLUMNS" - end - _powerline_tmux_set_columns - _powerline_tmux_set_pwd end end diff --git a/powerline/bindings/tcsh/powerline.tcsh b/powerline/bindings/tcsh/powerline.tcsh index 44f969b6..b83498ad 100644 --- a/powerline/bindings/tcsh/powerline.tcsh +++ b/powerline/bindings/tcsh/powerline.tcsh @@ -14,7 +14,7 @@ if ! $?POWERLINE_COMMAND then setenv POWERLINE_COMMAND $POWERLINE_SOURCED:h:h:h:h:q/scripts/powerline endif endif -alias _powerline_tmux_set_pwd 'if ( $?TMUX && { test -w $TMUX:q } ) tmux setenv -g TMUX_PWD_`tmux display -p "#D" | tr -d %` $PWD:q ; if ( $?TMUX && { test -w $TMUX:q } ) tmux refresh -S' +alias _powerline_tmux_set_pwd 'if ( $?TMUX && { tmux source-file /dev/null >&/dev/null } ) tmux setenv -g TMUX_PWD_`tmux display -p "#D" | tr -d %` $PWD:q ; if ( $?TMUX && { tmux source-file /dev/null >&/dev/null } ) tmux refresh -S' alias _powerline_set_prompt 'set prompt="`$POWERLINE_COMMAND shell left -r tcsh_prompt --last_exit_code=$?`"' alias _powerline_set_rprompt 'set rprompt="`$POWERLINE_COMMAND shell right -r tcsh_prompt --last_exit_code=$?` "' alias cwdcmd "`alias cwdcmd` ; _powerline_tmux_set_pwd" diff --git a/powerline/bindings/zsh/powerline.zsh b/powerline/bindings/zsh/powerline.zsh index 6e8206fe..46123940 100644 --- a/powerline/bindings/zsh/powerline.zsh +++ b/powerline/bindings/zsh/powerline.zsh @@ -12,8 +12,7 @@ integer _POWERLINE_JOBNUM _powerline_init_tmux_support() { emulate -L zsh - # Note: `test -w ""` returns false, so first condition may be removed - if test -n "$TMUX" && test -w "$TMUX" ; then + if test -n "$TMUX" && tmux source-file /dev/null &>/dev/null ; then # TMUX variable may be unset to create new tmux session inside this one typeset -g _POWERLINE_TMUX="$TMUX"