nixfiles/specific/lyes-pc/configuration.nix

135 lines
4 KiB
Nix

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