anchor.diff:  
       environment.systemPackages = [
         pkgs.gnome3.gnome-initial-setup
  -    ];
  +    ]
  +    ++ optional (versionOlder config.system.stateVersion "20.03") createGisStampFilesAutostart
  +    ;
   
       systemd.packages = [
         pkgs.gnome3.gnome-initial-setup
  
positive.code:       "gnome-initial-setup.service"
      ];
  
      # Setup conflicts
      systemd.user.services."gnome-initial-setup-copy-worker".conflicts = [
        "gnome-session@gnome-login.target"
      ];
  
      systemd.user.services."gnome-initial-setup-first-login".conflicts = [
        "gnome-session@gnome-login.target"
        "gnome-session@gnome-initial-setup.target"
      ];
  
    };
  
  }
  
negative.code: { config, pkgs, lib, ... }:
  
  with lib;
  
  let
  
    # GNOME initial setup's run is conditioned on whether
    # the gnome-initial-setup-done file exists in XDG_CONFIG_HOME
    # Because of this, every existing user will have initial setup
    # running because they never ran it before.
    #
    # To prevent this we create the file if the users stateVersion
    # is older than 20.03 (the release we added this module).
  
    script = pkgs.writeScript "create-gis-stamp-files" ''
      #!${pkgs.runtimeShell}
      setup_done=$HOME/.config/gnome-initial-setup-done
  
      echo "Creating g-i-s stamp file $setup_done ..."
      cat - > $setup_done <<- EOF
      yes
      EOF
    '';
  
    createGisStampFilesAutostart = pkgs.writeTextFile rec {
      name = "create-g-i-s-stamp-files";
      destination = "/etc/xdg/autostart/${name}.desktop";
      text = ''
        [Desktop Entry]
        Type=Application
        Name=Create GNOME Initial Setup stamp files
        Exec=${script}
        StartupNotify=false
        NoDisplay=true
        OnlyShowIn=GNOME;
        AutostartCondition=unless-exists gnome-initial-setup-done
        X-GNOME-Autostart-Phase=EarlyInitialization
      '';
    };
  
  in
  
  {
  
  