docs: document labwc-session.target integration

Describe the shipped labwc-session.target in labwc(1) SESSION MANAGEMENT
and add commented-out systemctl start/stop lines to the example
autostart and shutdown files. Users on systemd-based distros can
uncomment these to pull in graphical-session.target when labwc starts
and tear it down cleanly on exit, without labwc itself mandating any
specific init system.
This commit is contained in:
Jos Dehaes 2026-04-21 16:31:30 +02:00 committed by Johan Malm
parent d8119cb354
commit af277b09ed
3 changed files with 35 additions and 0 deletions

View file

@ -1,5 +1,13 @@
# Example autostart file # Example autostart file
# When running under systemd, uncomment the systemctl line below to pull in
# graphical-session.target via labwc-session.target. This lets systemd user
# services declaring WantedBy=graphical-session.target (panels, portals,
# notification daemons, etc.) start in sync with the labwc session. Enable
# individual services with: systemctl --user enable <unit>
#
# systemctl --user --no-block start labwc-session.target
# Set background color. # Set background color.
swaybg -c '#113344' >/dev/null 2>&1 & swaybg -c '#113344' >/dev/null 2>&1 &

View file

@ -118,6 +118,25 @@ this is accomplished by setting the session variables to empty strings. For
systemd, the command `systemctl --user unset-environment` will be invoked to systemd, the command `systemctl --user unset-environment` will be invoked to
actually remove the variables from the activation environment. actually remove the variables from the activation environment.
A systemd user unit named `labwc-session.target` is also shipped alongside
the compositor for users who want to integrate labwc with systemd. It binds
to the standard `graphical-session.target`, so systemd user services can
start and stop in sync with the labwc session when they declare a WantedBy
or PartOf relationship to that target. Labwc does not activate the target
itself; users opt in by adding lines like the following to their
*autostart* and *shutdown* files:
```
systemctl --user --no-block start labwc-session.target
systemctl --user stop graphical-session.target
```
The example *autostart* and *shutdown* files shipped with labwc include
these commented out. To have a user service automatically started with
the session, enable it so the corresponding symlink under the
graphical-session.target.wants directory exists, for example by running
"systemctl --user enable dms.service".
# ENVIRONMENT VARIABLES # ENVIRONMENT VARIABLES
Set the environment variables listed below to enable specific debug options. Set the environment variables listed below to enable specific debug options.

View file

@ -3,3 +3,11 @@
# This file is executed as a shell script when labwc is preparing to terminate # This file is executed as a shell script when labwc is preparing to terminate
# itself. # itself.
# For further details see labwc-config(5). # For further details see labwc-config(5).
# When running under systemd, uncomment the systemctl line below to tear down
# graphical-session.target (which cascades to labwc-session.target via
# BindsTo, and to any service declaring PartOf=graphical-session.target).
# Running synchronously here ensures those services are stopped before the
# Wayland socket goes away, avoiding "Broken pipe" failures on teardown.
#
# systemctl --user stop graphical-session.target