{ config, lib, pkgs, username, ... }: let cfg = config.os.core.security; in { options.os.core.security = { enable = lib.mkEnableOption "core security services"; fprint.enable = lib.mkEnableOption "enables fingerprint authentication"; }; config = lib.mkIf cfg.enable { services = { gnome.gnome-keyring.enable = true; fprintd = lib.mkIf cfg.fprint.enable { enable = true; package = pkgs.fprintd-tod; tod = { enable = true; driver = pkgs.libfprint-2-tod1-vfs0090; }; }; }; security = { doas = { enable = true; extraRules = [ { users = [ username ]; keepEnv = true; persist = true; } ]; }; sudo.enable = false; pam.services = { swaylock = { }; doas.fprintAuth = cfg.fprint.enable; login = { enableGnomeKeyring = true; fprintAuth = cfg.fprint.enable; }; }; polkit.enable = true; rtkit.enable = true; }; environment.systemPackages = with pkgs; [ doas-sudo-shim veracrypt bitwarden-desktop keepassxc git-credential-keepassxc ]; }; }