{ config, lib, pkgs, modulesPath, ... }: let inherit (lib) mkDefault mkOverride ; in { imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; # Inspired by: https://github.com/Jovian-Experiments/Jovian-NixOS boot = { initrd = { availableKernelModules = [ "xhci_pci" "ehci_pci" "nvme" "usbhid" "usb_storage" "sd_mod" ]; kernelModules = [ "amdgpu" ]; supportedFilesystems = [ "zfs" ]; }; kernel.sysctl = { "kernel.sched_cfs_bandwidth_slice_u" = mkDefault 3000; "kernel.sched_latency_ns" = mkDefault 3000000; "kernel.sched_min_granularity_ns" = mkDefault 300000; "kernel.sched_wakeup_granularity_ns" = mkDefault 500000; "kernel.sched_migration_cost_ns" = mkDefault 50000; "kernel.sched_nr_migrate" = mkDefault 128; "kernel.split_lock_mitigate" = mkDefault 0; "net.ipv4.tcp_mtu_probing" = true; "net.ipv4.tcp_fin_timeout" = mkDefault 5; "vm.max_map_count" = mkOverride 999 2147483642; }; kernelModules = [ "hid_nintendo" "hid_playstation" "kvm-amd" ]; kernelParams = [ "log_buf_len=4M" "amdgpu.lockup_timeout=5000,10000,10000,5000" "ttm.pages_min=2097152" "amdgpu.sched_hw_submission=4" "audit=0" ]; kernelPackages = pkgs.linuxPackages_6_14; supportedFilesystems = [ "ntfs" ]; }; hardware = { bluetooth = { enable = true; powerOnBoot = true; settings = { General = { MultiProfile = "multiple"; FastConnectable = true; # enable experimental LL privacy, experimental offload codecs KernelExperimental = "15c0a148-c273-11ea-b3de-0242ac130004"; }; LE = { ScanIntervalSuspend = 2240; ScanWindowSuspend = 224; }; }; }; graphics = { enable32Bit = true; extraPackages = [ pkgs.gamescope-wsi ]; extraPackages32 = [ pkgs.pkgsi686Linux.gamescope-wsi ]; }; cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; enableRedistributableFirmware = true; }; powerManagement.cpuFreqGovernor = "schedutil"; services.pulseaudio.enable = false; services.xserver.videoDrivers = [ "amdgpu" ]; networking.useDHCP = lib.mkDefault true; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; }