aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/%HOME%/.xsessionrc
blob: 23d73ccf84a2abd6c22a1d90ca4b6c6023ed72dd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# .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