about summary refs log tree commit diff stats
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.tar.gz
nixos-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