gsettings 设置 org.gnome.desktop.background 不起作用

Pav*_*rov 5 command-line bash gsettings background

我正在尝试下载每日图片并将其设置为我的背景图片:

#!/bin/bash
# clear cache
PICS="/home/pvlkmrv/Pictures"

rm -f ${PICS}/wall.jpg
rm -f ${PICS}/photo-of-the-day

# download photo-of-the-day page
wget http://photography.nationalgeographic.com/photography/photo-of-the-day -O ${PICS}/photo-of-the-day

# parse the url out from the file
url=`cat ${PICS}/photo-of-the-day | grep 'images.nationalgeographic.com.*cache.*990x742.jpg' | cut -d '"' -f 2`

# download the photo
wget http:$url -O ${PICS}/wall.jpg

# set the desktop background
URI=file:///${PICS}/wall.jpg
echo ${URI}
gsettings set org.gnome.desktop.background picture-options 'centered'
gsettings set org.gnome.desktop.background picture-uri ${URI}
Run Code Online (Sandbox Code Playgroud)

图像按预期下载,但实际上并未设置背景。奇怪的是,如果我修改 URI 以包含更多或更少的正斜杠,它会起作用,但它只这样做一次。我最终不得不每次都以一种毫无意义的方式修改脚本,以使这部分工作。

什么可能导致这种情况?

Pav*_*rov 1

我想我发现了问题:即使我转到文件,右键单击并说“设置为壁纸...”,也没有任何反应。所以我假设文件名每次都不会改变;Linux 有某种节省成本的“我实际上不会刷新,因为那是相同的图像”功能。要强制系统每次都识别它是新图片,请更改文件名,如下所示:

#!/bin/bash
# clear cache
PICS="/home/pvlkmrv/Pictures"
RAND=$RANDOM

rm -f ${PICS}/*.jpg
rm -f ${PICS}/photo-of-the-day

# download photo-of-the-day page
wget http://photography.nationalgeographic.com/photography/photo-of-the-day -O ${PICS}/photo-of-the-day

# parse the url out from the file
url=`cat ${PICS}/photo-of-the-day | grep 'images.nationalgeographic.com.*cache.*990x742.jpg' | cut -d '"' -f 2`

# download the photo
wget http:$url -O ${PICS}/wall${RAND}.jpg

# set the desktop background
URI="file://${PICS}/wall${RAND}.jpg"
echo ${URI}
gsettings set org.gnome.desktop.background picture-options 'centered'
gsettings set org.gnome.desktop.background picture-uri "${URI}"
Run Code Online (Sandbox Code Playgroud)