{ config, pkgs, ... }: { # Optimisation # nixpkgs.hostPlatform = { # gcc.arch = "tigerlake"; # gcc.tune = "tigerlake"; # system = "x86_64-linux"; # }; # nix.settings.system-features = [ "gccarch-tigerlake" "nixos-test" "benchmark" "big-parallel" "kvm" ]; # # Increasing the limit of files to help with compilation # security.pam.loginLimits = [{ # domain = "*"; # type = "soft"; # item = "nofile"; # value = "8192"; # }]; # # Resources Limit # nix.settings = { # max-jobs = 7; # cores = 2; # }; # # OOM configuration # systemd = { # # Create a separate slice for nix-daemon that is # # memory-managed by the userspace systemd-oomd killer # slices."nix-daemon".sliceConfig = { # ManagedOOMMemoryPressure = "kill"; # ManagedOOMMemoryPressureLimit = "50%"; # }; # services."nix-daemon".serviceConfig.Slice = "nix-daemon.slice"; # # If a kernel-level OOM event does occur anyway, # # strongly prefer killing nix-daemon child processes # services."nix-daemon".serviceConfig.OOMScoreAdjust = 1000; # services."nix-daemon".serviceConfig.MemoryHigh = "16G"; # services."nix-daemon".serviceConfig.MemoryMax = "20G"; # }; # # Disabling failing test # nixpkgs.overlays = [ (final: prev: { # orc = prev.orc.overrideAttrs (_: { doCheck = false; }); # gsl = prev.gsl.overrideAttrs (_: { doCheck = false; }); # fprintd = prev.fprintd.overrideAttrs (super: { # # doCheck = false; # # buildInputs = super.buildInputs or [ ] ++ (with pkgs; [ libpam-wrapper (pkgs.python3.withPackages (python-pkgs: [ python-pkgs.pycairo python-pkgs.dbus-python python-pkgs.python-dbusmock ])) ]); # mesonCheckFlags = [ # # PAM related checks are timing out # "--no-suite" "fprintd" # ]; # }); # # haskellPackages.crypton = pkgs.haskell.lib.overrideCabal prev.crypton (_: { doCheck = false; }); # # haskellPackages.cryptonite = pkgs.haskell.lib.overrideCabal prev.cryptonite (_: { doCheck = false; }); # }) ]; # nixpkgs.config.packageOverrides = pkgs: { # haskellPackages = pkgs.haskellPackages.override { # overrides = hsSelf: hsSuper: { # crypton = pkgs.haskell.lib.overrideCabal hsSuper.crypton (_: { doCheck = false; }); # cryptonite = pkgs.haskell.lib.overrideCabal hsSuper.cryptonite (_: { doCheck = false; }); # crypton-x509-validation = pkgs.haskell.lib.overrideCabal hsSuper.crypton-x509-validation (oa: { doCheck = false; }); # tls = pkgs.haskell.lib.overrideCabal hsSuper.tls (oa: { doCheck = false; }); # }; # }; # }; # NVidia services.xserver.videoDrivers = [ "nvidia" ]; hardware.opengl = { enable = true; driSupport = true; driSupport32Bit = true; }; hardware.nvidia = { # Modesetting is needed for most wayland compositors modesetting.enable = true; # Use the open source version of the kernel module # Only available on driver 515.43.04+ open = false; # Enable the nvidia settings menu nvidiaSettings = true; # Optionally, you may need to select the appropriate driver version for your specific GPU # package = config.boot.kernelPackages.nvidiaPackages.vulkan_beta; prime = { offload = { enable = true; enableOffloadCmd = true; }; intelBusId = "PCI:0:2:0"; nvidiaBusId = "PCI:1:0:0"; }; }; # For containers hardware.nvidia-container-toolkit.enable = true; }