diff --git a/home/gnome/impl.nix b/home/gnome/impl.nix new file mode 100644 index 00000000..c6617c86 --- /dev/null +++ b/home/gnome/impl.nix @@ -0,0 +1,15 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.home.gnome; +in mkIf cfg.enable { + programs.regreet.enable = false; + services.xserver.enable = true; + services.xserver.displayManager.startx.enable = false; + services.xserver.displayManager.gdm.enable = true; + services.xserver.desktopManager.gnome.enable = true; + + users.home.persist.directories = [ ]; + environment.persistence."/nix/persist/fhs".directories = [ ]; +} diff --git a/home/gnome/nixos.nix b/home/gnome/nixos.nix new file mode 100644 index 00000000..26687e9d --- /dev/null +++ b/home/gnome/nixos.nix @@ -0,0 +1,25 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.home.gnome; +in { + imports = [ ./impl.nix ]; + + options.home.gnome = { + enable = mkEnableOption "GNOME desktop environment"; + }; + + config = { + users.homeModules = [ + # this module passes gnome configuration to home-manager + { passthrough.gnome= cfg; } + ]; + + specialisation.nognome = with cfg; mkIf enable { + configuration = { + home.gnome.enable = mkForce false; + }; + }; + }; +}