It would be great to support smooth transition from Plymouth as others display-managers do.
I'm currently using greetd to autostart sway with this config :
[terminal]
vt = 1
[default_session]
command = "tuigreet --cmd sway --time --remember --asterisks"
user = "greeter"
[initial_session]
command = "sway"
user = "myuser"
There is a short black screen shown between Plymouth and sway in this case. Ideally it should transition smoothly between the two (without black screen).
Also when launching a graphical greeter instead of autologin, the transition should also be smooth for people using a greeter for the first login.
Just bumping this as (as I seem to do every few months) I've started looking into it again. This time I moved from my odd sway-as-a-service config to using greetd to hopefully move to a more standard way of doing things.
As far as I can tell, the black screen in this case is simply the time it takes for greetd to run and sway to start presenting to the screen (as plymouth quits as soon as greetd starts).
Not sure if it helps, but if you can work out a way to get greetd/sway running in the background, then running
plymouth quit
afterwards, this should work pretty nicely. It probably won't be smooth (I believe GDM has worked out a fade) but it's better than nothing.
Plymouth is a tad complicated for my tastes, so I haven't dug much into the way it works on the inside. However, smooth hand-off should be possible if plymouth had used
drmModeCloseFB
to explicitly clean up on exit in a way that retains the KMS state and framebuffer before shutdown...When using the systemd-logind backend of libseat 0.9, sessions can be started in the background. Disabling the VT switch in greetd should then allow you to manually perform the chvt followed by plymouth quit.
[terminal] switch = false vt = 7
See https://gitlab.freedesktop.org/plymouth/plymouth/-/merge_requests/173 for the (WIP) plymouth improvement required to not need VT shenanigans.