如何使用命令更改 Mate 上的桌面背景?

如何使用命令更改 Mate 上的桌面背景?

我刚刚在 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}]}

相关内容