From 9be51b2589810decc684c6878adb927ad7f9d372 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 21:23:19 +0000 Subject: [PATCH] chore: Fix user merging logic to preserve all fields from users.nix Co-authored-by: Jyumpp <11142390+Jyumpp@users.noreply.github.com> --- hosts/user-config.nix | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/hosts/user-config.nix b/hosts/user-config.nix index c1acda1..722e2f3 100644 --- a/hosts/user-config.nix +++ b/hosts/user-config.nix @@ -62,7 +62,9 @@ let ); # externalUserOptions only contains users that actually have options defined - externalUserOptions = lib.filterAttrs (_: moduleOptions: moduleOptions != { }) externalUserModuleOptions; + externalUserOptions = lib.filterAttrs ( + _: moduleOptions: moduleOptions != { } + ) externalUserModuleOptions; # Submodule defining the structure of a user account userSubmodule = lib.types.submodule { @@ -166,11 +168,11 @@ in # External options take precedence over users.nix (which uses lib.mkDefault) ugaif.users = lib.mapAttrs ( name: user: - { + user + // { description = lib.mkDefault (user.description or null); shell = lib.mkDefault (user.shell or null); extraGroups = lib.mkDefault (user.extraGroups or [ ]); - external = user.external or null; } // (externalUserOptions.${name} or { }) ) accounts;