Как изменить фон рабочего стола на Mate с помощью команды?
Я только что установил Mate DE на Ubuntu 16.10. Я хочу автоматически менять фон рабочего стола после каждого входа в систему. На LXDE это было сделано легко с немедленным эффектом (спящий режим только для автозагрузки после загрузки рабочего стола):
bash -c 'sleep 5; pcmanfm -w "$(find ~/Pictures/Wallpapers -type f | shuf -n1)"'
Это, конечно, не работает на Mate, ошибка: Менеджер рабочего стола не активен. Только решения, которые я получаю для Mate, включают mateconftool-2, которого у меня нет, и, похоже, он устарел. Это должно быть заменено чем-то другим, вероятно, gconftool-2 или gsettings.
Команда Gconftool-2, когда ее просто заменили вместо mateconftool-2 (из нескольких форумов), ничего не делает:
mateconftool-2 -t string -s /desktop/mate/background/picture_filename $(find ~/Pictures/Wallpapers -type f | shuf -n1)
Команда Gsettings принята, но не меняет фактическую картину:
gsettings set org.gnome.desktop.background picture-uri "file://$(find ~/Pictures/Wallpapers -type f | shuf -n1)"
Хотя я вижу, что это изменило значение:myusername@mypcname:~$ gsettings get org.gnome.desktop.background picture-uri
'file:///home/myusername/Pictures/Wallpapers/Horex-VR6-Cafe-Racer-33-LTD-2014-1920x1080-001.jpg'
Как мне заставить это работать?
1 ответ
Вы можете использовать dconf
инструмент для этого.
Например:
dconf write / org / mate / desktop / background / picture-filename "'PATH-TO-JPEG'"
Обратите внимание на цитирование для имени файла / путь к изображению. Dconf ожидает строку, поэтому ей нужны одинарные кавычки, а вашей оболочке понадобятся двойные кавычки для хранения одинарных кавычек.
Вы можете сделать что-то подобное
#!/bin/bash
# images directory
rep="/home/bernard/Images/FdsEcran"
# Create image list from directory
liste=("${rep}/"*)
# Compute the number of images
nbre=${#liste[@]}
# Random select
selection=$((${RANDOM} % ${nbre}))
# Image loading
gsettings set org.mate.background picture-filename ${liste[${selection}]}