Smooth transition with Plymouth + SDDM/KDE

Does anyone know if anyone has gotten smooth transition in Plymouth working? Archwiki seems to have a section on it (see Plymouth - ArchWiki) however I can’t see to see any relevant documentation for this in NixOS?

3 Likes

This is what worked for me:

systemd.services."display-manager" = {
  conflicts = [ "plymouth-quit.service" ];
  preStart = "${pkgs.plymouth}/bin/plymouth deactivate";
  script = "/run/current-system/sw/bin/sddm";
  postStart = "/bin/sh -c 'sleep 5 && ${pkgs.plymouth}/bin/plymouth quit --retain-splash'";
  enable = true;
};

I took the idea from here.
The original one disables sddm.service but you’re probably enabling SDDM via services.displayManager.sddm.enable = true, so I just modified the existing display-manager.service.

You probably want to save all your work before running nixos-rebuild switch and don’t delete past profiles just in case - I saw plymouth screen immediately after updating the first time and was forced to shutdown.

Hope this helps!

1 Like

Update:

If you encounter error messages like this:

warning: the following units failed: display-manager.service
× display-manager.service - Display Manager

**** nixos systemd[1]: display-manager.service: Scheduled restart job, restart counter is at 3.
**** nixos systemd[1]: display-manager.service: Start request repeated too quickly.
**** nixos systemd[1]: display-manager.service: Failed with result 'exit-code'.
**** nixos systemd[1]: Failed to start Display Manager.

Then you probably want to increase startLimitBurst (or startLimitIntervalSec as well probably) like this:

systemd.services."display-manager" = {
  # ...
  startLimitBurst = lib.mkForce 10;
};