{ config, lib, pkgs, username, ... }: let cfg = config.os.core.users; in { options.os.core.users.enable = lib.mkEnableOption "enables user accounts"; config = lib.mkIf cfg.enable { programs.fish.enable = true; users.users.${username} = { isNormalUser = true; shell = pkgs.fish; extraGroups = lib.mkMerge [ [ "wheel" ] (lib.mkIf (config.os.core.drivers.amd.enable or false) [ "video" "render" ]) (lib.mkIf (config.os.core.network.enable or false) [ "networkmanager" ]) (lib.mkIf (config.os.srv.virtualization.enable or false) [ "libvirtd" ]) (lib.mkIf (config.os.srv.docker.enable or false) [ "docker" ]) (lib.mkIf (config.os.srv.autoclicker.enable or false) [ "input" ]) ]; }; }; }