206 lines
4.2 KiB
Nix
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" ];
|
|
# };
|
|
};
|
|
} |