在 bash 中更改桌面背景

在 bash 中更改桌面背景

我想编写一个 bash 脚本,从文件夹中随机取出一张图片并将其设置为桌面背景。我找到了算法(并不难),但我找不到一个命令,如果给它提供图片的路径,它会更改背景图片。

我找到了gconftoolbash 2.~ 和gsettingsbash 3.~,但我在 Ubuntu 16.04 LTS 上有 GNU bash,版本 4.3.42(1)-release,这些不起作用。

答案1

假设您使用的是带有 Unity 的标准 Ubuntu 16.04,则可以使用以下命令设置壁纸:

gsettings set org.gnome.desktop.background picture-uri "file:///home/username/path/to/image.jpg"

你还应该看看多种壁纸更换器- 它的作用与你想用 shell 脚本做的事情相同,很多功能和选项。

答案2

我是这样做的:

targetDir="/home/username/Photos"


function get_next_photo() {
    # Returns a random file form targetdir
    files=( "$targetDir"/* )
    echo "${files[RANDOM % ${#files[@]}]}"
}

function set_background() {
    # Takes an absolute file path as argument. Need * for spaces in path
    bg="$*"
    echo "Setting background to $bg"
    gsettings set org.gnome.desktop.background picture-uri "file://$bg"
}


background=$(get_next_photo)
echo "Next background is $background"
set_background $background

然后将你的脚本的快速启动器添加到 Dock 中,然后只需单击一下即可更改壁纸。

相关内容