diff --git a/lib/spack/spack/environment/shell.py b/lib/spack/spack/environment/shell.py index 6856046f7de..2fb01dbfbf2 100644 --- a/lib/spack/spack/environment/shell.py +++ b/lib/spack/spack/environment/shell.py @@ -64,9 +64,10 @@ def deactivate_header(shell): elif shell == "fish": cmds += "set -e SPACK_ENV;\n" cmds += "set -e SPACK_ENV_VIEW;\n" + cmds += "set -e SPACK_PROMPT;\n" cmds += "functions -e despacktivate;\n" # - # NOTE: Not changing fish_prompt (above) => no need to restore it here. + # NOTE: Unsetting SPACK_PROMPT environment variable which is used to avoid changing fish_prompt function. # elif shell == "bat": # TODO: Color diff --git a/lib/spack/spack/prompt.py b/lib/spack/spack/prompt.py index 1b6e4f0a18c..e3477f60717 100644 --- a/lib/spack/spack/prompt.py +++ b/lib/spack/spack/prompt.py @@ -42,7 +42,8 @@ def custom_prompt(prompt, shell): cmds += 'set prompt="%s ${prompt}";\n' % prompt elif shell == "fish": if "color" in os.getenv("TERM", ""): - prompt = colorize(f"@G{prompt} " % prompt, color=True) + prompt = colorize(f"@G{prompt}", color=True) + cmds += "set -gx SPACK_PROMPT '%s';\n" % prompt elif shell == "bat" or shell == "pwsh": # TODO pass