diff --git a/base/precmd.zsh b/base/precmd.zsh index c96c2c0..fc24b0b 100644 --- a/base/precmd.zsh +++ b/base/precmd.zsh @@ -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" \ No newline at end of file diff --git a/base/prompt.zsh b/base/prompt.zsh new file mode 100644 index 0000000..e76cb5d --- /dev/null +++ b/base/prompt.zsh @@ -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)' \ No newline at end of file diff --git a/modules/base_prompt.zsh b/modules/base_prompt.zsh new file mode 100644 index 0000000..c41ab4c --- /dev/null +++ b/modules/base_prompt.zsh @@ -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 \ No newline at end of file diff --git a/modules/conda.zsh b/modules/conda.zsh index d9c78e1..17c2bdf 100644 --- a/modules/conda.zsh +++ b/modules/conda.zsh @@ -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 \ No newline at end of file diff --git a/zeesh.zsh b/zeesh.zsh index e67a4ec..01ea668 100644 --- a/zeesh.zsh +++ b/zeesh.zsh @@ -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]