{ config, lib, pkgs, ... }: let pkgsVersion = pkgs; #.unstable; kernel = pkgs.linuxPackages_cachyos; environmentVariables = { STEAM_FORCE_DESKTOPUI_SCALING = "1.0"; GDK_SCALE = "1"; EDITOR = "${pkgs.vscodium}/bin/codium --wait"; VISUAL = "${pkgs.vscodium}/bin/codium --wait"; }; systemPackages = with pkgsVersion; [ aha aspell aspellDicts.en aspellDicts.en-computers aspellDicts.en-science borgbackup # brscan5 efibootmgr kdePackages.ksvg memtest86-efi memtest86plus # occt os-prober nil qemu_full rclone rclone-browser restic restic-browser restic-integrity sane-frontends sbctl tpm2-tools tpm2-tss udisks2 unzip winetricks edk2-uefi-shell ]; lactConfig = '' daemon: log_level: info admin_groups: - wheel - sudo disable_clocks_cleanup: false apply_settings_timer: 5 gpus: 1002:73BF-1002:0E3A-0000:03:00.0: fan_control_enabled: true fan_control_settings: mode: curve static_speed: 1.0 temperature_key: edge interval_ms: 500 curve: 30: 0.0 40: 0.2 50: 0.35 60: 0.5 70: 0.75 80: 1.0 spindown_delay_ms: 0 change_threshold: 0 pmfw_options: {} power_cap: 293.0 performance_level: auto voltage_offset: 0 power_states: {} ''; in { imports = [ ./filesystems.nix ./networking.nix ./nix.nix ./services.nix ./sops.nix ./users.nix ../default.nix ../../share/amd ]; nix = { settings = { substituters = [ "https://cache.mjallen.dev" ]; trusted-public-keys = [ "cache.mjallen.dev-1:IzFmKCd8/gggI6lcCXsW65qQwiCLGFFN9t9s2iw7Lvc=" ]; }; }; chaotic.mesa-git.enable = true; # Environment configuration environment = { systemPackages = systemPackages; etc."lact/config.yaml".text = lactConfig; variables = environmentVariables; }; # Hardware configuration hardware = { # Enable the QMK firmware flashing tool. keyboard = { qmk.enable = true; }; # Enable Sane and Brother printer support. sane = { enable = true; brscan5.enable = false; # extraBackends = [ pkgsVersion.brscan5 ]; }; }; # Common Configuration share = { gaming.enable = true; hardware.amd = { enable = lib.mkDefault true; lact.enable = lib.mkDefault true; }; }; programs.coolercontrol.enable = true; # Time configuration time = { hardwareClockInLocalTime = lib.mkDefault false; }; # Virtualisation configuration virtualisation = { libvirtd.enable = lib.mkDefault true; waydroid.enable = lib.mkDefault true; }; # Network boot specifics boot = { initrd = { network.enable = true; supportedFilesystems = [ "tmpfs" "squashfs" ]; # extraFiles."/.ro-store".source = "${config.system.build.toplevel}"; systemd.enable = true; availableKernelModules = [ "xhci_pci" "nvme" "ahci" "usbhid" "uas" "usb_storage" "sd_mod" ]; }; loader = { grub.enable = lib.mkForce false; systemd-boot.enable = lib.mkForce false; # already replaced by lanzaboote; included explicitly for clarity generic-extlinux-compatible.enable = lib.mkForce true; # required for PXE NetBoot timeout = 0; efi.canTouchEfiVariables = lib.mkForce false; }; kernelModules = [ "nct6775" "kvm-amd" ]; kernelParams = [ "ip=dhcp" "boot.shell_on_fail" "quiet" "splash" # needed cause ssd powersaving is broken af I guess "nvme_core.default_ps_max_latency_us=0" "pcie_aspm=off" ]; plymouth = { enable = true; }; }; zramSwap.enable = true; networking.hostName = lib.mkForce "matt-netboot"; # Stateless filesystem (tmpfs) fileSystems = lib.mkForce { "/" = { device = "tmpfs"; fsType = "tmpfs"; options = [ "defaults" "size=25%" ]; }; # "/nix" = { # device = "/.ro-store"; # fsType = "none"; # options = [ "bind" "ro" ]; # }; }; }