Hello,
I don’t think that I currently have a grasp what this project is about.
I would like to have my zsh/oh-my-zsh/p10k setup to automatically show the current environment. How can I achieve this?
Thank you in advance.
Hello,
I don’t think that I currently have a grasp what this project is about.
I would like to have my zsh/oh-my-zsh/p10k setup to automatically show the current environment. How can I achieve this?
Thank you in advance.
Yeah we can help you out with that.
There’s normally a hook which runs when activating an environment which modifies your PROMPT
environment variable.
However, some dynamic prompts with shells like zsh
may “reset” this variable later which may be happening with p10k
.
When customizing a dynamic prompt you’ll likely want to reference the environment variable FLOX_PROMPT_ENVIRONMENTS
.
Here’s an example that may be helpful:
~/docs/notes/roam % flox activate -e py;
flox [py default] ~/docs/notes/roam % echo "$FLOX_ACTIVE_ENVIRONMENTS";
/home/camus/.local/share/flox/environments/local/x86_64-linux.py:/home/camus/.local/share/flox/environments/local/x86_64-linux.default
flox [py default] ~/docs/notes/roam % echo "$FLOX_PROMPT_ENVIRONMENTS";
py default
flox [py default] ~/docs/notes/roam % echo "$PROMPT";
%B%F{61}flox %F{216}[py default]%f%b %F{yellow}%~%f %(?.%F{cyan}.%F{red}%? )%#%f
I have this in my .p10k.sh
:
function prompt_flox(){
[[ -n $FLOX_PROMPT_ENVIRONMENTS && $FLOX_PROMPT_ENVIRONMENTS != "default" ]] || return
local v=${FLOX_PROMPT_ENVIRONMENTS%default}
p10k segment -f 63 -i "" -t "${v}"
}
and flox added to plugin list. Icon is the Nix icon from JetbrainsMono Nerd Font but can be anything really.
EDIT:
To be clear, the flox
can be added whenever you like but most plugins are on the right, depending on your theme ofc:
typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(
just add flox
in the list and the function from above somewhere below
function prompt_example() {
}