diff --git a/nixos/modules/config/console.nix b/nixos/modules/config/console.nix index 5b07901f9901..69101bca3f21 100644 --- a/nixos/modules/config/console.nix +++ b/nixos/modules/config/console.nix @@ -149,8 +149,11 @@ in ''); boot.initrd.systemd.contents = { - "/etc/kbd".source = "${consoleEnv config.boot.initrd.systemd.package.kbd}/share"; "/etc/vconsole.conf".source = vconsoleConf; + # Add everything if we want full console setup... + "/etc/kbd" = lib.mkIf cfg.earlySetup { source = "${consoleEnv config.boot.initrd.systemd.package.kbd}/share"; }; + # ...but only the keymaps if we don't + "/etc/kbd/keymaps" = lib.mkIf (!cfg.earlySetup) { source = "${consoleEnv config.boot.initrd.systemd.package.kbd}/share/keymaps"; }; }; boot.initrd.systemd.storePaths = [ "${config.boot.initrd.systemd.package}/lib/systemd/systemd-vconsole-setup" @@ -180,7 +183,7 @@ in ]; }) - (mkIf cfg.earlySetup { + (mkIf (cfg.earlySetup && !config.boot.inird.systemd.enable) { boot.initrd.extraUtilsCommands = '' mkdir -p $out/share/consolefonts ${if substring 0 1 cfg.font == "/" then '' @@ -194,10 +197,6 @@ in cp -L $font $out/share/consolefonts/font.psf fi ''; - assertions = [{ - assertion = !config.boot.initrd.systemd.enable; - message = "console.earlySetup is implied by systemd stage 1"; - }]; }) ])) ];