function prompt_zefram_precmd {
	local exitstatus=$?
	psvar=(SIG)
	[[ $exitstatus -gt 128 ]] && psvar[1]=SIG$signals[$exitstatus-127]
	[[ $psvar[1] = SIG ]] && psvar[1]=$exitstatus
	jobs % >/dev/null 2>&1 && psvar[2]=
}

function prompt_zefram_setup {
  PS1='[%(2L.%L/.)'$ZSH_VERSION']%(?..%B{%v}%b)%n%(2v.%B@%b.@)%m:%B%~%b%(!.#.>) '
  PS2='%(4_:... :)%3_> '

  precmd () { prompt_zefram_precmd; setopt promptsubst }
  preexec () { }
}

prompt_zefram_setup "$@"
