refactor(nixosmodules): move boot config to module

This commit is contained in:
Mohammad Rafiq 2025-04-27 00:20:25 +08:00
parent 2d29c8ffef
commit 5bef7c46a6
No known key found for this signature in database
9 changed files with 61 additions and 57 deletions

View file

@ -1,30 +0,0 @@
{
pkgs,
modulesPath,
lib,
...
}:
{
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot = {
loader = {
timeout = 5;
efi.canTouchEfiVariables = true;
};
kernelPackages = lib.mkDefault pkgs.linuxPackages_latest;
initrd.availableKernelModules = [
"ahci"
"nvme"
"sd_mod"
"usb_storage"
"usbhid"
"xhci_pci"
"rtsx_pci_sdmmc"
];
};
services.dbus = {
enable = true;
};
}

View file

@ -1,6 +0,0 @@
{
boot.loader = {
systemd-boot.enable = true;
systemd-boot.configurationLimit = 5;
};
}

View file

@ -1,11 +1,11 @@
{ lib, config, ... }: { lib, config, ... }:
{ {
imports = [ imports = [
../configs/bootloaders/systemd-boot.nix
../configs/filesystems/impermanence.nix ../configs/filesystems/impermanence.nix
../configs/services.nix ../configs/services.nix
]; ];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = [ "kvm-intel" ];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
boot-config.bootloader = "systemd-boot";
} }

View file

@ -3,7 +3,6 @@
imports = imports =
[ [
../nixosModules ../nixosModules
../configs/boot.nix
../configs/security.nix ../configs/security.nix
../configs/users.nix ../configs/users.nix
../configs/networking.nix ../configs/networking.nix
@ -15,4 +14,5 @@
]; ];
nixosModules.enable = true; nixosModules.enable = true;
nix-config.enable = true; nix-config.enable = true;
boot-config.enable = true;
} }

View file

@ -1,16 +0,0 @@
{
inputs,
lib,
config,
...
}:
{
imports = [
../configs/bootloaders/systemd-boot.nix
../configs/filesystems/impermanence.nix
inputs.nixos-hardware.nixosModules.microsoft-surface-go
];
boot.kernelModules = [ "kvm-intel" ];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View file

@ -6,7 +6,6 @@
}: }:
{ {
imports = [ imports = [
../configs/bootloaders/systemd-boot.nix
../configs/filesystems/hw-nemesis.nix ../configs/filesystems/hw-nemesis.nix
../configs/hardware/nvidia.nix ../configs/hardware/nvidia.nix
../configs/hardware/powermanagement.nix ../configs/hardware/powermanagement.nix
@ -15,4 +14,5 @@
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = [ "kvm-amd" ];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
boot-config.bootloader = "systemd-boot";
} }

51
nixosModules/boot.nix Normal file
View file

@ -0,0 +1,51 @@
{
config,
lib,
pkgs,
modulesPath,
...
}:
let
moduleName = "boot-config";
cfg = config."${moduleName}";
in
{
options = {
"${moduleName}" = {
enable = lib.mkEnableOption "Enable ${moduleName}.";
bootloader = lib.mkOption {
type = lib.types.str;
default = "";
example = "systemd-boot";
description = "What bootloader to use.";
};
};
};
config = lib.mkIf cfg.enable {
boot = {
loader =
{
timeout = 5;
efi.canTouchEfiVariables = true;
}
// lib.mkIf (cfg.bootloader == "systemd-boot") {
systemd-boot.enable = true;
systemd-boot.configurationLimit = 5;
};
kernelPackages = lib.mkDefault pkgs.linuxPackages_latest;
initrd.availableKernelModules = [
"ahci"
"nvme"
"sd_mod"
"usb_storage"
"usbhid"
"xhci_pci"
"rtsx_pci_sdmmc"
];
};
services.dbus = {
enable = true;
};
};
}

View file

@ -11,10 +11,13 @@ in
{ {
imports = [ imports = [
./nix-config.nix ./nix-config.nix
./boot.nix
]; ];
options = { options = {
"${moduleName}".enable = lib.mkEnableOption "Enable ${moduleName}."; "${moduleName}" = {
enable = lib.mkEnableOption "Enable ${moduleName}.";
};
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {

View file

@ -10,7 +10,9 @@ let
in in
{ {
options = { options = {
"${moduleName}".enable = lib.mkEnableOption "Enable ${moduleName}."; "${moduleName}" = {
enable = lib.mkEnableOption "Enable ${moduleName}.";
};
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {