diff --git a/Makefile b/Makefile index ff2cc4d9..9507215e 100644 --- a/Makefile +++ b/Makefile @@ -160,6 +160,8 @@ install-pipewire: install-systemd: install -m 0644 -D appvm-scripts/qubes-gui-agent.service \ $(DESTDIR)$(UNITDIR)/qubes-gui-agent.service + install -m 0644 -D appvm-scripts/lib/systemd/user/qubes-graphical-session.target \ + $(DESTDIR)$(USERUNITDIR)/qubes-graphical-session.target .PHONY: install-common install-common: diff --git a/appvm-scripts/lib/systemd/user/qubes-graphical-session.target b/appvm-scripts/lib/systemd/user/qubes-graphical-session.target new file mode 100644 index 00000000..ab75c819 --- /dev/null +++ b/appvm-scripts/lib/systemd/user/qubes-graphical-session.target @@ -0,0 +1,3 @@ +[Unit] +Description=Qubes graphical session +BindsTo=graphical-session.target diff --git a/appvm-scripts/usrbin/qubes-session b/appvm-scripts/usrbin/qubes-session index 6412e8c7..1a23214a 100755 --- a/appvm-scripts/usrbin/qubes-session +++ b/appvm-scripts/usrbin/qubes-session @@ -55,6 +55,11 @@ UPDTYPE=$(/usr/bin/qubesdb-read /qubes-vm-updateable) # manager and dbus-daemon dbus-update-activation-environment --systemd --all +if command -v systemctl >/dev/null && [ -e "${XDG_RUNTIME_DIR:-/run/user/$UID}/systemd" ]; then + trap "systemctl --user stop qubes-graphical-session.target" EXIT + systemctl --user start qubes-graphical-session.target +fi + # process /etc/xdg/autostart and friends (according to Desktop Application # Autostart Specification) /usr/bin/qubes-session-autostart QUBES X-QUBES "X-$VMTYPE" "X-$UPDTYPE" diff --git a/debian/qubes-gui-agent.install b/debian/qubes-gui-agent.install index 196c427c..54f78896 100644 --- a/debian/qubes-gui-agent.install +++ b/debian/qubes-gui-agent.install @@ -23,6 +23,7 @@ etc/xdg/xsettingsd lib/systemd/system/qubes-gui-agent.service lib/udev/rules.d/70-master-of-seat.rules lib/udev/rules.d/90-qubes-virtual-input-device.rules +lib/systemd/user/qubes-graphical-session.target usr/bin/qubes-change-keyboard-layout usr/bin/qubes-gui usr/bin/qubes-gui-runuser diff --git a/rpm_spec/gui-agent.spec.in b/rpm_spec/gui-agent.spec.in index e4f8789e..286797d1 100644 --- a/rpm_spec/gui-agent.spec.in +++ b/rpm_spec/gui-agent.spec.in @@ -328,6 +328,7 @@ rm -f %{name}-%{version} %config /etc/sysconfig/desktop %endif %_unitdir/qubes-gui-agent.service +%{_userunitdir}/qubes-graphical-session.target %_udevrulesdir/70-master-of-seat.rules %_udevrulesdir/90-qubes-virtual-input-device.rules %_sysctldir/30-qubes-gui-agent.conf