diff options
author | worldofpeace <worldofpeace@protonmail.ch> | 2019-09-19 23:09:02 -0400 |
---|---|---|
committer | Jan Tojnar <jtojnar@gmail.com> | 2019-10-03 00:09:12 +0200 |
commit | 38147b92153c50d4f229a0b734ddd0a3284f86b1 (patch) | |
tree | ec26bcb40bd3c8351389eb8becf27ae7225f5e27 /nixos | |
parent | f462b376bb9ee469067e4a30c0ee52ad1ef155d5 (diff) | |
download | nixpkgs-38147b92153c50d4f229a0b734ddd0a3284f86b1.tar nixpkgs-38147b92153c50d4f229a0b734ddd0a3284f86b1.tar.gz nixpkgs-38147b92153c50d4f229a0b734ddd0a3284f86b1.tar.bz2 nixpkgs-38147b92153c50d4f229a0b734ddd0a3284f86b1.tar.lz nixpkgs-38147b92153c50d4f229a0b734ddd0a3284f86b1.tar.xz nixpkgs-38147b92153c50d4f229a0b734ddd0a3284f86b1.tar.zst nixpkgs-38147b92153c50d4f229a0b734ddd0a3284f86b1.zip |
nixos/gnome-initial-setup: prevent run on existing systems
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). Also drop uneeded manual conflicts as systemd.packages does handle this.
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/modules/services/desktops/gnome3/gnome-initial-setup.nix | 52 |
1 files changed, 41 insertions, 11 deletions
diff --git a/nixos/modules/services/desktops/gnome3/gnome-initial-setup.nix b/nixos/modules/services/desktops/gnome3/gnome-initial-setup.nix index d50624a3457..d715d52c2d0 100644 --- a/nixos/modules/services/desktops/gnome3/gnome-initial-setup.nix +++ b/nixos/modules/services/desktops/gnome3/gnome-initial-setup.nix @@ -4,6 +4,44 @@ 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 + { ###### interface @@ -25,7 +63,9 @@ with lib; environment.systemPackages = [ pkgs.gnome3.gnome-initial-setup - ]; + ] + ++ optional (versionOlder config.system.stateVersion "20.03") createGisStampFilesAutostart + ; systemd.packages = [ pkgs.gnome3.gnome-initial-setup @@ -41,16 +81,6 @@ with lib; "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" - ]; - }; } |