diff options
author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2024-07-05 16:25:36 +0200 |
---|---|---|
committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2024-07-05 19:43:07 +0200 |
commit | fd9ed4e5e826674131f4887853150d3795dd222f (patch) | |
tree | 17998feba0df8ff1ab2f2c4a8bcac270a37ceda6 | |
parent | build(treewide): Update (diff) | |
download | nixos-config-fd9ed4e5e826674131f4887853150d3795dd222f.tar.gz nixos-config-fd9ed4e5e826674131f4887853150d3795dd222f.zip |
refactor(hosts): Also move bluetooth and graphics to separate modules
-rw-r--r-- | hosts/apzu/default.nix | 4 | ||||
-rw-r--r-- | hosts/apzu/hardware.nix | 53 | ||||
-rw-r--r-- | hosts/tiamat/default.nix | 3 | ||||
-rw-r--r-- | hosts/tiamat/hardware.nix | 28 | ||||
-rw-r--r-- | modules/system/bluetooth/default.nix | 20 | ||||
-rw-r--r-- | modules/system/default.nix | 1 | ||||
-rw-r--r-- | modules/system/hardware/default.nix | 19 |
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 |