{ config, lib, pkgs, pkgsStable, quirks, ... }: let users = [ "fenix" ]; in { imports = ( quirks [ "development" "steam" "32bit" ] ); home-manager = { users = lib.genAttrs users (user: import ./${user}.nix); }; networking = { hostName = "fenixpc"; networkmanager = { plugins = with pkgs; lib.mkForce [ networkmanager-openvpn ]; }; }; systemd.oomd.extraConfig.DefaultMemoryPressureLimit = "15%"; programs = { zsh.enable = true; }; services = { printing.ricoh.enable = true; calibre-web = { enable = true; listen.port = 8091; listen.ip = "0.0.0.0"; package = pkgsStable.calibre-web; options = { enableBookUploading = true; enableBookConversion = true; }; user = "fenix"; }; }; environment.systemPackages = with pkgs; [ microcode-amd openvpn ]; users = { mutableUsers = true; users = lib.genAttrs users (user: { shell = pkgs.zsh; createHome = true; isNormalUser = true; initialPassword = "password"; group = "fenix"; extraGroups = [ "networkmanager" "ssh" "docker" "video" "pipewire" "wheel" ]; }); groups = { i2c = { members = users; }; } // lib.genAttrs users (user: { members = [ user ]; gid = config.users.users.${user}.uid; }); }; virtualisation.vmVariant = { virtualisation = { memorySize = 16096; cores = 8; }; }; security.pam = { services = lib.genAttrs users (user: { gnupg.enable = true; kwallet.enable = true; }); }; }