{ inputs, lib, ... }: let username = "john"; in { # flake = lib.mkMerge [ # (self.factory.user username true) # ]; # https://github.com/Doc-Steve/dendritic-design-with-flake-parts/wiki/Dendritic_Aspects#multi-context-aspect flake.modules.nixos."${username}" = { pkgs, ... }: { home-manager.users."${username}" = { imports = [ inputs.self.modules.homeManager."${username}" ]; }; users.users."${username}" = { isNormalUser = true; shell = pkgs.zsh; openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIAUa4dcg1TWc4pW++uodyhX4eOqrX/QYIxFWtEP7HFJ john@john-pc-ubuntu" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMOkGLo4N/L3RYvaIZ1FmePlxa1HK0fMciZxKtRhN58F root@janus" ]; extraGroups = [ "docker "]; }; programs.zsh.enable = true; }; flake.modules.homeManager."${username}" = { home.username = "${username}"; home.homeDirectory = "/home/${username}"; home.stateVersion = "25.11"; xdg.enable = true; programs.git.settings.user.name = "John Lancaster"; programs.git.settings.user.email = "32917998+jsl12@users.noreply.github.com"; imports = with inputs.self.modules.homeManager; [ base # docker # resticprofile ]; }; # This is the base homeConfiguration for the john user that will be used if no other flake.homeConfigurations."${username}" = inputs.home-manager.lib.homeManagerConfiguration { pkgs = import inputs.nixpkgs { system = "x86_64-linux"; }; modules = [ inputs.self.modules.homeManager."${username}" # Include another inline module to set the options created through the jsl-home modules { docker.enable = false; ssh.matchSets = { certs = true; homelab = true; }; } ]; }; }