mirror of
https://github.com/nix-community/home-manager.git
synced 2026-10-30 16:10:45 +00:00
Interactive non-login Bash shells now apply the current session variables file before bashrcExtra and initExtra. New terminals pick up values changed by home-manager switch. Login shells skip the refresh because .profile already applied it. Non-interactive shells skip it because sshd can read .bashrc for remote commands, where startup output can corrupt protocols such as scp and rsync. Apply programs.bash.sessionVariables after generic values to preserve its precedence. Expansions run on every interactive non-login shell, so warn when direct self-references can change repeatedly. Declarative search paths remain stable across repeated sourcing. A profileExtra assignment that collides with a Home Manager-managed variable is now overwritten in non-login shells. Move such overrides to initExtra, which runs after the refresh. targets.genericLinux no longer needs its separate initExtra source.