Files
nix-config/hosts/desktop/netboot.nix
mjallen18 eefd4b77af idk
2025-06-03 10:16:34 -05:00

206 lines
4.2 KiB
Nix

{ 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" ];
# };
};
}