diff --git a/.etckeeper b/.etckeeper index a6a9f2a7..3e7a62b4 100755 --- a/.etckeeper +++ b/.etckeeper @@ -63,6 +63,7 @@ maybe chmod 0644 'ImageMagick-6/type-windows.xml' maybe chmod 0644 'ImageMagick-6/type.xml' maybe chmod 0755 'X11' maybe chmod 0755 'X11/Xsession.d' +maybe chmod 0644 'X11/Xsession.d/20dbus_xdg-runtime' maybe chmod 0644 'X11/Xsession.d/90gpg-agent' maybe chmod 0755 'X11/xkb' maybe chmod 0644 'adduser.conf' diff --git a/X11/Xsession.d/20dbus_xdg-runtime b/X11/Xsession.d/20dbus_xdg-runtime new file mode 100644 index 00000000..c5417277 --- /dev/null +++ b/X11/Xsession.d/20dbus_xdg-runtime @@ -0,0 +1,24 @@ +# vim:set ft=sh sw=2 sts=2 et: + +if [ -z "$DBUS_SESSION_BUS_ADDRESS" ] && [ -n "$XDG_RUNTIME_DIR" ] && \ + [ "$XDG_RUNTIME_DIR" = "/run/user/`id -u`" ] && \ + [ -S "$XDG_RUNTIME_DIR/bus" ]; then + # We are under systemd-logind or something remarkably similar, and + # a user-session socket has already been set up. + # + # Be nice to non-libdbus, non-sd-bus implementations by using + # that as the session bus address in the environment. The check for + # XDG_RUNTIME_DIR = "/run/user/`id -u`" is because we know that + # form of the address, from systemd-logind, doesn't need escaping, + # whereas arbitrary addresses might. + DBUS_SESSION_BUS_ADDRESS="unix:path=$XDG_RUNTIME_DIR/bus" + export DBUS_SESSION_BUS_ADDRESS +fi + +if [ -x "/usr/bin/dbus-update-activation-environment" ]; then + # tell dbus-daemon --session (and systemd --user, if running) + # to put a minimal subset of the Xsession's environment in activated + # services' environments + dbus-update-activation-environment --verbose --systemd \ + DBUS_SESSION_BUS_ADDRESS DISPLAY XAUTHORITY +fi