{ config, lib, pkgs, this, ... }: with lib; { nixfiles.modules = { wireguard.client.enable = true; syncthing.enable = true; openssh.server.enable = true; games = { lutris.enable = true; minecraft.client.enable = true; steam.enable = true; }; android.enable = true; bluetooth.enable = true; discord.enable = true; libvirtd.enable = true; qutebrowser.enable = true; }; hm.programs = { # NOTE This produces very poor performance even though RX 6750 XT should # handle VA-API hardware decoding for all major formats (including AV1) just # fine. firefox.profiles.default.settings."media.ffmpeg.vaapi.enabled" = false; # Mostly just placebo. :^) mpv.config = { hwdec = "vdpau"; vo = "gpu"; profile = "gpu-hq"; }; }; # Usually stuff that is going to be compiled on this machine is going to have # parallelisation support enabled, so we will make sure that all cores are # utilised and limit the job queue to one. nix.extraOptions = '' keep-going = true max-jobs = 1 cores = 32 ''; boot = { # Silence benign MCE errors: # ``` # mce: [Hardware Error]: CPU 1: Machine Check: 0 Bank 29: ffffffffffffffff # mce: [Hardware Error]: TSC 0 MISC ff1fffffffffffff SYND ffffffffffffffff IPID ffffffffffffffff # mce: [Hardware Error]: PROCESSOR 2:a60f12 TIME 1669988017 SOCKET 0 APIC 2 microcode a601201 # ``` kernelParams = ["mce=nobootlog"]; # The boot drive is Samsung SSD 980 PRO 2TB. initrd.kernelModules = ["nvme"]; }; # TODO Immutable `/' shire on ZFS datasets and snapshots. # # Opt-in: # - /etc/NetworkManager # - /etc/ssh # - /home # - /var/lib/bluetooth # - /var/lib/iwd # - /var/lib/log # # Investigate: # - /var/lib/NetworkManager # - /var/lib/cni # - /var/lib/containers # - /var/lib/qemu fileSystems = { "/boot" = { device = "/dev/disk/by-uuid/FF1E-9CFD"; fsType = "vfat"; }; "/" = { device = "/dev/disk/by-uuid/20276c1b-7e46-430b-b741-2f4aeb76bc51"; fsType = "xfs"; options = ["noatime"]; }; }; # No swap space is declared here because the system already has 128Gb of RAM. :^) # I've only manage to hit around 100Gb mark when running large # computations/compiling something big. Pretty sure that a hefty chunk of it # was just residual cache and it wouldn't make me get to OOM situations. }