{ inputs, povSelf, config, lib, pkgs, homeManagerModules, ... }: let inherit (lib) types; cfg = lib.getAttrFromPath povSelf config; in { options.enable = { type = types.bool; default = false; }; config = lib.mkIf cfg.enable { sops.secrets.zaphyraPassword = { neededForUsers = true; sopsFile = inputs.self.sopsSecrets.common; }; programs.fuse.userAllowOther = lib.mkIf config.modules.filesystem.impermanence.home.enable ( lib.mkDefault true ); users.users.zaphyra = { uid = 1001; description = "zaphyra"; hashedPasswordFile = config.sops.secrets.zaphyraPassword.path; isNormalUser = true; extraGroups = [ "ssh" "wheel" ] ++ lib.optionals config.networking.networkmanager.enable [ "networkmanager" ]; openssh.authorizedKeys.keys = [ (builtins.readFile "${pkgs.zaphyra-website}/ssh_pubkey.asc") "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPnNyOCX+PopTHuNrfBwEmPM7FC6oM7nFgW/2tvW7ddT" ]; }; home-manager.users.zaphyra.imports = lib.concatLists [ [ homeManagerModules.zaphyra.common ] (lib.optionals config.modules.filesystem.impermanence.home.enable [ inputs.impermanence.homeManagerModules.impermanence homeManagerModules.zaphyra.impermanence ]) (lib.optionals config.modules.presets.graphical.enable ( with homeManagerModules.zaphyra; [ configure.xdg programs.ghostty programs.ssh programs.git programs.gpg programs.yt-dlp programs.phockup programs.bitwarden-cli programs.nautilus programs.firefox programs.thunderbird programs.errands programs.fractal programs.tuba programs.typst programs.ocrmypdf programs.papers programs.pdfarranger programs.libreoffice programs.apostrophe programs.celluloid programs.javascript ] )) (lib.optionals (config.modules.presets.graphical.type == "gnomeMinimal") ( with homeManagerModules.zaphyra; [ configure.gnome gnomeExtensions.dash-to-dock gnomeExtensions.just-perfection gnomeExtensions.space-bar gnomeExtensions.search-light gnomeExtensions.emoji-copy gnomeExtensions.pip-on-top gnomeExtensions.bluetoothBatteryMeter ] )) ]; }; }