{ config, lib, pkgs, quirks, ... }: let users = [ "fenix" ]; in { imports = ( quirks [ "development" "steam" "yubilock" ] ); home-manager = { users = lib.genAttrs users (user: import ./${user}.nix); }; networking = { hostName = "fenixpc"; networkmanager = { plugins = with pkgs; lib.mkForce [ networkmanager-openvpn ]; }; }; systemd.oomd.settings.OOM.DefaultMemoryPressureLimit = "15%"; services = { printing.ricoh.enable = true; printing.enable = false; printing.cups-pdf.enable = false; calibre-web = { enable = true; user = "fenix"; }; lact.enable = true; }; systemd.services.calibre-web.serviceConfig.environment = lib.mkForce ""; systemd.services.calibre-web.environment.CACHE_DIR = "/var/cache/calibre-web"; environment.systemPackages = with pkgs; [ microcode-amd openvpn cups ]; 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" "input" "audio" "users" "gamemode" config.services.kubo.group ]; }); 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; }); }; programs = { gamemode = { enable = true; settings = { general = { renice = 10; # blacklist = "vlc,firefox"; # whitelist = "game1,game2"; }; cpu = { governor = "performance"; boost = "auto"; }; gpu = { amd_performance_level = "high"; apply_gpu_optimizations = 1; per_process_gpu_clocks = 1; }; supervisor = { # killlist = "tracker-miner-fs,tracker-store"; }; custom = { start = "${pkgs.libnotify}/bin/notify-send 'GameMode started'"; end = "${pkgs.libnotify}/bin/notify-send 'GameMode ended'"; }; }; }; }; hardware.graphics = { extraPackages = with pkgs; [ libva vulkan-tools ]; }; }