zsh: prefix my prompt-related functions with fs-
This commit is contained in:
parent
7464e383e3
commit
baa9b5a2e1
1 changed files with 22 additions and 22 deletions
|
@ -27,18 +27,18 @@ typeset -gA icons=(
|
||||||
[clock]=" "
|
[clock]=" "
|
||||||
)
|
)
|
||||||
|
|
||||||
render_prompt() {
|
fs-prompt-render() {
|
||||||
setopt localoptions shortloops
|
setopt localoptions shortloops
|
||||||
|
|
||||||
local separator="${zfg[faded]} ❯ "
|
local separator="${zfg[faded]} ❯ "
|
||||||
local sections=(
|
local sections=(
|
||||||
"$(render_exit_code)"
|
"$(fs-prompt-exit-code)"
|
||||||
"$(render_user_host)"
|
"$(fs-prompt-user-and-hostname)"
|
||||||
"$(render_pwd)"
|
"$(fs-prompt-pwd)"
|
||||||
"$(render_git)"
|
"$(fs-prompt-git)"
|
||||||
"$(render_venv)"
|
"$(fs-prompt-virtualenv)"
|
||||||
"$(render_jobs)"
|
"$(fs-prompt-jobs)"
|
||||||
"$(render_exec_time)"
|
"$(fs-prompt-exec-time)"
|
||||||
)
|
)
|
||||||
echo "${(@pj.$separator.)sections:#}${zfg[rst]}"
|
echo "${(@pj.$separator.)sections:#}${zfg[rst]}"
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ render_prompt() {
|
||||||
echo -n "❯ ${zfg[rst]}"
|
echo -n "❯ ${zfg[rst]}"
|
||||||
}
|
}
|
||||||
|
|
||||||
render_exit_code() {
|
fs-prompt-exit-code() {
|
||||||
((PROMPT_EXIT_CODE == 0)) && return
|
((PROMPT_EXIT_CODE == 0)) && return
|
||||||
|
|
||||||
if ((PROMPT_EXIT_CODE > 128 && PROMPT_EXIT_CODE < 160)); then
|
if ((PROMPT_EXIT_CODE > 128 && PROMPT_EXIT_CODE < 160)); then
|
||||||
|
@ -65,7 +65,7 @@ render_exit_code() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
render_user_host() {
|
fs-prompt-user-and-hostname() {
|
||||||
local parts=()
|
local parts=()
|
||||||
|
|
||||||
# username in red if root, yellow if otherwise relevant
|
# username in red if root, yellow if otherwise relevant
|
||||||
|
@ -84,11 +84,11 @@ render_user_host() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
render_pwd() {
|
fs-prompt-pwd() {
|
||||||
print "${zfg[cyan]}${icons[folder]}%~"
|
print "${zfg[cyan]}${icons[folder]}%~"
|
||||||
}
|
}
|
||||||
|
|
||||||
render_git() {
|
fs-prompt-git() {
|
||||||
local gitstatus # local swallows git's exit code if not on its own line
|
local gitstatus # local swallows git's exit code if not on its own line
|
||||||
gitstatus=$(command git status --porcelain -b 2>/dev/null) || return
|
gitstatus=$(command git status --porcelain -b 2>/dev/null) || return
|
||||||
|
|
||||||
|
@ -168,15 +168,15 @@ render_git() {
|
||||||
print "${(j: :)gitinfo}"
|
print "${(j: :)gitinfo}"
|
||||||
}
|
}
|
||||||
|
|
||||||
render_venv() {
|
fs-prompt-virtualenv() {
|
||||||
[[ -n "$VIRTUAL_ENV" ]] && print "${zfg[green]}${icons[python]}${VIRTUAL_ENV:t}"
|
[[ -n "$VIRTUAL_ENV" ]] && print "${zfg[green]}${icons[python]}${VIRTUAL_ENV:t}"
|
||||||
}
|
}
|
||||||
|
|
||||||
render_jobs() {
|
fs-prompt-jobs() {
|
||||||
(($PROMPT_JOB_COUNT > 0)) && print "${zfg[magenta]}${icons[background]}%j"
|
(($PROMPT_JOB_COUNT > 0)) && print "${zfg[magenta]}${icons[background]}%j"
|
||||||
}
|
}
|
||||||
|
|
||||||
render_exec_time() {
|
fs-prompt-exec-time() {
|
||||||
(($PROMPT_EXEC_TIME <= 3)) && return # don't print time if under 3s
|
(($PROMPT_EXEC_TIME <= 3)) && return # don't print time if under 3s
|
||||||
|
|
||||||
local parts=(
|
local parts=(
|
||||||
|
@ -189,12 +189,12 @@ render_exec_time() {
|
||||||
}
|
}
|
||||||
|
|
||||||
# Hook triggered when a command is about to be executed.
|
# Hook triggered when a command is about to be executed.
|
||||||
prompt_preexec_hook() {
|
fs-prompt-preexec() {
|
||||||
PROMPT_EXEC_START=$EPOCHSECONDS
|
PROMPT_EXEC_START=$EPOCHSECONDS
|
||||||
}
|
}
|
||||||
|
|
||||||
# Hook triggered right before the prompt is drawn.
|
# Hook triggered right before the prompt is drawn.
|
||||||
prompt_precmd_hook() {
|
fs-prompt-precmd() {
|
||||||
PROMPT_EXIT_CODE=$? # this needs to be captured before anything else runs
|
PROMPT_EXIT_CODE=$? # this needs to be captured before anything else runs
|
||||||
|
|
||||||
local stop=$EPOCHSECONDS
|
local stop=$EPOCHSECONDS
|
||||||
|
@ -205,7 +205,7 @@ prompt_precmd_hook() {
|
||||||
local job_count='%j'; PROMPT_JOB_COUNT=${(%)job_count}
|
local job_count='%j'; PROMPT_JOB_COUNT=${(%)job_count}
|
||||||
}
|
}
|
||||||
|
|
||||||
prompt_setup() {
|
fs-setup-prompt() {
|
||||||
setopt NO_PROMPT_BANG PROMPT_CR PROMPT_PERCENT PROMPT_SP PROMPT_SUBST
|
setopt NO_PROMPT_BANG PROMPT_CR PROMPT_PERCENT PROMPT_SP PROMPT_SUBST
|
||||||
export PROMPT_EOL_MARK='' # don't show % when a partial line is preserved
|
export PROMPT_EOL_MARK='' # don't show % when a partial line is preserved
|
||||||
export VIRTUAL_ENV_DISABLE_PROMPT=1 # we're doing it ourselves
|
export VIRTUAL_ENV_DISABLE_PROMPT=1 # we're doing it ourselves
|
||||||
|
@ -213,10 +213,10 @@ prompt_setup() {
|
||||||
zmodload zsh/datetime # so that $EPOCHSECONDS is available
|
zmodload zsh/datetime # so that $EPOCHSECONDS is available
|
||||||
|
|
||||||
autoload -Uz add-zsh-hook
|
autoload -Uz add-zsh-hook
|
||||||
add-zsh-hook precmd prompt_precmd_hook
|
add-zsh-hook preexec fs-prompt-preexec
|
||||||
add-zsh-hook preexec prompt_preexec_hook
|
add-zsh-hook precmd fs-prompt-precmd
|
||||||
|
|
||||||
PS1='$(render_prompt)'
|
PS1='$(fs-prompt-render)'
|
||||||
}
|
}
|
||||||
|
|
||||||
prompt_setup
|
fs-setup-prompt
|
||||||
|
|
Loading…
Add table
Reference in a new issue