gsettings устанавливают org.gnome.desktop.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}

Загрузки изображения, столь же ожидаемые, но фон, на самом деле не установлены. Странно, это работает, если я изменяю URI для включения больше или меньшего количества наклонных черт вправо, но это делает так только однажды. Я заканчиваю тем, что имел необходимость изменить сценарий в том, что должно быть бессмысленным путем каждый раз, чтобы заставить этот раздел работать.

Что могло вызывать это?

4
задан 12 March 2016 в 20:22

3 ответа

Я думаю, что нашел проблему: Даже если я перехожу к файлу, щелкните правой кнопкой и скажите "Набор как Обои...", ничего не происходит. Таким образом, я постулировал, что это - факт, который имя файла не изменяет каждый раз; Linux имеет некоторое снижение расходов I'm-not-actually-going-to-refresh-because-that's-the-same-image функция. Чтобы вынудить систему распознать, это - новое изображение каждый раз, варьируйтесь имя файла как это:

#!/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}"
1
ответ дан 1 December 2019 в 10:03

попробуйте его этот путь:

#!/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
# only two slashes here, because the PICS var already has a leading slash
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}"
1
ответ дан 1 December 2019 в 10:03

Можно или заключить полное в кавычки URI переменная как cmks показала или гарантирует это file:// и wall.jpg заключаются в кавычки, как так:

URI="file:///"${PICS}"/wall.jpg"

Вот маленькое улучшение Вашего сценария. Переменные используются для сокращения командной строки. Файл сохранен к /tmp, который удален каждый раз, когда система перезапущена, таким образом, Вы не должны вручную очищать кэш. AWK используется для улучшения передачи по каналу парсинга и уменьшения. wget непосредственно записи к AWK, чтобы не сохранить дополнительные файлы

#!/bin/bash

# set variables to shorten lines
FILE="/tmp/photo_of_the_day"
PAGE="http://photography.nationalgeographic.com/photography/photo-of-the-day"
SEARCH="images.nationalgeographic.com.*cache.*990x742.jpg"

# get image URI directly
IMAGE=$(wget "$PAGE" -O - -o /dev/null  | awk -F'"' -v regex="$SEARCH" '$0~ regex {print $2}')

# download the photo
wget http:$IMAGE -O "$FILE"

# set the desktop background
URI="file:///$FILE"
echo ${URI}
gsettings set org.gnome.desktop.background picture-options 'centered'
gsettings set org.gnome.desktop.background picture-uri "${URI}"
1
ответ дан 1 December 2019 в 10:03

Другие вопросы по тегам:

Похожие вопросы: