desktop: smooth plymouth handoff + start-hyprland, macbook early KMS

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
rope 2026-07-08 17:13:51 +01:00
parent 8efcc4d30c
commit 0ea1abd7aa
2 changed files with 16 additions and 2 deletions

View file

@ -6,7 +6,8 @@
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ ];
# i915 in initrd = early KMS, so plymouth can draw from the first second
boot.initrd.kernelModules = [ "i915" ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ];
boot.blacklistedKernelModules = [ "b43" "bcma" "ssb" ];

View file

@ -7,11 +7,24 @@
# immediately (see Lock.qml), so the lock *is* the login prompt.
services.greetd = {
enable = true;
# We handle the plymouth handoff ourselves below — don't wait for
# plymouth-quit-wait (that wait is what dropped boot to a console
# flash between splash and Hyprland).
greeterManagesPlymouth = true;
settings.default_session = {
command = lib.getExe config.programs.hyprland.package;
command = "${config.programs.hyprland.package}/bin/start-hyprland";
user = "fred";
};
};
# GDM-style splash→session handoff: nothing else quits plymouth at boot;
# greetd freezes the last splash frame (--retain-splash) right before it
# spawns Hyprland, which then flips straight to the lockscreen.
systemd.services.plymouth-quit.wantedBy = lib.mkForce [ ];
systemd.services.greetd = {
after = [ "plymouth-start.service" ];
serviceConfig.ExecStartPre = "-${pkgs.plymouth}/bin/plymouth quit --retain-splash";
};
boot.plymouth.enable = true;
boot.initrd.verbose = false;
boot.consoleLogLevel = 3;