diff --git a/hosts/modules/boot.nix b/hosts/modules/boot.nix index d4e334d..9faa4c5 100644 --- a/hosts/modules/boot.nix +++ b/hosts/modules/boot.nix @@ -8,7 +8,10 @@ efi.canTouchEfiVariables = true; timeout = 5; }; - tmp.cleanOnBoot = true; + tmp = { + useTmpfs = true; + tmpfsSize = "50%"; + }; kernelPackages = pkgs.linuxPackages_latest; #50 series nvidia drivers are kinda a mess; use 6.12 if there's any issues #kernelPackages = pkgs.linuxPackages_6_12; @@ -23,16 +26,41 @@ "boot.shell_on_fail" "udev.log_priority=3" "rd.systemd.show_status=auto" - "nvidia_drm.modeset=1" - "nvidia_drm.fbdev=1" + "nowatchdog" ]; - # cpu specific optimizations + kernelModules = ["tcp_bbr"]; kernel.sysctl = { - "vm.swappiness" = 10; + "vm.swappiness" = 60; "vm.vfs_cache_pressure" = 50; + "vm.compaction_proactiveness" = 0; + "vm.page_lock_unfairness" = 1; + "vm.max_map_count" = 2147483642; #SteamOS default + "kernel.split_lock_mitigate" = 0; + "net.core.rmem_max" = 16777216; + "net.core.wmem_max" = 16777216; + "net.ipv4.tcp_fastopen" = 3; + "net.ipv4.tcp_congestion_control" = "bbr"; }; + kernelPatches = [ + { + name = "Rust"; + patch = null; + features = { + rust = true; + }; + } + ]; }; + # redirect builds to disk so tmpfs doesn't blow up + systemd.services.nix-daemon.environment.TMPDIR = "/var/tmp"; + + zramSwap = { + enable = true; + algorithm = "zstd"; + memoryPercent = 50; + priority = 100; + }; # been annoying as of late systemd.oomd.enable = false; diff --git a/hosts/modules/env.nix b/hosts/modules/env.nix index bb5a4f6..f5dd64f 100644 --- a/hosts/modules/env.nix +++ b/hosts/modules/env.nix @@ -1,6 +1,5 @@ { pkgs, - lib, config, ... }: { @@ -12,30 +11,6 @@ XCURSOR_SIZE = toString config.theme.cursorSize; QT_QPA_PLATFORMTHEME = config.theme.qtTheme; QT_STYLE_OVERRIDE = config.theme.qtOverride; - CC = "${pkgs.gcc}/bin/gcc"; - LIBCLANG_PATH = "${pkgs.llvmPackages.libclang.lib}/lib"; - LUA_PATH = "${pkgs.luajit}/share/lua/${pkgs.luajit.luaversion}/?.lua;${pkgs.luajit}/share/lua/${pkgs.luajit.luaversion}/?/init.lua;;"; - LUA_CPATH = "${pkgs.luajit}/lib/lua/${pkgs.luajit.luaversion}/?.so;;"; - }; - - environment.sessionVariables = { - PKG_CONFIG_PATH = lib.makeSearchPath "lib/pkgconfig" [ - pkgs.portaudio - pkgs.alsa-lib - pkgs.stdenv.cc.cc - ]; - - LD_LIBRARY_PATH = lib.makeLibraryPath [ - pkgs.libglvnd - pkgs.mesa - pkgs.cudatoolkit - pkgs.mangohud - pkgs.portaudio - pkgs.alsa-lib - pkgs.wayland - pkgs.libxkbcommon - pkgs.glib - ]; }; environment.pathsToLink = [ @@ -45,6 +20,21 @@ "/share/pixmaps" ]; + programs.nix-ld = { + enable = true; + libraries = with pkgs; [ + libglvnd + mesa + cudatoolkit + mangohud + portaudio + alsa-lib + wayland + libxkbcommon + glib + ]; + }; + programs.direnv = { enable = true; nix-direnv.enable = true; diff --git a/hosts/modules/nvidia.nix b/hosts/modules/nvidia.nix index cd2af69..a4f5987 100644 --- a/hosts/modules/nvidia.nix +++ b/hosts/modules/nvidia.nix @@ -11,27 +11,13 @@ powerManagement.enable = false; nvidiaSettings = true; nvidiaPersistenced = true; - - package = let - base = config.boot.kernelPackages.nvidiaPackages.mkDriver { - version = "590.48.01"; - sha256_64bit = "sha256-ueL4BpN4FDHMh/TNKRCeEz3Oy1ClDWto1LO/LWlr1ok="; - openSha256 = "sha256-hECHfguzwduEfPo5pCDjWE/MjtRDhINVr4b1awFdP44="; - settingsSha256 = "sha256-4SfCWp3swUp+x+4cuIZ7SA5H7/NoizqgPJ6S9fm90fA="; - persistencedSha256 = "sha256-wsNeuw7IaY6Qc/i/AzT/4N82lPjkwfrhxidKWUtcwW8="; - }; - - cachyosPatch = pkgs.fetchpatch { - url = "https://raw.githubusercontent.com/CachyOS/CachyOS-PKGBUILDS/master/nvidia/nvidia-utils/kernel-6.19.patch"; - sha256 = "sha256-YuJjSUXE6jYSuZySYGnWSNG5sfVei7vvxDcHx3K+IN4="; - }; - in - base - // { - open = base.open.overrideAttrs (old: { - patches = (old.patches or []) ++ [cachyosPatch]; - }); - }; + package = config.boot.kernelPackages.nvidiaPackages.mkDriver { + version = "595.45.04"; + sha256_64bit = "sha256-zUllSSRsuio7dSkcbBTuxF+dN12d6jEPE0WgGvVOj14="; + openSha256 = "sha256-uqNfImwTKhK8gncUdP1TPp0D6Gog4MSeIJMZQiJWDoE="; + settingsSha256 = "sha256-Y45pryyM+6ZTJyRaRF3LMKaiIWxB5gF5gGEEcQVr9nA="; + persistencedSha256 = "sha256-5FoeUaRRMBIPEWGy4Uo0Aho39KXmjzQsuAD9m/XkNpA="; + }; }; hardware.nvidia-container-toolkit.enable = true;