diff --git a/concepts/activation.mdx b/concepts/activation.mdx index b4f3eb6..ac00e35 100644 --- a/concepts/activation.mdx +++ b/concepts/activation.mdx @@ -247,8 +247,8 @@ sequenceDiagram rect rgb(235, 248, 240) Note over P: bash P->>P: run setup scripts - P->>P: set user variables P->>P: source profile.d scripts (plugins) + P->>P: set user variables P->>P: source hook.on-activate P->>P: exec FLOX_SHELL end @@ -278,10 +278,13 @@ which is also the variable you can use to override which shell Flox uses when you activate an environment. As part of this activation script, -Flox runs some initial setup, then sets the variables you've provided in the -[[vars] section of your manifest](/man/manifest.toml#vars). -It then sources every installed package's `profile.d` scripts — this is how -[plugins](/concepts/plugins) hook into activation. +Flox runs some initial setup, then sources every installed package's +`profile.d` scripts — this is how [plugins](/concepts/plugins) hook into +activation. This only happens in `dev` (the default) and `build` modes; +`run` mode deliberately skips package `profile.d` scripts. Next, it sets +the variables you've provided in the +[[vars] section of your manifest](/man/manifest.toml#vars) — these aren't +visible to profile.d scripts, only to what runs after them. Next, the script _sources_ the `hook.on-activate` script that you've provided in the [[hook] section of your manifest](/man/manifest.toml#hook). Since this script is run by the Bash shell we're using,