{ inputs, povSelf, config, lib, homeManagerModules, ... }: let inherit (lib) types; cfg = lib.getAttrFromPath povSelf config; in { options.enable = { type = types.bool; default = false; }; config = lib.mkIf cfg.enable ( lib.mkMerge [ { sops.secrets.voidPassword = { neededForUsers = true; sopsFile = inputs.self.sopsSecrets.common; }; users.users.void = { uid = 1000; description = "Hannah"; hashedPasswordFile = config.sops.secrets.voidPassword.path; isNormalUser = true; extraGroups = [ "audio" "dialout" "docker" "input" "networkmanager" "ssh" "tss" "video" "wheel" ]; openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOFsnTwRtKRrn2KqbkTvXgwZniD1p90A7iqvQduhoDL6 openpgp:0x03F32AB3" ]; }; } (lib.mkIf config.modules.homeManager.enable { home-manager.users.void.imports = lib.concatLists [ [ homeManagerModules.void.home ] (lib.optionals config.modules.filesystem.impermanence.home.enable [ #homeManagerModules.void.impermanence # FIXME: implement impermanence ]) ]; }) ] ); }