aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-07-05 16:25:36 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-07-05 19:43:07 +0200
commitfd9ed4e5e826674131f4887853150d3795dd222f (patch)
tree17998feba0df8ff1ab2f2c4a8bcac270a37ceda6
parentbuild(treewide): Update (diff)
downloadnixos-config-fd9ed4e5e826674131f4887853150d3795dd222f.zip
refactor(hosts): Also move bluetooth and graphics to separate modules
-rw-r--r--hosts/apzu/default.nix4
-rw-r--r--hosts/apzu/hardware.nix53
-rw-r--r--hosts/tiamat/default.nix3
-rw-r--r--hosts/tiamat/hardware.nix28
-rw-r--r--modules/system/bluetooth/default.nix20
-rw-r--r--modules/system/default.nix1
-rw-r--r--modules/system/hardware/default.nix19
7 files changed, 62 insertions, 66 deletions
diff --git a/hosts/apzu/default.nix b/hosts/apzu/default.nix
index 5b3d23f8..2d26b27b 100644
--- a/hosts/apzu/default.nix
+++ b/hosts/apzu/default.nix
@@ -18,11 +18,15 @@
backlight = "intel_backlight";
};
locale.enable = true;
+
networking = {
enable = true;
mode = "NetworkManager";
hostName = "apzu";
};
+ bluetooth = {
+ enable = true;
+ };
nixpkgs = {
enable = true;
systemName = "x86_64-linux";
diff --git a/hosts/apzu/hardware.nix b/hosts/apzu/hardware.nix
index 29223e29..ae204baa 100644
--- a/hosts/apzu/hardware.nix
+++ b/hosts/apzu/hardware.nix
@@ -1,19 +1,22 @@
-{
- modulesPath,
- pkgs,
- ...
-}: {
+{modulesPath, ...}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix") # TODO: is this necessary?
];
- soispha.disks = {
- enable = true;
- disk = "/dev/disk/by-id/nvme-INTEL_SSDPEKNU512GZH_PHKA1481032A512A_1";
- ssd = true;
- swap = {
- uuid = "c94cd20a-dd3c-436f-9841-6fe92e5c8719";
- resumeOffset = "533760";
+ soispha = {
+ disks = {
+ enable = true;
+ disk = "/dev/disk/by-id/nvme-INTEL_SSDPEKNU512GZH_PHKA1481032A512A_1";
+ ssd = true;
+ swap = {
+ uuid = "c94cd20a-dd3c-436f-9841-6fe92e5c8719";
+ resumeOffset = "533760";
+ };
+ };
+
+ hardware = {
+ enable = true;
+ cpuType = "intel";
};
};
@@ -22,30 +25,4 @@
initrd.availableKernelModules = ["xhci_pci" "vmd" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc"];
};
-
- hardware = {
- bluetooth = {
- enable = true;
- # Avoid some battery drain, requires a `power on` in bluetoothctl
- powerOnBoot = false;
- };
-
- # opengl.extraPackages = with pkgs; [
- # rocm-opencl-icd # open-cl
- # amdvlk # or directly through mesa
- # amd-media-driver # libva
- # ];
- #
- # # Force radv, TODO: is this logical?
- # environment.variables.AMD_VULKAN_ICD = "RADV";
-
- cpu.intel.updateMicrocode = true; # Why not?
- opengl = {
- enable = true;
- extraPackages = with pkgs; [
- vaapiVdpau
- libvdpau-va-gl
- ];
- };
- };
}
diff --git a/hosts/tiamat/default.nix b/hosts/tiamat/default.nix
index 06bca3bc..17e2ae9d 100644
--- a/hosts/tiamat/default.nix
+++ b/hosts/tiamat/default.nix
@@ -19,6 +19,9 @@
mode = "systemd-networkd";
hostName = "tiamat";
};
+ bluetooth = {
+ enable = true;
+ };
polkit.enable = true;
power.enable = true;
diff --git a/hosts/tiamat/hardware.nix b/hosts/tiamat/hardware.nix
index d8e62af0..8ecb4ce0 100644
--- a/hosts/tiamat/hardware.nix
+++ b/hosts/tiamat/hardware.nix
@@ -1,33 +1,9 @@
-{
- modulesPath,
- pkgs,
- ...
-}: {
+{modulesPath, ...}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix") # TODO: is this necessary?
];
hardware = {
- # opengl.extraPackages = with pkgs; [
- # rocm-opencl-icd # open-cl
- # amdvlk # or directly through mesa
- # amd-media-driver # libva
- # ];
- #
- # # Force radv, TODO: is this logical?
- # environment.variables.AMD_VULKAN_ICD = "RADV";
-
- opengl = {
- enable = true;
- extraPackages = with pkgs; [
- vaapiVdpau
- libvdpau-va-gl
-
- amdvlk # or directly through mesa
- ];
- };
-
- cpu.amd.updateMicrocode = true; # Why not?
bluetooth = {
enable = true;
powerOnBoot = true;
@@ -37,10 +13,12 @@
soispha = {
hardware = {
enable = true;
+ cpuType = "amd";
moonlander = {
enableFlashing = true;
};
};
+
disks = {
enable = true;
disk = "/dev/disk/by-id/nvme-CT1000P5SSD8_21032C857568";
diff --git a/modules/system/bluetooth/default.nix b/modules/system/bluetooth/default.nix
new file mode 100644
index 00000000..bf1c6a90
--- /dev/null
+++ b/modules/system/bluetooth/default.nix
@@ -0,0 +1,20 @@
+{
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.soispha.bluetooth;
+in {
+ options.soispha.bluetooth = {
+ enable = lib.mkEnableOption "an integrated bluetooth setup.";
+ };
+
+ config = lib.mkIf cfg.enable {
+ hardware = {
+ bluetooth = {
+ enable = true;
+ powerOnBoot = !config.soispha.laptop.enable;
+ };
+ };
+ };
+}
diff --git a/modules/system/default.nix b/modules/system/default.nix
index ecd6eb63..85f8dfb3 100644
--- a/modules/system/default.nix
+++ b/modules/system/default.nix
@@ -2,6 +2,7 @@
cfg = config.soispha;
in {
imports = [
+ ./bluetooth
./boot
./cleanup
./disks
diff --git a/modules/system/hardware/default.nix b/modules/system/hardware/default.nix
index d2d7d146..850416b7 100644
--- a/modules/system/hardware/default.nix
+++ b/modules/system/hardware/default.nix
@@ -7,21 +7,34 @@
cfg = config.soispha.hardware;
in {
options.soispha.hardware = {
- enable = lib.mkEnableOption "udev rules for devices I use";
+ enable = lib.mkEnableOption "the various hardware dependend things (and graphics drivers)";
moonlander = {
enableLiveTraining = lib.mkEnableOption "udev rules for live training";
enableFlashing = lib.mkEnableOption "udev rules for firmware flashing";
};
+
+ cpuType = lib.mkOption {
+ type = lib.types.enum ["amd" "intel"];
+ description = ''
+ The manuafacturer of the used cpu.
+
+ This is used to enable, for example, the correct microcode updates.
+ '';
+ };
};
config = lib.mkIf cfg.enable {
hardware = {
+ cpu.amd.updateMicrocode = cfg.cpuType == "amd";
+ cpu.intel.updateMicrocode = cfg.cpuType == "intel";
+
+ # This is enabled manually to support older firmware.
keyboard.zsa.enable = false;
- nitrokey.enable = true;
+ nitrokey.enable = true;
onlykey.enable = false;
- opengl = {
+ graphics = {
enable = true;
extraPackages = builtins.attrValues {
inherit