fix(mibook): boot-menu terminal choice via specialisation
The previous startOnBoot approach booted mibook headless by default and locked the machine out: it is WiFi-only with credentials in KWallet, so with no desktop session NetworkManager never joins the network (no SSH), and boot stalled on NetworkManager-wait-online with the tty1 prompt buried under service logs. Replace it with a NixOS specialisation that adds a separate 'terminal' GRUB entry: - default entry boots KDE as before (identical to baseline); - 'terminal' entry boots multi-user.target with autologin for finn and a 'desktop' command to start SDDM on demand. Also disable NetworkManager-wait-online so boot never stalls on the network. Revert the kde-desktop startOnBoot option. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CfozKLQdUh5TzqyjSigLUx
This commit is contained in:
@@ -11,37 +11,17 @@ in
|
||||
{
|
||||
options.my.profiles.kde-desktop = with lib; {
|
||||
enable = mkEnableOption "KDE Desktop Environment";
|
||||
startOnBoot = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Whether the display manager (SDDM) starts automatically at boot.
|
||||
When false, the system boots to a text console and KDE can be
|
||||
launched on demand with the `desktop` command.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable (lib.mkMerge [
|
||||
{
|
||||
services = {
|
||||
displayManager.sddm.enable = true;
|
||||
displayManager.sddm.wayland.enable = true;
|
||||
desktopManager.plasma6.enable = true;
|
||||
};
|
||||
users.users.finn.packages = with pkgs; [
|
||||
# Programms can be added here...
|
||||
numix-icon-theme
|
||||
];
|
||||
}
|
||||
(lib.mkIf (!cfg.startOnBoot) {
|
||||
# Boot to a text console; SDDM stays installed but is not pulled in
|
||||
# by any boot target. Launch KDE on demand with `desktop`.
|
||||
systemd.services.display-manager.wantedBy = lib.mkForce [ ];
|
||||
systemd.defaultUnit = lib.mkForce "multi-user.target";
|
||||
environment.systemPackages = [
|
||||
(pkgs.writeShellScriptBin "desktop" "exec sudo systemctl start display-manager.service")
|
||||
];
|
||||
})
|
||||
]);
|
||||
}
|
||||
config = lib.mkIf cfg.enable {
|
||||
services = {
|
||||
displayManager.sddm.enable = true;
|
||||
displayManager.sddm.wayland.enable = true;
|
||||
desktopManager.plasma6.enable = true;
|
||||
};
|
||||
users.users.finn.packages = with pkgs; [
|
||||
# Programms can be added here...
|
||||
numix-icon-theme
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user