我想编写一个 bash 脚本,从文件夹中随机取出一张图片并将其设置为桌面背景。我找到了算法(并不难),但我找不到一个命令,如果给它提供图片的路径,它会更改背景图片。
我找到了gconftool
bash 2.~ 和gsettings
bash 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 中,然后只需单击一下即可更改壁纸。