parent
b99e9cb074
commit
6f69322024
|
@ -0,0 +1,43 @@
|
|||
import zsh
|
||||
from powerline.core import Powerline
|
||||
|
||||
|
||||
class Args(object):
|
||||
@property
|
||||
def last_exit_code(self):
|
||||
return zsh.last_exit_code()
|
||||
|
||||
@property
|
||||
def last_pipe_status(self):
|
||||
return zsh.pipestatus()
|
||||
|
||||
|
||||
class Prompt(object):
|
||||
__slots__ = ('render', 'side', 'savedpsvar', 'savedps')
|
||||
|
||||
def __init__(self, powerline, side, savedpsvar=None, savedps=None):
|
||||
self.render = powerline.renderer.render
|
||||
self.side = side
|
||||
self.savedpsvar = savedpsvar
|
||||
self.savedps = savedps
|
||||
|
||||
def __str__(self):
|
||||
return self.render(width=zsh.columns(), side=self.side).encode('utf-8')
|
||||
|
||||
def __del__(self):
|
||||
if self.savedps:
|
||||
zsh.setvalue(self.savedpsvar, self.savedps)
|
||||
|
||||
|
||||
def set_prompt(powerline, psvar, side):
|
||||
savedps = zsh.getvalue(psvar)
|
||||
zpyvar = 'ZPYTHON_POWERLINE_' + psvar
|
||||
prompt = Prompt(powerline, side, psvar, savedps)
|
||||
zsh.set_special_string(zpyvar, prompt)
|
||||
zsh.setvalue(psvar, '${' + zpyvar + '}')
|
||||
|
||||
|
||||
def setup():
|
||||
powerline = Powerline(ext='shell', renderer_module='zsh_prompt', segment_info=Args())
|
||||
set_prompt(powerline, 'PS1', 'left')
|
||||
set_prompt(powerline, 'RPS1', 'right')
|
|
@ -1,7 +1,3 @@
|
|||
_powerline_precmd() {
|
||||
_powerline_tmux_set_pwd
|
||||
}
|
||||
|
||||
_powerline_tmux_setenv() {
|
||||
if [[ -n "$TMUX" ]]; then
|
||||
tmux setenv TMUX_"$1"_$(tmux display -p "#D" | tr -d %) "$2"
|
||||
|
@ -22,11 +18,17 @@ _powerline_install_precmd() {
|
|||
return
|
||||
fi
|
||||
done
|
||||
precmd_functions+=(_powerline_precmd)
|
||||
precmd_functions+=(_powerline_tmux_set_pwd)
|
||||
setopt promptpercent
|
||||
setopt promptsubst
|
||||
PS1='$(powerline shell left -r zsh_prompt --last_exit_code=$? --last_pipe_status="$pipestatus")'
|
||||
RPS1='$(powerline shell right -r zsh_prompt --last_exit_code=$? --last_pipe_status="$pipestatus")'
|
||||
if zmodload zsh/zpython &>/dev/null ; then
|
||||
zpython 'from powerline.bindings.zsh import setup as powerline_setup'
|
||||
zpython 'powerline_setup()'
|
||||
zpython 'del powerline_setup'
|
||||
else
|
||||
PS1='$(powerline shell left -r zsh_prompt --last_exit_code=$? --last_pipe_status="$pipestatus")'
|
||||
RPS1='$(powerline shell right -r zsh_prompt --last_exit_code=$? --last_pipe_status="$pipestatus")'
|
||||
fi
|
||||
}
|
||||
|
||||
trap "_powerline_tmux_set_columns" SIGWINCH
|
||||
|
|
Loading…
Reference in New Issue