Howdie, firstly, I want to thank you for sharing greetd, it's working very well for me
One minor nuisance is that, when launched by systemd (I'm using Archlinux), I see the last few messages from systemd printed on top of the output from agreety and tuigreet
I think this is caused by greetd.service starting before the rest of my enabled units are finished starting
I have mostly fixed this by overriding the systemd unit for greetd, and wonder if maybe this should be included in the systemd unit file that you provide in this repository:
systemctl edit greetd.service
I do also need to add
After=tlp.service, because I see one last output from systemd about that service, but that seems very system-specific
It's possible that including
Wants=multi-user.target would more generally solve the sequence issue here, I should investigate
Okay, I've tested with this and I still get the tlp.service output:
[Unit] After=multi-user.target Wants=multi-user.target
I think one other approach might be for terminal greeters to fully redraw themselves, but every terminal greeter would have to implement that (although perhaps it's firmly the responsibility of the frontend and not a greetd backend issue?)
I noticed this is reported over here as well: https://github.com/apognu/tuigreet/issues/17
Okay, after reading through https://github.com/apognu/tuigreet/issues/17 and https://www.freedesktop.org/software/systemd/man/systemd.service.html#Options , I have found a solution that works for me:
[Unit] After=multi-user.target [Service] Type=idle
tty1 is usually the console, which is the kernel log and where things like systemd write their messages. No amount of clearing the screen or redraw will stop a future log message from being shown - for reference, greetd clears the screen just before starting the greeter.
Your idle trick does work fine for avoiding most of the messages, but if you want to avoid all risk, either set the console to be a different TTY (this is done on the kernel command line), or run the greeter from e.g. tty2.
Closing as this is just Linux kernel behavior.