logout screen: show when system will switch to a different boot entry after reboot

Reason for the change

Like !4889 (merged), except this adds support for showing if the system will switch to a different boot loader entry.

Test plan

This requires using systemd-boot or some other Boot Loader Specification compliant bootloader.

Run busctl call org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager SetRebootToBootLoaderEntry s "example.conf", replacing example.conf with a BLS entry's ID (you can use bootctl list to list them all).

Screenshots or screen recordings

Before After
before after

I've currently made this MR a draft because I'm unsure of the method I use to get the entry's human-readable title. The code currently just shells out to bootctl list --json=short, then parses the JSON it returns and uses that to find the title. There's a Varlink socket (/run/systemd/io.systemd.BootControl), but it's root-only, and doing this manually would mean adding code to parse PE executables for BLS Type #2 UKIs. Is this good enough, or should I try to find some other way?

Edited by Nikolay Kochulin

Merge request reports

Loading