Rebooted some more this morning... On the suspicion that there would be some timing problem between sddm, X, and sddm-greeter startup, I wrapped sddm-greeter with a shellscript, and then used that to log some environmental and process list stuff, as well as introduce some delay. The logged argument and environment information was inconspicuous between the nonworking after-boot run and the subsequent working run when manually restarting the display-manager unit. Sleeping for some seconds before really starting sddm-greeter, did NOT help. So, it's not simply a timing issue between sddm starting X, and starting the greeter. But, comparing the logged process lists between the after-boot (does not work) scenario, and a subsequent working run (systemctl restart display-manager), I got a suspicion.... I noticed that sddm (and X) were started rather early, immediately after wickedd came up, but BEFORE systemd-logind. On that suspicion, I added an After= dependency on systemd-logind to the display-manager.service unit - and that GOT IT TO WORK! Not I don't really know what I'm doing here :) ..... but I hope that might help you understand the issue better.