diff --git a/users/default.nix b/users/default.nix index 1777a2b..8bd5a6e 100644 --- a/users/default.nix +++ b/users/default.nix @@ -82,7 +82,7 @@ lib.foldl' (acc: obj: lib.recursiveUpdate acc obj) { } ( inputs.stylix.homeModules.stylix ]; - stylix = { + stylix = lib.mkIf (!cfg.headless) { enable = true; image = if builtins.pathExists ./${user}/wallpaper.png then @@ -95,51 +95,58 @@ lib.foldl' (acc: obj: lib.recursiveUpdate acc obj) { } ( }) cfg.usersList) # Configure DM and users' default sessions - { + (lib.optionalAttrs (!cfg.headless) { services.displayManager.gdm.enable = true; - } - (map (user: { - systemd.tmpfiles.settings."20-gdm-default-session" = { - "/run/tmpfiles/var/lib/AccountsService/users/${user}".f = { - argument = "${lib.generators.toINI { } { - User = { - Session = toString ( - builtins.tail ( - lib.splitString ":" (builtins.fromJSON (builtins.readFile ./${user}/about.json)).session - ) - ); - SystemAccount = false; - } - // ( - let - pic = ./${user}/face.png; - in - if builtins.pathExists pic then { Icon = "${pic}"; } else { } - ); - }}"; - }; - "/var/lib/AccountsService/users/${user}"."L+" = { - argument = "/run/tmpfiles/var/lib/AccountsService/users/${user}"; - }; - }; - }) cfg.usersList) + }) + (map ( user: - let - __session = lib.splitString ":" (builtins.fromJSON (builtins.readFile ./${user}/about.json)) - .session; - sessionType = (builtins.head __session); - session = toString (builtins.tail __session); - in - assert sessionType == "co" || sessionType == "de"; - if sessionType == "co" then - { - programs.${session}.enable = true; - } - else if sessionType == "de" then - { services.desktopManager.${session}.enable = true; } - else - { } + lib.optionalAttrs (!cfg.headless) { + systemd.tmpfiles.settings."20-gdm-default-session" = { + "/run/tmpfiles/var/lib/AccountsService/users/${user}".f = { + argument = "${lib.generators.toINI { } { + User = { + Session = toString ( + builtins.tail ( + lib.splitString ":" (builtins.fromJSON (builtins.readFile ./${user}/about.json)).session + ) + ); + SystemAccount = false; + } + // ( + let + pic = ./${user}/face.png; + in + if builtins.pathExists pic then { Icon = "${pic}"; } else { } + ); + }}"; + }; + "/var/lib/AccountsService/users/${user}"."L+" = { + argument = "/run/tmpfiles/var/lib/AccountsService/users/${user}"; + }; + }; + } + ) cfg.usersList) + + (map ( + user: + lib.optionalAttrs (!cfg.headless) ( + let + __session = lib.splitString ":" (builtins.fromJSON (builtins.readFile ./${user}/about.json)) + .session; + sessionType = (builtins.head __session); + session = toString (builtins.tail __session); + in + assert sessionType == "co" || sessionType == "de"; + if sessionType == "co" then + { + programs.${session}.enable = true; + } + else if sessionType == "de" then + { services.desktopManager.${session}.enable = true; } + else + { } + ) ) cfg.usersList) ] )