I’ve managed to make a script that fixes the issue. It might be a quick a dirty hack, but it works. Hopefully, the functionnality will be properly integrated in mate-settings-daemon at some point.
#!/bin/bash
function setuserbackground(){
export USERBACKGROUND=`gsettings get org.mate.background picture-filename | tr -d "'"`
dbus-send --system --type=method_call --print-reply --dest=org.freedesktop.Accounts /org/freedesktop/Accounts/User`id -u` org.freedesktop.Accounts.User.SetBackgroundFile string:"$USERBACKGROUND"
}
setuserbackground
dbus-monitor --profile "type='signal',interface='ca.desrt.dconf.Writer',path='/ca/desrt/dconf/Writer/user',arg0path='/org/mate/desktop/background/'" |
while read -r line; do
setuserbackground
done
Put it in /usr/bin (I called it msd-background-helper), make it executable and run it at session start. You can put the following msd-background-helper.desktop in /etc/xdg/autostart so that it’s started on each session automatically:
[Desktop Entry]
Type=Application
Name=MATE Settings Daemon Background Helper
Comment=Sets the user background in AccountsService on MATE
Exec=/usr/bin/msd-background-helper
OnlyShowIn=MATE;
X-MATE-Autostart-enabled=true
I’ll try to make a proper deb package for easier distribution and installation.
Note that the default Ubuntu Mate LightDM GTK greeter disables the user background option, so you’ll have to activate it through the LightDM GTK+ Greeter Settings that’s in System → Administration (“use user wallpaper if available”).