about summary refs log tree commit diff
diff options
context:
space:
mode:
authorThomas Watson <twatson52@icloud.com>2024-03-11 21:02:32 -0500
committerThomas Watson <twatson52@icloud.com>2024-03-11 21:02:32 -0500
commit09b0a8ef715d46296e1865adf95cfa9503fd6487 (patch)
tree703b37729773d2ca075360be34ade88c7b95f897
parent2aa408936e856f7ea76563cf438083162fba5476 (diff)
downloadnixlib-09b0a8ef715d46296e1865adf95cfa9503fd6487.tar
nixlib-09b0a8ef715d46296e1865adf95cfa9503fd6487.tar.gz
nixlib-09b0a8ef715d46296e1865adf95cfa9503fd6487.tar.bz2
nixlib-09b0a8ef715d46296e1865adf95cfa9503fd6487.tar.lz
nixlib-09b0a8ef715d46296e1865adf95cfa9503fd6487.tar.xz
nixlib-09b0a8ef715d46296e1865adf95cfa9503fd6487.tar.zst
nixlib-09b0a8ef715d46296e1865adf95cfa9503fd6487.zip
modules: add hardware.asahi.enable (true by default)
-rw-r--r--apple-silicon-support/modules/boot-m1n1/default.nix2
-rw-r--r--apple-silicon-support/modules/default.nix13
-rw-r--r--apple-silicon-support/modules/kernel/default.nix2
-rw-r--r--apple-silicon-support/modules/mesa/default.nix4
-rw-r--r--apple-silicon-support/modules/peripheral-firmware/default.nix2
-rw-r--r--apple-silicon-support/modules/sound/default.nix8
6 files changed, 20 insertions, 11 deletions
diff --git a/apple-silicon-support/modules/boot-m1n1/default.nix b/apple-silicon-support/modules/boot-m1n1/default.nix
index 39e94c568a3b..ccbd40bddb8c 100644
--- a/apple-silicon-support/modules/boot-m1n1/default.nix
+++ b/apple-silicon-support/modules/boot-m1n1/default.nix
@@ -23,7 +23,7 @@ let
     '';
   };
 in {
-  config = {
+  config = lib.mkIf config.hardware.asahi.enable {
     # install m1n1 with the boot loader
     boot.loader.grub.extraFiles = bootFiles;
     boot.loader.systemd-boot.extraFiles = bootFiles;
diff --git a/apple-silicon-support/modules/default.nix b/apple-silicon-support/modules/default.nix
index d6f397671c72..7990556d46b4 100644
--- a/apple-silicon-support/modules/default.nix
+++ b/apple-silicon-support/modules/default.nix
@@ -8,10 +8,9 @@
     ./sound
   ];
 
-  config =
-    let
+  config = let
       cfg = config.hardware.asahi;
-    in {
+    in lib.mkIf cfg.enable {
       nixpkgs.overlays = lib.mkBefore [ cfg.overlay ];
 
       hardware.asahi.pkgs =
@@ -26,6 +25,14 @@
     };
 
   options.hardware.asahi = {
+    enable = lib.mkOption {
+      type = lib.types.bool;
+      default = true;
+      description = ''
+        Enable the basic Asahi Linux components, such as kernel and boot setup.
+      '';
+    };
+
     pkgsSystem = lib.mkOption {
       type = lib.types.str;
       default = "aarch64-linux";
diff --git a/apple-silicon-support/modules/kernel/default.nix b/apple-silicon-support/modules/kernel/default.nix
index a7b0ea574713..619a02634e93 100644
--- a/apple-silicon-support/modules/kernel/default.nix
+++ b/apple-silicon-support/modules/kernel/default.nix
@@ -2,7 +2,7 @@
 
 { config, pkgs, lib, ... }:
 {
-  config = {
+  config = lib.mkIf config.hardware.asahi.enable {
     boot.kernelPackages = let
       pkgs' = config.hardware.asahi.pkgs;
     in
diff --git a/apple-silicon-support/modules/mesa/default.nix b/apple-silicon-support/modules/mesa/default.nix
index 34966d05d7ad..cc3db2b32930 100644
--- a/apple-silicon-support/modules/mesa/default.nix
+++ b/apple-silicon-support/modules/mesa/default.nix
@@ -3,7 +3,7 @@
   config = let
     isMode = mode: (config.hardware.asahi.useExperimentalGPUDriver
         && config.hardware.asahi.experimentalGPUInstallMode == mode);
-  in lib.mkMerge [
+  in lib.mkIf config.hardware.asahi.enable (lib.mkMerge [
     {
       # required for proper DRM setup even without GPU driver
       services.xserver.config = ''
@@ -41,7 +41,7 @@
         })
       ];
     })
-  ];
+  ]);
 
   options.hardware.asahi.useExperimentalGPUDriver = lib.mkOption {
     type = lib.types.bool;
diff --git a/apple-silicon-support/modules/peripheral-firmware/default.nix b/apple-silicon-support/modules/peripheral-firmware/default.nix
index 2a478e6d9d77..e10632ff2a5e 100644
--- a/apple-silicon-support/modules/peripheral-firmware/default.nix
+++ b/apple-silicon-support/modules/peripheral-firmware/default.nix
@@ -1,6 +1,6 @@
 { config, pkgs, lib, ... }:
 {
-  config = {
+  config = lib.mkIf config.hardware.asahi.enable {
     assertions = lib.mkIf config.hardware.asahi.extractPeripheralFirmware [
       { assertion = config.hardware.asahi.peripheralFirmwareDirectory != null;
         message = ''
diff --git a/apple-silicon-support/modules/sound/default.nix b/apple-silicon-support/modules/sound/default.nix
index 38e412b9e174..d76e7138d4c9 100644
--- a/apple-silicon-support/modules/sound/default.nix
+++ b/apple-silicon-support/modules/sound/default.nix
@@ -5,13 +5,13 @@
     # disable pulseaudio as the Asahi sound infrastructure can't use it.
     # if we disable it only if setupAsahiSound is enabled, then infinite
     # recursion results as pulseaudio enables config.sound by default.
-    { config.hardware.pulseaudio.enable = false; }
+    { config.hardware.pulseaudio.enable = (!config.hardware.asahi.enable); }
   ];
 
   options.hardware.asahi = {
     setupAsahiSound = lib.mkOption {
       type = lib.types.bool;
-      default = config.sound.enable;
+      default = config.sound.enable && config.hardware.asahi.enable;
       description = ''
         Set up the Asahi DSP components so that the speakers and headphone jack
         work properly and safely.
@@ -20,6 +20,8 @@
   };
 
   config = let
+    cfg = config.hardware.asahi;
+
     asahi-audio = pkgs.asahi-audio; # the asahi-audio we use
 
     lsp-plugins = pkgs.lsp-plugins; # the lsp-plugins we use
@@ -39,7 +41,7 @@
     newHotness = builtins.hasAttr "configPackages" options.services.pipewire;
 
     lv2Path = lib.makeSearchPath "lib/lv2" [ lsp-plugins pkgs.bankstown-lv2 ];
-  in lib.mkIf config.hardware.asahi.setupAsahiSound (lib.mkMerge [
+  in lib.mkIf (cfg.setupAsahiSound && cfg.enable) (lib.mkMerge [
     {
       # enable pipewire to run real-time and avoid audible glitches
       security.rtkit.enable = true;