how to modify conda 'source activate' ps1 behavior

jkarimi picture jkarimi · Feb 27, 2017 · Viewed 7.2k times · Source

my current bash ps1 is as follows:

bldred='\e[1;31m' # Red
bldcyn='\e[1;36m' # Cyan
bldwht='\e[1;37m' # White
txtrst='\e[0m'    # Text Reset - Useful for avoiding color bleed

export PS1="\n\[$bldred\]\u\[$txtrst\]@\[$bldwht\]\h\[$txtrst\]:\[$bldcyn\]\w\[$txtrst\]$ "

However, running:

source activate <env-name-here>

by default, tells conda to prepend the env-name to my PS1:

(<env-name-here>)
user@short-domain:fullpath$

Is there a way to tell conda to insert the env-name within my PS1 instead, specifically, right after the newline?

Answer

remram picture remram · Mar 30, 2018

Conda has a setting to disable changing the prompt: changeps1: False (in ~/.condarc). You can then add this yourself ($(basename "$CONDA_PREFIX")).

This is similar to virtualenv, which doesn't update the prompt if $VIRTUAL_ENV_DISABLE_PROMPT is set, so you can print $(basename "$VIRTUAL_ENV") yourself.