{ pkgs, ... }: { imports = [ ./hardware-configuration.nix ]; boot.kernelPackages = pkgs.linuxPackages_latest; # Boot boot.loader.systemd-boot.extraEntries = { "fedora.conf" = '' title Fedora efi /EFI/fedora/grubx64.efi ''; }; # Filesystem fileSystems = { "/".options = [ "compress=zstd:1" ]; "/home".options = [ "compress=zstd:1" ]; "/nix".options = [ "compress=zstd:1" "noatime" ]; }; # Networking networking.hostName = "lyes-pc"; # NVidia services.xserver.videoDrivers = [ "nvidia" ]; hardware.graphics = { enable = true; enable32Bit = 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 = true; # 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; # 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" ]; }); libsrtp = prev.libsrtp.overrideAttrs (_: { doCheck = false; }); # # 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; }); # }; # }; # }; }