diff --git a/nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-gnome.nix b/nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-gnome.nix index 81d59f55db7c..eda704381db0 100644 --- a/nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-gnome.nix +++ b/nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-gnome.nix @@ -1,11 +1,11 @@ # This module defines a NixOS installation CD that contains GNOME. -{ pkgs, ... }: +{ lib, pkgs, ... }: { imports = [ ./installation-cd-graphical-calamares.nix ]; - isoImage.edition = "gnome"; + isoImage.edition = lib.mkDefault "gnome"; services.xserver.desktopManager.gnome = { # Add Firefox and other tools useful for installation to the launcher diff --git a/nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-plasma5.nix b/nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-plasma5.nix index c322efb683d6..a8a30ca42b52 100644 --- a/nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-plasma5.nix +++ b/nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-plasma5.nix @@ -1,12 +1,12 @@ # This module defines a NixOS installation CD that contains X11 and # Plasma 5. -{ pkgs, ... }: +{ lib, pkgs, ... }: { imports = [ ./installation-cd-graphical-calamares.nix ]; - isoImage.edition = "plasma5"; + isoImage.edition = lib.mkDefault "plasma5"; services.xserver.desktopManager.plasma5 = { enable = true; diff --git a/nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-plasma6.nix b/nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-plasma6.nix index e420300e4166..f71a624156cd 100644 --- a/nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-plasma6.nix +++ b/nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-plasma6.nix @@ -1,11 +1,11 @@ # This module defines a NixOS installation CD that contains Plasma 6. -{ pkgs, ... }: +{ lib, pkgs, ... }: { imports = [ ./installation-cd-graphical-calamares.nix ]; - isoImage.edition = "plasma6"; + isoImage.edition = lib.mkDefault "plasma6"; services.desktopManager.plasma6.enable = true; diff --git a/nixos/modules/installer/cd-dvd/installation-cd-graphical-combined.nix b/nixos/modules/installer/cd-dvd/installation-cd-graphical-combined.nix new file mode 100644 index 000000000000..832b775ad8bd --- /dev/null +++ b/nixos/modules/installer/cd-dvd/installation-cd-graphical-combined.nix @@ -0,0 +1,52 @@ +# This configuration uses a specialisation for each desired boot +# configuration, and a common parent configuration for all of them +# that's hidden. This allows users to import this module alongside +# their own and get the full array of specialisations inheriting the +# users' settings. + +{ lib, ... }: +{ + imports = [ ./installation-cd-base.nix ]; + isoImage.edition = "graphical"; + isoImage.showConfiguration = lib.mkDefault false; + + specialisation = { + gnome.configuration = + { config, ... }: + { + imports = [ ./installation-cd-graphical-calamares-gnome.nix ]; + isoImage.showConfiguration = true; + isoImage.configurationName = "GNOME (Linux LTS)"; + }; + + gnome_latest_kernel.configuration = + { config, ... }: + { + imports = [ + ./installation-cd-graphical-calamares-gnome.nix + ./latest-kernel.nix + ]; + isoImage.showConfiguration = true; + isoImage.configurationName = "GNOME (Linux ${config.boot.kernelPackages.kernel.version})"; + }; + + plasma.configuration = + { config, ... }: + { + imports = [ ./installation-cd-graphical-calamares-plasma6.nix ]; + isoImage.showConfiguration = true; + isoImage.configurationName = "Plasma (Linux LTS)"; + }; + + plasma_latest_kernel.configuration = + { config, ... }: + { + imports = [ + ./installation-cd-graphical-calamares-plasma6.nix + ./latest-kernel.nix + ]; + isoImage.showConfiguration = true; + isoImage.configurationName = "Plasma (Linux ${config.boot.kernelPackages.kernel.version})"; + }; + }; +} diff --git a/nixos/modules/installer/cd-dvd/installation-cd-graphical-gnome.nix b/nixos/modules/installer/cd-dvd/installation-cd-graphical-gnome.nix index b3c605e3f94d..7b355b191455 100644 --- a/nixos/modules/installer/cd-dvd/installation-cd-graphical-gnome.nix +++ b/nixos/modules/installer/cd-dvd/installation-cd-graphical-gnome.nix @@ -1,11 +1,11 @@ # This module defines a NixOS installation CD that contains GNOME. -{ ... }: +{ lib, ... }: { imports = [ ./installation-cd-graphical-base.nix ]; - isoImage.edition = "gnome"; + isoImage.edition = lib.mkDefault "gnome"; services.xserver.desktopManager.gnome = { # Add Firefox and other tools useful for installation to the launcher diff --git a/nixos/modules/installer/cd-dvd/installation-cd-graphical-plasma5.nix b/nixos/modules/installer/cd-dvd/installation-cd-graphical-plasma5.nix index 4f7b7d4b2bf9..f41d34c65e79 100644 --- a/nixos/modules/installer/cd-dvd/installation-cd-graphical-plasma5.nix +++ b/nixos/modules/installer/cd-dvd/installation-cd-graphical-plasma5.nix @@ -1,12 +1,12 @@ # This module defines a NixOS installation CD that contains X11 and # Plasma 5. -{ pkgs, ... }: +{ lib, pkgs, ... }: { imports = [ ./installation-cd-graphical-base.nix ]; - isoImage.edition = "plasma5"; + isoImage.edition = lib.mkDefault "plasma5"; services.xserver.desktopManager.plasma5 = { enable = true; diff --git a/nixos/release.nix b/nixos/release.nix index dabd9cf47ed2..2f916e0ee995 100644 --- a/nixos/release.nix +++ b/nixos/release.nix @@ -169,21 +169,9 @@ in rec { inherit system; }); - iso_plasma5 = forMatchingSystems supportedSystems (system: makeIso { - module = ./modules/installer/cd-dvd/installation-cd-graphical-calamares-plasma5.nix; - type = "plasma5"; - inherit system; - }); - - iso_plasma6 = forMatchingSystems supportedSystems (system: makeIso { - module = ./modules/installer/cd-dvd/installation-cd-graphical-calamares-plasma6.nix; - type = "plasma6"; - inherit system; - }); - - iso_gnome = forMatchingSystems supportedSystems (system: makeIso { - module = ./modules/installer/cd-dvd/installation-cd-graphical-calamares-gnome.nix; - type = "gnome"; + iso_graphical = forAllSystems (system: makeIso { + module = ./modules/installer/cd-dvd/installation-cd-graphical-combined.nix; + type = "graphical"; inherit system; });