feat: session envelope target
`wayland-session-envelope@.target` is now used to start and stop graphical
session from the signal handler.
Waiting on it provides synchronized release after graphical session environment
is properly brought down (`wayland-wm-env@.service` is deactivated).
Since login session is now bound to the whole graphical session envelope, this
prevents failures on restarting a getty with autologin: the old login session
will not end prematurely, uwsm in new login session will not stumble on still
deactivating remains of graphical-session-pre.target.
fix!: bake in transient session vars behavior and drop test switch var
fix!: drop non-static units
"static-units" option was broken, stuck to truthy value, and nobody complained.
No reason to keep it and a bunch of duplicated data in the main body.
fix: match session to VTNr actually by VTNr
So kmscon pts device does not throw off the algorithm
fix: autolaunch bindpid service on login session leader if none running
fix: do not auto-add executable name to XDG_CURRENT_DESKTOP if entry's DesktopNames has content, fixes #186
fix: improve desktop names parsing/propagation (fixes #186), session vars fallback saving
fix!: demote compositor executable to the last resort fallback for desktop names
This would be the most predictable behavior, plugins excluded.
DM, DesktopNames, and CLI args being the obvious sources.
Addendum for #186.
fix: always log to journal in signal handler
fix: probe for $DBUS_SESSION_BUS_ADDRESS before trying to talk to DBus in checks
fix: add plugin link for start-hyprland
fix: properly name plugin and function by bin_id rules
build: add actual plugin symlink to track, cleanup unneeded debian/watch params
build: bump meson version due to follow_symlinks param
build: cherry pick some changes from official debian packaging
fix(uuctl): properly fallback cleanup function to true
fix: address some pylint issues
refactor: move shell code from main body to libexec dir
chore: start aggregating relesae summaries.
chore: start using whimsical release names because it is a cool Culture.