# .xsessionrc might only be read on Debian and its derivatives like Ubuntu. # This is a workaround to make notify-send inside cron jobs work. # Thanks to this dude: https://unix.stackexchange.com/a/111190/60124 # Then you source ~/.dbus.sh inside your cron job, and voilĂ ! export_dbus_variables() { local output_path="$HOME/.dbus.sh" local printf_path rm -f -- "$output_path" # dash's built-in printf (as opposed to bash's) doesn't support %q. touch -- "$output_path" \ && chmod 0600 -- "$output_path" \ && [ -n "${DBUS_SESSION_BUS_ADDRESS+x}" ] \ && printf_path="$( which printf )" \ && "$printf_path" -- 'export DBUS_SESSION_BUS_ADDRESS=%q\n' "$DBUS_SESSION_BUS_ADDRESS" > "$output_path" } # This is semi-deprecated, since systemd timers can replace cron jobs # completely, and they work with various DISPLAY/XAUTHORITY/DBUS* variables. # TODO: remove? export_dbus_variables