anchor.diff:          mapAttrsToList export (cfg.sessionVariables // globalEnvVars)
         );
       in mkIf cfg.enable {
  +      programs.bash.bashrcExtra = ''
  +        # Commands that should be applied only for interactive shells.
  +        if [[ -n $PS1 ]]; then
  +          ${export "HISTSIZE" cfg.historySize}
  +          ${export "HISTFILESIZE" cfg.historyFileSize}
  +          ${exportIfNonEmpty "HISTCONTROL" histControlStr}
  +          ${exportIfNonEmpty "HISTIGNORE" histIgnoreStr}
  +
  +          ${shoptsStr}
  +
  +          ${aliasesStr}
  +
  +          ${cfg.initExtra}
  +
  +          ${optionalString cfg.enableAutojump
  +            ". ${pkgs.autojump}/share/autojump/autojump.bash"}
  +        fi
  +      '';
  +
         home.file.".bash_profile".text = ''
           # -*- mode: sh -*-
   
  
positive.code:       home.file.".bashrc".text = ''
          # -*- mode: sh -*-
  
          # Skip if not running interactively.
          [ -z "$PS1" ] && return
  
          ${export "HISTSIZE" cfg.historySize}
          ${export "HISTFILESIZE" cfg.historyFileSize}
          ${exportIfNonEmpty "HISTCONTROL" histControlStr}
          ${exportIfNonEmpty "HISTIGNORE" histIgnoreStr}
  
          ${shoptsStr}
  
          ${aliasesStr}
  
          ${cfg.initExtra}
  
          ${optionalString cfg.enableAutojump
            ". ${pkgs.autojump}/share/autojump/autojump.bash"}
        '';
  
        home.packages =
  
negative.code:         '';
        };
  
        bashrcExtra = mkOption {
          # Hide for now, may want to rename in the future.
          visible = false;
          default = "";
          type = types.lines;
          description = ''
            Extra commands that should be added to
            <filename>~/.bashrc</filename>.
          '';
        };
  
        initExtra = mkOption {
          default = "";
          type = types.lines;
  