samcday / phrog

🐸 Mobile device greeter
GNU General Public License v3.0
5 stars 0 forks source link

Seamless transition from plymouth #52

Open agx opened 1 week ago

agx commented 1 week ago

I'd be nice if the plymouth -> greetd/phrog -> phosh transition could happen without flickering.

See https://gitlab.gnome.org/guidog/meta-phosh/-/issues/14

There's #20 . This issue could track the initial plymouth -> greetd bits.

samcday commented 2 days ago
There was some discussion about Plymouth flicker free in Libera #greetd earlier today:

``` Tue, Sep 17, 2024, 23:49:57 - ponky: kennylevinsen: 'vt = none' works with CONFIG_VT=n, thanks for pointing that out Tue, Sep 17, 2024, 23:50:18 - ponky: 'PAM pam_putenv: delete non-existent entry; XDG_VTNR' in journal but seems harmless Tue, Sep 17, 2024, 23:50:36 - ponky: guess it comes from logind Tue, Sep 17, 2024, 23:51:31 - kennylevinsen: awesome :) Tue, Sep 17, 2024, 23:51:57 - kennylevinsen: ah right we might be trying to unconditionally remove XDG_VTNR from the pam env even if we didn't add it Tue, Sep 17, 2024, 23:54:15 - ponky: flicker-free transition from plymouth to greetd seems to work too, great Wed, Sep 18, 2024, 02:46:24 - thi left the room: Quit: Ping timeout: 260 seconds Wed, Sep 18, 2024, 02:47:31 - heisenbridge invited thi Wed, Sep 18, 2024, 02:47:32 - thi joined the room Wed, Sep 18, 2024, 04:33:39 - NickH left the room: Quit: Ping timeout: 276 seconds Wed, Sep 18, 2024, 04:37:14 - heisenbridge invited NickH Wed, Sep 18, 2024, 04:37:15 - NickH joined the room Wed, Sep 18, 2024, 07:27:55 - heisenbridge invited chomwitt Wed, Sep 18, 2024, 07:27:55 - chomwitt joined the room Wed, Sep 18, 2024, 07:32:29 - chomwitt left the room: Quit: Ping timeout: 245 seconds Wed, Sep 18, 2024, 08:02:12 - heisenbridge invited fbonazzi Wed, Sep 18, 2024, 08:02:13 - fbonazzi joined the room Wed, Sep 18, 2024, 08:44:26 - heisenbridge invited SanskritFritz Wed, Sep 18, 2024, 08:44:27 - SanskritFritz joined the room Wed, Sep 18, 2024, 09:45:07 - fbonazzi left the room: Quit: Quit: https://quassel-irc.org - Chat comfortably. Anywhere. Wed, Sep 18, 2024, 14:48:34 - thi left the room: Quit: Read error: Connection reset by peer Wed, Sep 18, 2024, 14:49:04 - heisenbridge invited thi Wed, Sep 18, 2024, 14:49:04 - thi joined the room Wed, Sep 18, 2024, 15:10:04 - heisenbridge invited chomwitt Wed, Sep 18, 2024, 15:10:05 - chomwitt joined the room Wed, Sep 18, 2024, 15:20:49 - chomwitt left the room: Quit: Ping timeout: 272 seconds Wed, Sep 18, 2024, 16:37:29 - thi left the room: Quit: Ping timeout: 245 seconds Wed, Sep 18, 2024, 16:54:27 - heisenbridge invited thi Wed, Sep 18, 2024, 16:54:28 - thi joined the room Wed, Sep 18, 2024, 17:41:26 - WhyNotHugo left the room: Quit: *.net *.split Wed, Sep 18, 2024, 17:41:26 - yuandi42_ left the room: Quit: *.net *.split Wed, Sep 18, 2024, 17:43:06 - heisenbridge invited WhyNotHugo Wed, Sep 18, 2024, 17:43:06 - WhyNotHugo joined the room Wed, Sep 18, 2024, 17:43:07 - heisenbridge invited slowjo Wed, Sep 18, 2024, 17:43:07 - slowjo joined the room Wed, Sep 18, 2024, 17:43:08 - heisenbridge invited yuandi42_ Wed, Sep 18, 2024, 17:43:08 - yuandi42_ joined the room Wed, Sep 18, 2024, 17:43:08 - heisenbridge invited pcarrier Wed, Sep 18, 2024, 17:43:09 - pcarrier joined the room Wed, Sep 18, 2024, 17:43:10 - heisenbridge invited Nuc1eoN Wed, Sep 18, 2024, 17:43:10 - Nuc1eoN joined the room Wed, Sep 18, 2024, 18:18:14 - yuandi42_ left the room: Quit: Quit: IRCNow and Forever! Wed, Sep 18, 2024, 18:36:18 - thi left the room: Quit: Remote host closed the connection Wed, Sep 18, 2024, 18:59:09 - heisenbridge invited yuandi42_ Wed, Sep 18, 2024, 18:59:09 - yuandi42_ joined the room Wed, Sep 18, 2024, 23:15:15 - heisenbridge invited thi Wed, Sep 18, 2024, 23:15:16 - thi joined the room Wed, Sep 18, 2024, 23:41:11 - SanskritFritz left the room: Quit: Quit: https://quassel-irc.org - Chat comfortably. Anywhere. Thu, Sep 19, 2024, 00:47:14 - thi left the room: Quit: Ping timeout: 248 seconds Thu, Sep 19, 2024, 00:48:08 - heisenbridge invited thi Thu, Sep 19, 2024, 00:48:09 - thi joined the room Thu, Sep 19, 2024, 01:30:03 - thi left the room: Quit: Remote host closed the connection Thu, Sep 19, 2024, 07:35:16 - heisenbridge invited chomwitt Thu, Sep 19, 2024, 07:35:17 - chomwitt joined the room Thu, Sep 19, 2024, 08:21:40 - ormaaj left the room: Quit: Read error: Connection reset by peer Thu, Sep 19, 2024, 08:29:47 - heisenbridge invited fbonazzi Thu, Sep 19, 2024, 08:29:47 - fbonazzi joined the room Thu, Sep 19, 2024, 08:44:15 - heisenbridge invited ormaaj Thu, Sep 19, 2024, 08:44:15 - ormaaj joined the room Thu, Sep 19, 2024, 10:13:52 - heisenbridge invited SanskritFritz Thu, Sep 19, 2024, 10:13:53 - SanskritFritz joined the room Thu, Sep 19, 2024, 11:42:29 - chomwitt left the room: Quit: Ping timeout: 245 seconds Thu, Sep 19, 2024, 14:21:32 - heisenbridge invited chomwitt Thu, Sep 19, 2024, 14:21:32 - chomwitt joined the room Thu, Sep 19, 2024, 15:50:49 - chomwitt left the room: Quit: Ping timeout: 245 seconds Thu, Sep 19, 2024, 18:28:27 - heisenbridge invited thi Thu, Sep 19, 2024, 18:28:28 - thi joined the room Thu, Sep 19, 2024, 18:31:59 - SanskritFritz left the room: Quit: Quit: https://quassel-irc.org - Chat comfortably. Anywhere. Thu, Sep 19, 2024, 18:40:12 - heisenbridge invited SanskritFritz Thu, Sep 19, 2024, 18:40:13 - SanskritFritz joined the room Thu, Sep 19, 2024, 18:46:08 - thi left the room: Quit: Ping timeout: 252 seconds Thu, Sep 19, 2024, 19:05:53 - heisenbridge invited thi Thu, Sep 19, 2024, 19:05:54 - thi joined the room Thu, Sep 19, 2024, 19:16:53 - fbonazzi left the room: Quit: Quit: https://quassel-irc.org - Chat comfortably. Anywhere. Thu, Sep 19, 2024, 20:15:38 - thi left the room: Quit: Read error: Connection reset by peer Thu, Sep 19, 2024, 20:16:38 - heisenbridge invited thi Thu, Sep 19, 2024, 20:16:38 - thi joined the room Thu, Sep 19, 2024, 22:08:27 - heisenbridge invited chomwitt Thu, Sep 19, 2024, 22:08:27 - chomwitt joined the room Thu, Sep 19, 2024, 22:19:56 - SanskritFritz left the room: Quit: Quit: https://quassel-irc.org - Chat comfortably. Anywhere. Thu, Sep 19, 2024, 23:32:49 - chomwitt left the room: Quit: Ping timeout: 265 seconds Fri, Sep 20, 2024, 00:18:15 - thi left the room: Quit: Ping timeout: 265 seconds Fri, Sep 20, 2024, 00:19:46 - heisenbridge invited thi Fri, Sep 20, 2024, 00:19:47 - thi joined the room Fri, Sep 20, 2024, 00:19:47 - thi left the room: Quit: Read error: Connection reset by peer Fri, Sep 20, 2024, 00:20:17 - heisenbridge invited thi Fri, Sep 20, 2024, 00:20:17 - thi joined the room Fri, Sep 20, 2024, 00:33:22 - thi left the room: Quit: Read error: Connection reset by peer Fri, Sep 20, 2024, 00:33:50 - heisenbridge invited thi Fri, Sep 20, 2024, 00:33:51 - thi joined the room Fri, Sep 20, 2024, 00:51:35 - thi left the room: Quit: Read error: Connection reset by peer Fri, Sep 20, 2024, 00:52:12 - heisenbridge invited thi Fri, Sep 20, 2024, 00:52:13 - thi joined the room Fri, Sep 20, 2024, 00:54:19 - thi left the room: Quit: Read error: Connection reset by peer Fri, Sep 20, 2024, 00:54:45 - heisenbridge invited thi Fri, Sep 20, 2024, 00:54:46 - thi joined the room Fri, Sep 20, 2024, 01:18:14 - thi left the room: Quit: Read error: Connection reset by peer Fri, Sep 20, 2024, 01:18:43 - heisenbridge invited thi Fri, Sep 20, 2024, 01:18:44 - thi joined the room Fri, Sep 20, 2024, 01:19:06 - thi left the room: Quit: Read error: Connection reset by peer Fri, Sep 20, 2024, 01:19:50 - heisenbridge invited thi Fri, Sep 20, 2024, 01:19:51 - thi joined the room Fri, Sep 20, 2024, 01:32:37 - thi left the room: Quit: Read error: Connection reset by peer Fri, Sep 20, 2024, 01:33:18 - heisenbridge invited thi Fri, Sep 20, 2024, 01:33:18 - thi joined the room Fri, Sep 20, 2024, 01:33:19 - thi left the room: Quit: Read error: Connection reset by peer Fri, Sep 20, 2024, 01:33:50 - heisenbridge invited thi Fri, Sep 20, 2024, 01:33:50 - thi joined the room Fri, Sep 20, 2024, 02:19:34 - thi left the room: Quit: Read error: Connection reset by peer Fri, Sep 20, 2024, 02:20:04 - heisenbridge invited thi Fri, Sep 20, 2024, 02:20:04 - thi joined the room Fri, Sep 20, 2024, 02:31:09 - NickH left the room: Quit: Ping timeout: 260 seconds Fri, Sep 20, 2024, 02:33:29 - heisenbridge invited NickH Fri, Sep 20, 2024, 02:33:29 - NickH joined the room Fri, Sep 20, 2024, 02:40:35 - NickH left the room: Quit: Ping timeout: 272 seconds Fri, Sep 20, 2024, 02:45:38 - thi left the room: Quit: Read error: Connection reset by peer Fri, Sep 20, 2024, 02:46:26 - heisenbridge invited thi Fri, Sep 20, 2024, 02:46:26 - thi joined the room Fri, Sep 20, 2024, 02:48:44 - thi left the room: Quit: Read error: Connection reset by peer Fri, Sep 20, 2024, 02:49:13 - heisenbridge invited thi Fri, Sep 20, 2024, 02:49:14 - thi joined the room Fri, Sep 20, 2024, 02:53:36 - heisenbridge invited NickH Fri, Sep 20, 2024, 02:53:37 - NickH joined the room Fri, Sep 20, 2024, 02:57:59 - NickH left the room: Quit: Ping timeout: 260 seconds Fri, Sep 20, 2024, 03:55:32 - thi left the room: Quit: Read error: Connection reset by peer Fri, Sep 20, 2024, 03:56:01 - heisenbridge invited thi Fri, Sep 20, 2024, 03:56:02 - thi joined the room Fri, Sep 20, 2024, 04:04:47 - thi left the room: Quit: Read error: Connection reset by peer Fri, Sep 20, 2024, 04:05:22 - heisenbridge invited thi Fri, Sep 20, 2024, 04:05:23 - thi joined the room Fri, Sep 20, 2024, 04:07:18 - thi left the room: Quit: Read error: Connection reset by peer Fri, Sep 20, 2024, 04:07:43 - heisenbridge invited thi Fri, Sep 20, 2024, 04:07:43 - thi joined the room Fri, Sep 20, 2024, 04:09:50 - thi left the room: Quit: Read error: Connection reset by peer Fri, Sep 20, 2024, 04:10:41 - heisenbridge invited thi Fri, Sep 20, 2024, 04:10:42 - thi joined the room Fri, Sep 20, 2024, 04:15:11 - thi left the room: Quit: Ping timeout: 252 seconds Fri, Sep 20, 2024, 04:16:18 - heisenbridge invited thi Fri, Sep 20, 2024, 04:16:18 - thi joined the room Fri, Sep 20, 2024, 04:48:13 - heisenbridge invited NickH Fri, Sep 20, 2024, 04:48:13 - NickH joined the room Fri, Sep 20, 2024, 07:16:12 - @irc_libera_parakovsky_:samcday.com left the room: Changing nick to parakovsky Fri, Sep 20, 2024, 07:16:12 - heisenbridge invited parakovsky Fri, Sep 20, 2024, 07:16:13 - parakovsky joined the room Fri, Sep 20, 2024, 08:03:30 - navi left the room: Quit: Ping timeout: 248 seconds Fri, Sep 20, 2024, 08:07:07 - heisenbridge invited chomwitt Fri, Sep 20, 2024, 08:07:07 - chomwitt joined the room Fri, Sep 20, 2024, 08:11:53 - heisenbridge invited navi Fri, Sep 20, 2024, 08:11:54 - navi joined the room Fri, Sep 20, 2024, 08:16:40 - heisenbridge invited fbonazzi Fri, Sep 20, 2024, 08:16:40 - fbonazzi joined the room Fri, Sep 20, 2024, 09:32:32 - laumann left the room: Quit: Remote host closed the connection Fri, Sep 20, 2024, 09:33:39 - heisenbridge invited laumann_ Fri, Sep 20, 2024, 09:33:40 - laumann_ joined the room Fri, Sep 20, 2024, 11:20:48 - fbonazzi left the room: Quit: Quit: https://quassel-irc.org - Chat comfortably. Anywhere. Fri, Sep 20, 2024, 12:38:01 - heisenbridge invited Duck Fri, Sep 20, 2024, 12:38:01 - Duck joined the room Fri, Sep 20, 2024, 15:29:52 - thi left the room: Quit: Remote host closed the connection Fri, Sep 20, 2024, 16:58:42 - heisenbridge invited SanskritFritz Fri, Sep 20, 2024, 16:58:43 - SanskritFritz joined the room Fri, Sep 20, 2024, 17:29:38 - SanskritFritz left the room: Quit: Quit: https://quassel-irc.org - Chat comfortably. Anywhere. Fri, Sep 20, 2024, 17:51:33 - merlijn left the room: Quit: Quit: ZNC 1.9.0 - https://znc.in Fri, Sep 20, 2024, 17:52:41 - heisenbridge invited merlijn Fri, Sep 20, 2024, 17:52:42 - merlijn joined the room Fri, Sep 20, 2024, 17:57:29 - merlijn left the room: Quit: Client Quit Fri, Sep 20, 2024, 17:59:22 - heisenbridge invited merlijn Fri, Sep 20, 2024, 17:59:22 - merlijn joined the room Fri, Sep 20, 2024, 19:04:26 - heisenbridge invited SanskritFritz Fri, Sep 20, 2024, 19:04:26 - SanskritFritz joined the room Fri, Sep 20, 2024, 20:09:50 - cyrinux left the room: Quit: Quit: bye Fri, Sep 20, 2024, 20:10:17 - heisenbridge invited cyrinux Fri, Sep 20, 2024, 20:10:17 - cyrinux joined the room Sat, Sep 21, 2024, 00:07:39 - SanskritFritz left the room: Quit: Quit: https://quassel-irc.org - Chat comfortably. Anywhere. Sat, Sep 21, 2024, 00:37:12 - chomwitt left the room: Quit: Ping timeout: 246 seconds Sat, Sep 21, 2024, 03:56:46 - abeltramo8954796 left the room: Quit: Quit: The Lounge - https://thelounge.chat Sat, Sep 21, 2024, 03:57:04 - heisenbridge invited abeltramo8954796 Sat, Sep 21, 2024, 03:57:05 - abeltramo8954796 joined the room Sat, Sep 21, 2024, 08:02:57 - heisenbridge invited chomwitt Sat, Sep 21, 2024, 08:02:57 - chomwitt joined the room Sat, Sep 21, 2024, 08:07:59 - chomwitt left the room: Quit: Ping timeout: 260 seconds Sat, Sep 21, 2024, 09:44:51 - Sam: <@irc_libera_ponky:samcday.com "flicker-free transition from ply..."> Interesting. Could you expand on that? My understand is that this isn't possible without some awareness of plymouth inside greetd. GDM has a bunch of code that actually does the necessary `plymouth` CLI incantations: https://github.com/GNOME/gdm/blob/6c046c9/daemon/gdm-manager.c#L166 Sat, Sep 21, 2024, 09:46:23 - Sam: (The dance is somewhat delicate, you first need to tell plymouth to `plymouth deactivate`, which instructs Plymouth to stop trying to animate the bootsplash. Then once your application has done its own modesetting, you call `plymouth quit --retain-splash` to instruct Plymouth to exit without trying to blank the screen Sat, Sep 21, 2024, 10:18:08 - ponky: samcday: yeah it didn't work afterall. I think my ryzen workstation is too fast and managed to blink at the wrong time :) Sat, Sep 21, 2024, 10:19:21 - ponky: with graphical greeter this would require changes in the underlying compositor i think Sat, Sep 21, 2024, 10:27:50 - ponky: emersion: (sorry for ping), with small modifications, would wlroots/cage be able to do this? not a feature request, just curious Sat, Sep 21, 2024, 10:28:23 - emersion: do what? Sat, Sep 21, 2024, 10:28:38 - ponky: flicker-free transition from plymouth to greeter Sat, Sep 21, 2024, 10:29:04 - emersion: cage shouldn't behave differently from other wlroots compositors, i think Sat, Sep 21, 2024, 10:29:41 - emersion: on recent enough kernels the last FB on-screen should remain when wlroots shuts down Sat, Sep 21, 2024, 10:30:21 - emersion: maybe there's a delay between compositor startup and nested app startup Sat, Sep 21, 2024, 10:30:47 - emersion: i don't know of a compositor which waits for the nested app to render its first frame, would be a nice cage feature Sat, Sep 21, 2024, 10:33:20 - kennylevinsen: samcday: You can probably just `plymouth quit --retain-splash early (e.g., when greetd starts), but it of course freezes the animation Sat, Sep 21, 2024, 10:33:26 - ponky: if I read this correctly, plymouth leaves the splash in framebuffer with --retain-splash, so whatever picks it up first should not clear it but instead start drawing ontop of it Sat, Sep 21, 2024, 10:34:02 - kennylevinsen: I don't think there's a way for us to draw on top of it without having plymouth hand over its buffer Sat, Sep 21, 2024, 10:34:56 - kennylevinsen: if anything you'd have e.g. a layer shell client import the last plymouth images and display them, possibly fading to the new content Sat, Sep 21, 2024, 10:35:34 - kennylevinsen: but yeah delaying modeset till first client in cage would be neat Sat, Sep 21, 2024, 10:37:18 - ponky: https://blogs.gnome.org/halfline/2009/11/28/plymouth-%E2%9F%B6-x-transition/ Sat, Sep 21, 2024, 10:38:15 - emersion: that's a very old post… Sat, Sep 21, 2024, 10:38:32 - emersion: not sure what you mean by "start drawing on top of it" Sat, Sep 21, 2024, 10:38:48 - ponky: it is, but the fundamentals are there, on high level at least Sat, Sep 21, 2024, 10:39:07 - ponky: couldn't find anything on how GDM does it Sat, Sep 21, 2024, 10:40:00 - emersion: most of this is X11-specific Sat, Sep 21, 2024, 10:40:50 - emersion: (even --retain-splash is a quirk which shouldn't be necessary now that we have drmModeRmFb) Sat, Sep 21, 2024, 10:41:05 - ponky: emersion: what i meant is, compositor needs to "grab" the FB from plymouth and not clear it before telling plymouth to exit Sat, Sep 21, 2024, 10:41:53 - kennylevinsen: not quite: an application running under the compositor needs to receive the last image from plymouth (through *some* mechanism), and render the same image in the first modeset Sat, Sep 21, 2024, 10:42:15 - emersion: i don't think so Sat, Sep 21, 2024, 10:42:21 - emersion: well, it kind of depends what you want Sat, Sep 21, 2024, 10:42:23 - ponky: kennylevinsen: right Sat, Sep 21, 2024, 10:42:59 - kennylevinsen: we can't "draw" without attaching an entirely new buffer, and even if we could take over plymouth's FB as a render buffer, it would make a mess of damage tracking if it was left full of garbage :/ Sat, Sep 21, 2024, 10:43:13 - emersion: at least that's not how SteamOS flicker-free boot works Sat, Sep 21, 2024, 10:43:20 - ponky: emersion: use same static image in plymouth and cage wallpaper, avoid screen going blank between plymouth quit and greeter start Sat, Sep 21, 2024, 10:43:39 - kennylevinsen: emersion: what does steamos do? I imagine it's just a fade animation or a continuation of it after handover? Sat, Sep 21, 2024, 10:43:44 - emersion: in that case, reading back the last buffer shouldn't be necessary Sat, Sep 21, 2024, 10:44:02 - emersion: just need to wait for the first client frame before drawing in cage Sat, Sep 21, 2024, 10:44:06 - kennylevinsen: yeah if it's a static image, life is easy - the compositor could just be configured to show the same one :) Sat, Sep 21, 2024, 10:44:38 - emersion: in SteamOS, Steam renders the same image as plymouth Sat, Sep 21, 2024, 10:44:45 - ponky: static images would be a nice start, majority use those instead of animated splash (I think) Sat, Sep 21, 2024, 10:44:55 - kennylevinsen: yeah Sat, Sep 21, 2024, 10:45:17 - kennylevinsen: you can also handle the animation case smarter with a bit of preparation: get plymouth to gracefully stop the animation on a known static frame Sat, Sep 21, 2024, 10:45:48 - emersion: depends if your animation is cyclic Sat, Sep 21, 2024, 10:48:04 - heisenbridge invited chomwitt Sat, Sep 21, 2024, 10:48:05 - chomwitt joined the room Sat, Sep 21, 2024, 10:48:10 - kennylevinsen: if a cage client had to continue an animation, it would probably be hard to avoid it stalling for a number of frames as plymouth exits and the client takes over, even if FB is retained... Sat, Sep 21, 2024, 10:48:19 - kennylevinsen: and the client would have to receive the current animation state from plymouth... Sat, Sep 21, 2024, 10:49:11 - kennylevinsen: If I was tasked with making a glitch-free boot for a particular device, I'd have the animation do a graceful transition to a steady image before the display server starts, and then have the display server fade it out - that would be able to hide any stalls Sat, Sep 21, 2024, 10:49:41 - kennylevinsen: e.g., if it's a spinner, it could slow down and stop at a fixed position or fade the indicator out first Sat, Sep 21, 2024, 10:52:58 - ponky: windows is often referenced in flicker-free boot discussions and even their spinner sometimes stops for a few frames, maybe they do something similar, who knows Sat, Sep 21, 2024, 10:52:59 - emersion: with IPC, it could maybe be possible to start up the new DRM master and then have a fast switch Sat, Sep 21, 2024, 10:53:57 - emersion: force no modeset, prepare an FB with the same format/modifier Sat, Sep 21, 2024, 10:54:14 - kennylevinsen: it's not impossible Sat, Sep 21, 2024, 10:54:35 - emersion: pass the animation state right after pushing a frame and dropping DRM master Sat, Sep 21, 2024, 10:54:47 - emersion: but yeah, it's complicated Sat, Sep 21, 2024, 10:55:30 - kennylevinsen: it's not like a 1 refresh cycle target is impossible to hit, but it certainly requires planning :) Sat, Sep 21, 2024, 10:55:39 - kennylevinsen: and doesn't leave room for hiccups Sat, Sep 21, 2024, 10:56:10 - kennylevinsen: a stall is still be better than a seizure-inducing flicker of course Sat, Sep 21, 2024, 10:56:54 - kennylevinsen: I think fixing the static image case is a good start Sat, Sep 21, 2024, 11:12:17 - ponky: GDM systemd unit actually replaces plymouth-quit.service and calls plymouth quit internally Sat, Sep 21, 2024, 12:37:38 - chomwitt left the room: Quit: Ping timeout: 248 seconds Sat, Sep 21, 2024, 12:46:06 - heisenbridge invited SanskritFritz Sat, Sep 21, 2024, 12:46:07 - SanskritFritz joined the room Sat, Sep 21, 2024, 13:16:13 - heisenbridge invited chomwitt Sat, Sep 21, 2024, 13:16:14 - chomwitt joined the room Sat, Sep 21, 2024, 13:23:21 - chomwitt left the room: Quit: Ping timeout: 246 seconds Sat, Sep 21, 2024, 14:11:24 - Sam: Right, so in that case we're not talking about flicker-free. Although it may still seem free of flicker if the conditions are right, which would mostly be a) nothing barfing to VT during startup and b) your computer/graphics hardware is fast enough that you don't see the flicker ;) Sat, Sep 21, 2024, 14:15:34 - Sam: <@irc_libera_ponky:samcday.com "GDM systemd unit actually replac..."> This is distro specific. On Fedora, I see this: https://paste.debian.net/1329971/ (note that the unit is *conflicting* against the `plymouth-quit.service`, as GDM itself is responsible for the switch with the code I linked earlier Sat, Sep 21, 2024, 14:16:19 - Sam: ponky: ... Except, I need to not reply to messages immediately after waking up, since you already said precisely that 🙈 Sat, Sep 21, 2024, 14:22:50 - heisenbridge invited thi Sat, Sep 21, 2024, 14:22:51 - thi joined the room Sat, Sep 21, 2024, 14:24:02 - Sam: As for the discussion above about how to import the framebuffer from Plymouth and such: I dunno, that's way above my paygrade. That said, I don't really understand why such a thing would be necessary. The main point of Plymouth is that is starts as early as possible in boot, and does its best to yeet a nice (and configurable) spinner onto the screen.. As such you shouldn't need to "continue" that animation in any way. The whole idea of letting Plymouth continue running while your greeter is starting up, is that then you don't take over the framebuffer until you've done all your initialization, painted your first buffer, and are ready to flip it to the screen. Sat, Sep 21, 2024, 14:24:50 - Sam: I also imagine that "flicker" free is impossible if you don't ensure that Plymouth starts in the same modeset that your greeter wants (though I guess some hardware handles this better than others?) Sat, Sep 21, 2024, 14:29:17 - Sam: <@irc_libera_ponky:samcday.com "https://blogs.gnome.org/halfline..."> I think this is a little more recent: https://www.youtube.com/watch?v=lmQpNXlmfQ0 ... Fun fact: the original 2009 blog you linked is from Ray Strode, who is still actively maintaining Plymouth 15 years later AFAICT :) Sat, Sep 21, 2024, 14:31:18 - emersion: samcday: how does plymouth figures out that the next DRM master is ready to take over? Sat, Sep 21, 2024, 14:41:26 - Sam: I think that's what the `plymouth quit --retain-splash` RPC call is for? Sat, Sep 21, 2024, 14:43:32 - Sam: `plymouth deactivate` keeps the DRM master but stops running the animations and grabbing keyboard input. And then the quit right before the proper DRM cutover Sat, Sep 21, 2024, 14:44:08 - Sam: But I've only done cursory grepping thru GDM+Plymouth to arrive at these assumptions. Sat, Sep 21, 2024, 14:48:30 - heisenbridge invited chomwitt Sat, Sep 21, 2024, 14:48:30 - chomwitt joined the room Sat, Sep 21, 2024, 15:24:32 - Nuc1eoN left the room: The Lounge - https://thelounge.chat ```