From f9b44934bc153eff178921d764c230c53f4c720c Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Thu, 19 Sep 2019 15:12:18 -0400 Subject: [PATCH] nixos/gnome-initial-setup: init It tries to start during the GDM session even with the conflicts. --- nixos/modules/module-list.nix | 3 +- .../desktops/gnome3/gnome-initial-setup.nix | 56 +++++++++++++++++++ .../services/x11/desktop-managers/gnome3.nix | 1 + 3 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 nixos/modules/services/desktops/gnome3/gnome-initial-setup.nix diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index a648eef46e5..7a33af688e2 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -299,10 +299,11 @@ ./services/desktops/gnome3/chrome-gnome-shell.nix ./services/desktops/gnome3/evolution-data-server.nix ./services/desktops/gnome3/glib-networking.nix + ./services/desktops/gnome3/gnome-initial-setup.nix ./services/desktops/gnome3/gnome-keyring.nix ./services/desktops/gnome3/gnome-online-accounts.nix - ./services/desktops/gnome3/gnome-remote-desktop.nix ./services/desktops/gnome3/gnome-online-miners.nix + ./services/desktops/gnome3/gnome-remote-desktop.nix ./services/desktops/gnome3/gnome-settings-daemon.nix ./services/desktops/gnome3/gnome-user-share.nix ./services/desktops/gnome3/rygel.nix diff --git a/nixos/modules/services/desktops/gnome3/gnome-initial-setup.nix b/nixos/modules/services/desktops/gnome3/gnome-initial-setup.nix new file mode 100644 index 00000000000..d50624a3457 --- /dev/null +++ b/nixos/modules/services/desktops/gnome3/gnome-initial-setup.nix @@ -0,0 +1,56 @@ +# GNOME Initial Setup. + +{ config, pkgs, lib, ... }: + +with lib; + +{ + + ###### interface + + options = { + + services.gnome3.gnome-initial-setup = { + + enable = mkEnableOption "GNOME Initial Setup, a Simple, easy, and safe way to prepare a new system"; + + }; + + }; + + + ###### implementation + + config = mkIf config.services.gnome3.gnome-initial-setup.enable { + + environment.systemPackages = [ + pkgs.gnome3.gnome-initial-setup + ]; + + systemd.packages = [ + pkgs.gnome3.gnome-initial-setup + ]; + + systemd.user.targets."gnome-session".wants = [ + "gnome-initial-setup-copy-worker.service" + "gnome-initial-setup-first-login.service" + "gnome-welcome-tour.service" + ]; + + systemd.user.targets."gnome-session@gnome-initial-setup".wants = [ + "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" + ]; + + }; + +} diff --git a/nixos/modules/services/x11/desktop-managers/gnome3.nix b/nixos/modules/services/x11/desktop-managers/gnome3.nix index b625f592efa..c112d4b6e4d 100644 --- a/nixos/modules/services/x11/desktop-managers/gnome3.nix +++ b/nixos/modules/services/x11/desktop-managers/gnome3.nix @@ -229,6 +229,7 @@ in services.colord.enable = mkDefault true; services.gnome3.chrome-gnome-shell.enable = mkDefault true; services.gnome3.glib-networking.enable = true; + services.gnome3.gnome-initial-setup.enable = mkDefault true; services.gnome3.gnome-remote-desktop.enable = mkDefault true; services.gnome3.gnome-settings-daemon.enable = true; services.gnome3.gnome-user-share.enable = mkDefault true;