diff --git a/hosts/envy/boot/default.nix b/hosts/envy/boot/default.nix index 50d146f5..f6458c21 100644 --- a/hosts/envy/boot/default.nix +++ b/hosts/envy/boot/default.nix @@ -1,4 +1,8 @@ { pkgs, ... }: { - boot.kernelPackages = pkgs.linuxPackages_latest; + boot = { + kernelPackages = pkgs.linuxPackages_latest; + lanzaboote.enable = true; + plymouth.enable = true; + }; } diff --git a/hosts/envy/default.nix b/hosts/envy/default.nix index 9ba1dca9..98de9f54 100644 --- a/hosts/envy/default.nix +++ b/hosts/envy/default.nix @@ -12,14 +12,12 @@ networking = { hostName = "envy"; + wireless.iwd.enable = true; wg-quick.interfaces.wgc.address = [ "10.100.0.25/24" ]; }; system = { desktop.enable = true; - lanzaboote.enable = true; - fancyboot.enable = true; - wireless.enable = true; stateVersion = "24.11"; }; } diff --git a/hosts/intuos/boot/default.nix b/hosts/intuos/boot/default.nix index 50d146f5..f6458c21 100644 --- a/hosts/intuos/boot/default.nix +++ b/hosts/intuos/boot/default.nix @@ -1,4 +1,8 @@ { pkgs, ... }: { - boot.kernelPackages = pkgs.linuxPackages_latest; + boot = { + kernelPackages = pkgs.linuxPackages_latest; + lanzaboote.enable = true; + plymouth.enable = true; + }; } diff --git a/hosts/intuos/default.nix b/hosts/intuos/default.nix index 6b863af0..f0886989 100644 --- a/hosts/intuos/default.nix +++ b/hosts/intuos/default.nix @@ -11,6 +11,7 @@ networking = { hostName = "intuos"; + wireless.iwd.enable = true; interfaces."wlan0".ipv4.addresses = [{ address = "10.2.0.102"; prefixLength = 8; @@ -24,8 +25,6 @@ system = { desktop.enable = true; lanzaboote.enable = true; - fancyboot.enable = true; - wireless.enable = true; stateVersion = "24.11"; }; } diff --git a/hosts/kitty/boot/default.nix b/hosts/kitty/boot/default.nix index 50d146f5..f6458c21 100644 --- a/hosts/kitty/boot/default.nix +++ b/hosts/kitty/boot/default.nix @@ -1,4 +1,8 @@ { pkgs, ... }: { - boot.kernelPackages = pkgs.linuxPackages_latest; + boot = { + kernelPackages = pkgs.linuxPackages_latest; + lanzaboote.enable = true; + plymouth.enable = true; + }; } diff --git a/hosts/kitty/default.nix b/hosts/kitty/default.nix index ce4a9e16..b069babb 100644 --- a/hosts/kitty/default.nix +++ b/hosts/kitty/default.nix @@ -24,7 +24,6 @@ system = { desktop.enable = true; lanzaboote.enable = true; - fancyboot.enable = true; stateVersion = "24.11"; }; } diff --git a/hosts/midas/boot/default.nix b/hosts/midas/boot/default.nix index 090b52d5..f708dafb 100644 --- a/hosts/midas/boot/default.nix +++ b/hosts/midas/boot/default.nix @@ -6,5 +6,6 @@ enable = true; mdadmConf = "MAILADDR contact@nixfox.ca"; }; + lanzaboote.enable = true; }; } diff --git a/hosts/pear/boot/default.nix b/hosts/pear/boot/default.nix index 50d146f5..20cd04b8 100644 --- a/hosts/pear/boot/default.nix +++ b/hosts/pear/boot/default.nix @@ -1,4 +1,7 @@ { pkgs, ... }: { - boot.kernelPackages = pkgs.linuxPackages_latest; + boot = { + kernelPackages = pkgs.linuxPackages_latest; + plymouth.enable = true; + }; } diff --git a/hosts/pear/default.nix b/hosts/pear/default.nix index 94ca6757..b9ed85d6 100644 --- a/hosts/pear/default.nix +++ b/hosts/pear/default.nix @@ -12,13 +12,12 @@ networking = { hostName = "pear"; + wireless.iwd.enable = true; wg-quick.interfaces.wgc.address = [ "10.100.0.18/24" ]; }; system = { desktop.enable = true; - fancyboot.enable = true; - wireless.enable = true; stateVersion = "24.11"; }; } diff --git a/hosts/prophet/default.nix b/hosts/prophet/default.nix index 6ee52368..06c89681 100644 --- a/hosts/prophet/default.nix +++ b/hosts/prophet/default.nix @@ -1,4 +1,4 @@ -{ lib, ... }: +{ ... }: { imports = [ ./boot diff --git a/hosts/redmond/boot/default.nix b/hosts/redmond/boot/default.nix index 8be768d8..8ae826e6 100644 --- a/hosts/redmond/boot/default.nix +++ b/hosts/redmond/boot/default.nix @@ -6,5 +6,7 @@ "radeon.cik_support=0" "amdgpu.cik_support=1" ]; + lanzaboote.enable = true; + plymouth.enable = true; }; } diff --git a/hosts/redmond/default.nix b/hosts/redmond/default.nix index dc6735ea..73387a0c 100644 --- a/hosts/redmond/default.nix +++ b/hosts/redmond/default.nix @@ -1,4 +1,4 @@ -{ config, lib, ... }: +{ lib, ... }: { imports = [ ./boot @@ -11,14 +11,12 @@ networking = { hostName = "redmond"; + wireless.iwd.enable = true; wg-quick.interfaces.wgc.address = [ "10.100.0.23/24" ]; }; system = { desktop.enable = true; - lanzaboote.enable = true; - fancyboot.enable = true; - wireless.enable = true; stateVersion = "24.05"; }; diff --git a/hosts/tower/boot/default.nix b/hosts/tower/boot/default.nix index 5d873313..548cded6 100644 --- a/hosts/tower/boot/default.nix +++ b/hosts/tower/boot/default.nix @@ -19,12 +19,14 @@ in { kernelPackages = pkgsUnstable.linuxPackages_xanmod_stable; kernelParams = commonKernelParams ++ [ "vfio-pci.ids=10de:1f82,10de:10fa" ]; - # Needed for GPU passthrough + # Load into GPU before NVIDIA driver initrd.kernelModules = [ "vfio" "vfio_pci" "vfio_iommu_type1" ]; + + lanzaboote.enable = true; }; # Use second GPU on boot @@ -35,8 +37,7 @@ in { # Use Nouveau specialisation.nouveau.configuration.config = { - system.video.nvidia.enable = lib.mkForce false; - system.video.nouveau.enable = lib.mkForce true; + system.nvidia.enable = lib.mkForce false; environment.sessionVariables.NIXOS_OZONE_WL = lib.mkForce ""; }; } diff --git a/hosts/tower/default.nix b/hosts/tower/default.nix index f15d5962..ebb97fd7 100644 --- a/hosts/tower/default.nix +++ b/hosts/tower/default.nix @@ -24,8 +24,7 @@ system = { desktop.enable = true; - lanzaboote.enable = true; - video.nvidia.enable = true; + nvidia.enable = true; stateVersion = "24.05"; }; diff --git a/modules/system/devices/boot/default.nix b/modules/system/devices/boot/default.nix index 42ea1f1b..6a1d3e44 100644 --- a/modules/system/devices/boot/default.nix +++ b/modules/system/devices/boot/default.nix @@ -9,6 +9,7 @@ ]; boot = { + kernelParams = [ "nouveau.config=NvGspRm=1" ]; blacklistedKernelModules = [ "pcspkr" ]; kernel.sysctl = { "vm.max_map_count" = 2147483642; diff --git a/modules/system/devices/boot/lanzaboote/default.nix b/modules/system/devices/boot/lanzaboote/default.nix index 81d5ea77..3f117109 100644 --- a/modules/system/devices/boot/lanzaboote/default.nix +++ b/modules/system/devices/boot/lanzaboote/default.nix @@ -2,16 +2,10 @@ { imports = [ lanzaboote.nixosModules.lanzaboote ]; - options.system.lanzaboote.enable = lib.mkEnableOption "Enable lanzaboote"; - - config = lib.mkIf config.system.lanzaboote.enable { - boot = { - loader.systemd-boot.enable = lib.mkForce false; - lanzaboote = { - enable = true; - pkiBundle = "/etc/secureboot"; - }; - }; - environment.systemPackages = with pkgs; [ sbctl ]; + boot = lib.mkIf config.boot.lanzaboote.enable { + loader.systemd-boot.enable = lib.mkForce false; + lanzaboote.pkiBundle = "/etc/secureboot"; }; + + environment.systemPackages = with pkgs; [ sbctl ]; } diff --git a/modules/system/devices/boot/plymouth/default.nix b/modules/system/devices/boot/plymouth/default.nix index 6c674a24..96773c96 100644 --- a/modules/system/devices/boot/plymouth/default.nix +++ b/modules/system/devices/boot/plymouth/default.nix @@ -1,9 +1,6 @@ { config, lib, ... }: { - options.system.fancyboot.enable = lib.mkEnableOption "Enable Plymouth"; - - config.boot = lib.mkIf config.system.fancyboot.enable { - plymouth.enable = true; + config.boot = lib.mkIf config.boot.plymouth.enable { loader.timeout = lib.mkForce 0; consoleLogLevel = lib.mkForce 0; initrd.verbose = false; diff --git a/modules/system/devices/boot/systemd/default.nix b/modules/system/devices/boot/systemd/default.nix index a2c9a5db..8bada39c 100644 --- a/modules/system/devices/boot/systemd/default.nix +++ b/modules/system/devices/boot/systemd/default.nix @@ -3,5 +3,6 @@ boot.loader.systemd-boot = { enable = true; editor = false; + graceful = true; }; } diff --git a/modules/system/devices/networking/default.nix b/modules/system/devices/networking/default.nix index 5aafa718..21b2bf91 100644 --- a/modules/system/devices/networking/default.nix +++ b/modules/system/devices/networking/default.nix @@ -1,7 +1,5 @@ { config, ... }: { - imports = [ ./wireless ]; - networking = { wireless.enable = false; dhcpcd.enable = true; diff --git a/modules/system/devices/networking/wireless/default.nix b/modules/system/devices/networking/wireless/default.nix deleted file mode 100644 index cac36dc5..00000000 --- a/modules/system/devices/networking/wireless/default.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ config, lib, pkgs, ... }: -{ - options.system.wireless.enable = lib.mkEnableOption "Enable wireless stack"; - - config = lib.mkIf config.system.wireless.enable { - networking.wireless.iwd.enable = true; - - environment = { - systemPackages = with pkgs; [ impala ]; - persistence."/persist".directories = [ "/var/lib/iwd/" ]; - }; - }; -} diff --git a/modules/system/devices/video/default.nix b/modules/system/devices/video/default.nix index c633eeac..de825e6f 100644 --- a/modules/system/devices/video/default.nix +++ b/modules/system/devices/video/default.nix @@ -1,9 +1,6 @@ { config, pkgs, ... }: { - imports = [ - ./nvidia - ./nouveau - ]; + imports = [ ./nvidia ]; hardware.graphics = { enable = config.system.desktop.enable; diff --git a/modules/system/devices/video/nouveau/default.nix b/modules/system/devices/video/nouveau/default.nix deleted file mode 100644 index c0831258..00000000 --- a/modules/system/devices/video/nouveau/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ config, lib, ... }: -{ - options.system.video.nouveau.enable = lib.mkEnableOption "Enable the Nouveau graphics stack"; - - config = lib.mkIf config.system.video.nouveau.enable { - services.xserver.videoDrivers = [ "nouveau" ]; - boot.kernelParams = [ "nouveau.config=NvGspRm=1" ]; - }; -} diff --git a/modules/system/devices/video/nvidia/default.nix b/modules/system/devices/video/nvidia/default.nix index 43083ed8..a1e99b85 100644 --- a/modules/system/devices/video/nvidia/default.nix +++ b/modules/system/devices/video/nvidia/default.nix @@ -1,19 +1,17 @@ { config, lib, pkgs, ... }: { - options.system.video.nvidia.enable = lib.mkEnableOption "Enable the Nvidia graphics stack"; + options.system.nvidia.enable = lib.mkEnableOption "Enable the Nvidia graphics stack"; - config = lib.mkIf config.system.video.nvidia.enable { - hardware = { - nvidia = lib.mkIf config.system.video.nvidia.enable { - modesetting.enable = true; - nvidiaSettings = false; - package = config.boot.kernelPackages.nvidiaPackages.beta; - open = false; - }; - graphics.extraPackages = with pkgs; [ nvidia-vaapi-driver ]; + config = lib.mkIf config.system.nvidia.enable { + hardware.nvidia = { + package = config.boot.kernelPackages.nvidiaPackages.beta; + modesetting.enable = true; + nvidiaSettings = false; + open = false; }; - + services.xserver.videoDrivers = [ "nvidia" ]; + boot.kernelParams = [ "nvidia_drm.fbdev=1" ]; nixpkgs.allowUnfreePackages = [ "nvidia-x11" ]; diff --git a/modules/system/services/general/default.nix b/modules/system/services/general/default.nix index 6e4b51a1..76f24290 100644 --- a/modules/system/services/general/default.nix +++ b/modules/system/services/general/default.nix @@ -5,6 +5,7 @@ ./earlyoom ./gnome-keyring ./gvfs + ./iwd ./keyd ./libvirtd ./portals diff --git a/modules/system/services/general/iwd/default.nix b/modules/system/services/general/iwd/default.nix new file mode 100644 index 00000000..b8e429f4 --- /dev/null +++ b/modules/system/services/general/iwd/default.nix @@ -0,0 +1,7 @@ +{ config, lib, pkgs, ... }: +{ + environment = lib.mkIf config.networking.wireless.iwd.enable { + systemPackages = with pkgs; [ impala ]; + persistence."/persist".directories = [ "/var/lib/iwd/" ]; + }; +}