···
environment.etc."fish/foreign-env/interactiveShellInit".text = cfge.interactiveShellInit;
environment.etc."fish/nixos-env-preinit.fish".text = ''
107
-
# avoid clobbering the environment if it's been set by a parent shell
# This happens before $__fish_datadir/config.fish sets fish_function_path, so it is currently
# unset. We set it and then completely erase it, leaving its configuration to $__fish_datadir/config.fish
set fish_function_path ${pkgs.fish-foreign-env}/share/fish-foreign-env/functions $__fish_datadir/functions
···
environment.etc."fish/config.fish".text = ''
# /etc/fish/config.fish: DO NOT EDIT -- this file has been generated automatically.
123
-
# if our parent shell didn't source the general config, do it
121
+
# if we haven't sourced the general config, do it
if not set -q __fish_nixos_general_config_sourced
set fish_function_path ${pkgs.fish-foreign-env}/share/fish-foreign-env/functions $fish_function_path
fenv source /etc/fish/foreign-env/shellInit > /dev/null
···
131
-
# and leave a note to our children to spare them the same work
132
-
set -gx __fish_nixos_general_config_sourced 1
129
+
# and leave a note so we don't source this config section again from
130
+
# this very shell (children will source the general config anew)
131
+
set -g __fish_nixos_general_config_sourced 1
135
-
# if our parent shell didn't source the login config, do it
134
+
# if we haven't sourced the login config, do it
status --is-login; and not set -q __fish_nixos_login_config_sourced
set fish_function_path ${pkgs.fish-foreign-env}/share/fish-foreign-env/functions $fish_function_path
···
144
-
# and leave a note to our children to spare them the same work
145
-
set -gx __fish_nixos_login_config_sourced 1
143
+
# and leave a note so we don't source this config section again from
144
+
# this very shell (children will source the general config anew)
145
+
set -g __fish_nixos_login_config_sourced 1
148
-
# if our parent shell didn't source the interactive config, do it
148
+
# if we haven't sourced the interactive config, do it
status --is-interactive; and not set -q __fish_nixos_interactive_config_sourced
···
${cfg.interactiveShellInit}
161
-
# and leave a note to our children to spare them the same work
162
-
set -gx __fish_nixos_interactive_config_sourced 1
161
+
# and leave a note so we don't source this config section again from
162
+
# this very shell (children will source the general config anew,
163
+
# allowing configuration changes in, e.g, aliases, to propagate)
164
+
set -g __fish_nixos_interactive_config_sourced 1