overhaul prompt management; make it easier to add/remove things to {,r}prompt over time
This commit is contained in:
		@@ -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]
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user