Modularize hardware config

This commit is contained in:
DashieTM 2024-07-11 18:20:05 +02:00
parent e5e23373da
commit 8e9ee08e09
6 changed files with 30 additions and 69 deletions

View file

@ -1,8 +1,11 @@
{ pkgs, config, ... }:
{ pkgs, config, lib, modulesPath, ... }:
let
username = config.conf.username;
in
{
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
# Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
@ -115,4 +118,10 @@ in
swapDevices =
[{ device = "/dev/disk/by-label/SWAP"; }];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.${config.conf.cpu}.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
services.fstrim.enable = lib.mkDefault true;
nix.settings.auto-optimise-store = true;
networking.useDHCP = lib.mkDefault true;
}

View file

@ -1,23 +0,0 @@
{ config, lib, modulesPath, ... }:
{
imports =
[
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.kernelModules = [ ];
boot.extraModulePackages = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp15s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp16s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
services.fstrim.enable = lib.mkDefault true;
nix.settings.auto-optimise-store = true;
}

View file

@ -1,8 +1,6 @@
{
imports = [
../../modules/conf.nix
./dsdt.nix
./firmware.nix
];
conf = {
monitor = "eDP-1";
@ -24,9 +22,4 @@
};
};
hardware.bluetooth.enable = true;
hardware.bluetooth.powerOnBoot = true;
# for hyprdock
services.acpid.enable = true;
}

View file

@ -1,24 +1,15 @@
{ config, lib, modulesPath, ... }:
{
imports =
[
(modulesPath + "/installer/scan/not-detected.nix")
./dsdt.nix
./firmware.nix
];
boot.initrd.kernelModules = [ ];
# special hardware modules
# TODO: needed?
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp15s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp16s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
services.fstrim.enable = lib.mkDefault true;
nix.settings.auto-optimise-store = true;
hardware.bluetooth.enable = true;
hardware.bluetooth.powerOnBoot = true;
# for hyprdock
services.acpid.enable = true;
}

View file

@ -1,13 +1,7 @@
{ pkgs, config, lib, modulesPath, ... }:
{ pkgs, lib, ... }:
{
imports =
[
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.kernelModules = [ ];
# TODO: needed?
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/drive2" =
{
@ -20,19 +14,6 @@
];
};
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp15s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp16s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
services.fstrim.enable = lib.mkDefault true;
nix.settings.auto-optimise-store = true;
virtualisation.virtualbox.host.enable = true;
# enable hardware acceleration and rocm

View file

@ -1,5 +1,15 @@
{ lib, config, pkgs, ... }: {
options.conf = {
cpu = lib.mkOption {
# TODO: how to enable arm?
default = "amd";
type = with lib.types; (enum [ "amd" "intel" ]);
example = "intel";
description = ''
cpu microcode.
'';
};
monitor = lib.mkOption {
default = "";
example = "eDP-1";