revert(mibook): remove boot-time terminal/desktop choice feature
Back out the entire "choose terminal-only vs KDE at boot" work. The first attempt (default multi-user.target + on-demand desktop) locked mibook out — it is WiFi-only with credentials in KWallet, so a headless boot has no network and no SSH. The follow-up specialisation redesign is no longer wanted either. mibook returns to plain always-KDE boot (the pre-feature baseline): - machines/mibook/configuration.nix: drop specialisation.terminal and the NetworkManager-wait-online override. - machines/mibook/environments.nix: drop kde-desktop.startOnBoot. - modules/environments/kde-desktop/default.nix: drop the startOnBoot option. - remove the boot-desktop-choice design spec. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01S1wvPy5kbGp8pUQX61WBCY
This commit is contained in:
@@ -1,61 +0,0 @@
|
||||
# mibook: choose terminal-only vs desktop at boot
|
||||
|
||||
## Goal
|
||||
|
||||
Let mibook boot to a text console by default, with KDE fully installed and
|
||||
launchable on demand. The user decides after boot whether they need the
|
||||
graphical desktop, without rebuilding the system.
|
||||
|
||||
## Behavior
|
||||
|
||||
- mibook boots to a text console (`multi-user.target`). SDDM and Plasma do
|
||||
**not** start automatically.
|
||||
- KDE (SDDM + Plasma 6) remains fully installed.
|
||||
- Running `desktop` in the terminal starts the SDDM display manager, which
|
||||
presents the graphical login screen; logging in there enters a Plasma 6
|
||||
session.
|
||||
- No reverse command. To return to a text console, stop the display manager
|
||||
(`sudo systemctl stop display-manager`) or reboot.
|
||||
- Other machines that enable the `kde-desktop` profile are unaffected; their
|
||||
desktop still starts on boot.
|
||||
|
||||
## Implementation
|
||||
|
||||
### `modules/environments/kde-desktop/default.nix`
|
||||
|
||||
Add an opt-out option to the existing profile:
|
||||
|
||||
- New option `my.profiles.kde-desktop.startOnBoot`, a boolean defaulting to
|
||||
`true`. The default preserves the current behavior for every consumer.
|
||||
- The existing `config` block (SDDM, Plasma 6, user packages) stays enabled
|
||||
whenever the profile is enabled, regardless of `startOnBoot`.
|
||||
- When `startOnBoot = false`, additionally apply:
|
||||
- `systemd.services.display-manager.wantedBy = lib.mkForce [ ];` so SDDM is
|
||||
defined but not pulled in by any boot target.
|
||||
- `systemd.defaultUnit = "multi-user.target";` so the boot target is the
|
||||
text console.
|
||||
- A `desktop` command provided via
|
||||
`pkgs.writeShellScriptBin "desktop" "exec sudo systemctl start display-manager.service"`,
|
||||
added to `environment.systemPackages`.
|
||||
|
||||
### `machines/mibook/environments.nix`
|
||||
|
||||
Set `kde-desktop.startOnBoot = false;` alongside the existing
|
||||
`kde-desktop.enable = true;`.
|
||||
|
||||
## Testing / verification
|
||||
|
||||
- `nix build '.#nixosConfigurations.mibook.config.system.build.toplevel'`
|
||||
builds without error.
|
||||
- After `nixos-rebuild switch` on mibook: system boots to a TTY, no SDDM;
|
||||
running `desktop` brings up the SDDM login and a working Plasma session.
|
||||
- Confirm jupiter (or any non-mibook consumer) is unchanged: its evaluated
|
||||
`systemd.defaultUnit` / display-manager wantedBy are not altered.
|
||||
|
||||
## Trade-offs
|
||||
|
||||
- `desktop` relies on `sudo`; the user has sudo access, so no extra
|
||||
configuration is required.
|
||||
- Chose "boot to terminal, launch on demand" over a GRUB boot-menu entry
|
||||
because it is more robust across NixOS generations and needs no fragile
|
||||
static kernel entries.
|
||||
Reference in New Issue
Block a user