134 lines
3.9 KiB
Nix
134 lines
3.9 KiB
Nix
{ pkgs, ... }:
|
|
|
|
{
|
|
imports = [
|
|
./hardware-configuration.nix
|
|
];
|
|
|
|
# Trying to solve kernel panics
|
|
boot.kernelPackages = pkgs.linuxPackages_6_1;
|
|
|
|
# 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; });
|
|
# };
|
|
# };
|
|
# };
|
|
|
|
# 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.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;
|
|
}
|