我刚刚在 Ubuntu 16.10 上安装了 Mate DE。我想在每次登录后自动更改桌面背景。在 LXDE 上,使用以下命令即可轻松完成此操作并立即生效(加载桌面后休眠以便自动加载):
bash -c 'sleep 5; pcmanfm -w "$(find ~/Pictures/Wallpapers -type f | shuf -n1)"'
当然,这在 Mate 上不起作用。我收到此错误:
Desktop manager is not active.
我得到的唯一 Mate 解决方案涉及mateconftool-2
,但我没有安装它,而且它似乎已被弃用。应该用其他东西代替它,可能gconftool-2
是 或gsettings
。
仅用以下mateconftool-2
命令替换gconftool-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
需要细绳所以需要单引号,你的 shell 需要双引号保留单引号。
答案2
你可以做类似的事情
#!/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}]}