overhaul prompt management; make it easier to add/remove things to {,r}prompt over time
This commit is contained in:
parent
ed5afe0300
commit
798ced71aa
@ -4,4 +4,4 @@ function precmd_tab_directory () {
|
||||
print -Pn "\e]0;%n@%m: %~\a"
|
||||
}
|
||||
|
||||
precmd_functions+="precmd_tab_directory"
|
||||
precmd_functions+="precmd_tab_directory"
|
24
base/prompt.zsh
Normal file
24
base/prompt.zsh
Normal file
@ -0,0 +1,24 @@
|
||||
typeset -ag prompt_functions
|
||||
typeset -ag rprompt_functions
|
||||
|
||||
function prompt_builder () {
|
||||
result=""
|
||||
for prompt_func in $prompt_functions; do
|
||||
result="${result}$($prompt_func) "
|
||||
done
|
||||
# prompt will always end with "% " (or "# " if we're somehow root)
|
||||
result="${result}%#%{$reset_color%} "
|
||||
print "${result}"
|
||||
}
|
||||
|
||||
function rprompt_builder () {
|
||||
result=""
|
||||
for rprompt_func in $rprompt_functions; do
|
||||
result="$($rprompt_func) ${result}"
|
||||
done
|
||||
result="${result}%{$reset_color%}"
|
||||
print "${result}"
|
||||
}
|
||||
|
||||
PROMPT='$(prompt_builder)'
|
||||
RPROMPT='$(rprompt_builder)'
|
19
modules/base_prompt.zsh
Normal file
19
modules/base_prompt.zsh
Normal file
@ -0,0 +1,19 @@
|
||||
# PROMPT="%{$fg_bold[cyan]%}%n%{$fg_bold[white]%}@%{$fg_bold[magenta]%}%m %{$fg_bold[white]%}%~ %# %{$reset_color%}"
|
||||
# RPROMPT="%(?..%{$fg[red]%}%? )$RPROMPT"
|
||||
|
||||
function prompt_userathost () {
|
||||
print "%{$fg_bold[cyan]%}%n%{$fg_bold[white]%}@%{$fg_bold[magenta]%}%m %{$fg_bold[white]%}%~"
|
||||
}
|
||||
|
||||
prompt_functions+=prompt_userathost
|
||||
|
||||
function rprompt_clock () {
|
||||
print "%{$fg_bold[black]%}%T"
|
||||
}
|
||||
|
||||
function rprompt_retval () {
|
||||
print "%(?..%{$fg[red]%}%?)"
|
||||
}
|
||||
|
||||
rprompt_functions+=rprompt_clock
|
||||
rprompt_functions+=rprompt_retval
|
@ -6,16 +6,12 @@
|
||||
# auto_assign_base: false
|
||||
# changeps1: false
|
||||
|
||||
local orig_rprompt="${RPROMPT}"
|
||||
|
||||
function precmd_conda_prompt() {
|
||||
function conda_prompt() {
|
||||
if [[ -v CONDA_DEFAULT_ENV && "$CONDA_DEFAULT_ENV" != "base" ]]; then
|
||||
RPROMPT="%{$fg[cyan]%}$CONDA_DEFAULT_ENV %{$reset_color%} ${orig_rprompt}"
|
||||
else
|
||||
RPROMPT="${orig_rprompt}"
|
||||
print "%{$fg[cyan]%}$CONDA_DEFAULT_ENV"
|
||||
fi
|
||||
}
|
||||
|
||||
if (( ${+commands[conda]} )); then
|
||||
precmd_functions+=precmd_conda_prompt
|
||||
rprompt_functions+=conda_prompt
|
||||
fi
|
@ -10,9 +10,9 @@ if [[ $cols -lt 80 ]]; then
|
||||
hostemoji="🖥"
|
||||
fi
|
||||
PROMPT="👤%{$fg_bold[white]%}@${hostemoji} %~ %# %{$reset_color%}"
|
||||
else
|
||||
PROMPT="%{$fg_bold[cyan]%}%n%{$fg_bold[white]%}@%{$fg_bold[magenta]%}%m %{$fg_bold[white]%}%~ %# %{$reset_color%}"
|
||||
RPROMPT="%(?..%{$fg[red]%}%? )$RPROMPT"
|
||||
#else
|
||||
# PROMPT="%{$fg_bold[cyan]%}%n%{$fg_bold[white]%}@%{$fg_bold[magenta]%}%m %{$fg_bold[white]%}%~ %# %{$reset_color%}"
|
||||
# RPROMPT="%(?..%{$fg[red]%}%? )$RPROMPT"
|
||||
fi
|
||||
TMOUT=60
|
||||
TRAPALRM () {
|
||||
@ -20,6 +20,7 @@ TRAPALRM () {
|
||||
}
|
||||
|
||||
source ~/.local/share/zeesh/base/precmd.zsh
|
||||
source ~/.local/share/zeesh/base/prompt.zsh
|
||||
source ~/.local/share/zeesh/base/updates.zsh
|
||||
|
||||
# TODO: handle whether or not to load given modules]
|
||||
|
Loading…
Reference in New Issue
Block a user