From 94f0210e60f08640cf8a6392545b4678ffe44218 Mon Sep 17 00:00:00 2001 From: WORLDofPEACE Date: Sat, 13 Feb 2021 18:45:27 -0500 Subject: [PATCH 1/2] nixos/tools: make desktopConfiguation types.listOf types.lines This fixes #108124. --- nixos/modules/installer/tools/tools.nix | 4 ++-- nixos/modules/services/x11/desktop-managers/gnome3.nix | 4 ++-- nixos/modules/services/x11/desktop-managers/plasma5.nix | 4 ++-- nixos/tests/nixos-generate-config.nix | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/nixos/modules/installer/tools/tools.nix b/nixos/modules/installer/tools/tools.nix index ada5f5748561..68c5a686761e 100644 --- a/nixos/modules/installer/tools/tools.nix +++ b/nixos/modules/installer/tools/tools.nix @@ -87,8 +87,8 @@ in desktopConfiguration = mkOption { internal = true; - type = types.str; - default = ""; + type = types.listOf types.lines; + default = []; description = '' Text to preseed the desktop configuration that nixos-generate-config saves to /etc/nixos/configuration.nix. diff --git a/nixos/modules/services/x11/desktop-managers/gnome3.nix b/nixos/modules/services/x11/desktop-managers/gnome3.nix index 671301246a8c..dea457299476 100644 --- a/nixos/modules/services/x11/desktop-managers/gnome3.nix +++ b/nixos/modules/services/x11/desktop-managers/gnome3.nix @@ -197,12 +197,12 @@ in config = mkMerge [ (mkIf (cfg.enable || flashbackEnabled) { # Seed our configuration into nixos-generate-config - system.nixos-generate-config.desktopConfiguration = '' + system.nixos-generate-config.desktopConfiguration = ['' # Enable the GNOME 3 Desktop Environment. services.xserver.enable = true; services.xserver.displayManager.gdm.enable = true; services.xserver.desktopManager.gnome3.enable = true; - ''; + '']; services.gnome3.core-os-services.enable = true; services.gnome3.core-shell.enable = true; diff --git a/nixos/modules/services/x11/desktop-managers/plasma5.nix b/nixos/modules/services/x11/desktop-managers/plasma5.nix index d6cf86d3a2e6..5ca2e69faf09 100644 --- a/nixos/modules/services/x11/desktop-managers/plasma5.nix +++ b/nixos/modules/services/x11/desktop-managers/plasma5.nix @@ -184,12 +184,12 @@ in config = mkMerge [ (mkIf cfg.enable { # Seed our configuration into nixos-generate-config - system.nixos-generate-config.desktopConfiguration = '' + system.nixos-generate-config.desktopConfiguration = ['' # Enable the Plasma 5 Desktop Environment. services.xserver.enable = true; services.xserver.displayManager.sddm.enable = true; services.xserver.desktopManager.plasma5.enable = true; - ''; + '']; services.xserver.desktopManager.session = singleton { name = "plasma5"; diff --git a/nixos/tests/nixos-generate-config.nix b/nixos/tests/nixos-generate-config.nix index 5daa55a8abbe..316950dcb010 100644 --- a/nixos/tests/nixos-generate-config.nix +++ b/nixos/tests/nixos-generate-config.nix @@ -11,12 +11,12 @@ import ./make-test-python.nix ({ lib, ... } : { } ''; - system.nixos-generate-config.desktopConfiguration = '' + system.nixos-generate-config.desktopConfiguration = ['' # DESKTOP # services.xserver.enable = true; # services.xserver.displayManager.gdm.enable = true; # services.xserver.desktopManager.gnome3.enable = true; - ''; + '']; }; testScript = '' start_all() From 452f7e14d4f4bf41400350917685e2ad98590b28 Mon Sep 17 00:00:00 2001 From: WORLDofPEACE Date: Sat, 13 Feb 2021 17:42:34 -0500 Subject: [PATCH 2/2] nixos/tools: generate an xserver config The desktop configuration won't enable xserver. If there's multiple desktops enabled they will now evaluate properly. --- .../installer/tools/nixos-generate-config.pl | 18 ++++++++++++++++++ nixos/modules/installer/tools/tools.nix | 3 +++ .../services/x11/desktop-managers/gnome3.nix | 1 - .../services/x11/desktop-managers/plasma5.nix | 1 - nixos/tests/nixos-generate-config.nix | 5 ++--- 5 files changed, 23 insertions(+), 5 deletions(-) diff --git a/nixos/modules/installer/tools/nixos-generate-config.pl b/nixos/modules/installer/tools/nixos-generate-config.pl index 6e3ddb875e1b..7bc55e67134b 100644 --- a/nixos/modules/installer/tools/nixos-generate-config.pl +++ b/nixos/modules/installer/tools/nixos-generate-config.pl @@ -585,6 +585,22 @@ EOF return $config; } +sub generateXserverConfig { + my $xserverEnabled = "@xserverEnabled@"; + + my $config = ""; + if ($xserverEnabled eq "1") { + $config = <