Так, у меня есть идея. Для создания меня лучше знающий о дне недели я хочу пользовательские обои в течение каждого дня. Но я не знаю, как выполнить это.
Это существует какое-либо программное обеспечение, которое могло сделать это для меня? В противном случае кто-либо мог помочь с установкой сценария, который может изменить фон в течение каждого дня?
Сделайте сценарий как этот пример названным dailywallpaper.sh
:
#!/bin/bash
# Variables explained:
# [wallpaperpath]....The directory with your wallpapers.
# [background].......The wallpaper. For the current "Week" day make a symbolic
# link to the desired image. Name the line the a number
# between 1-7 with a dash and the name without extension.
# (ie. ln -s image.png 3-daily for the thrird day of the
# week)
# [default]..........The default wallpaper to set if the file matching the
# current day isn't found.
DBUS=$(ps aux | egrep "/gnome-session/.*\s--session=" | awk '{print $2}')
export $(strings /proc/$DBUS/environ | egrep DBUS_SESSION_BUS_ADDRESS)
day=$(date +"%u")
wallpaperpath="/home/userid/backgrounds/"
background="$day-daily"
default="manhattan-wallpaper-2.jpg"
# Default when the specified file isn't found.
newwallpaper="$wallpaperpath$default"
[[ -f "$wallpaperpath$background" ]] && newwallpaper="$wallpaperpath$background"
gsettings set org.gnome.desktop.background picture-uri "file://${newwallpaper}"
Использование сценария объяснено в комментариях сценария. Можно установить сценарий для выполнения через crontab
.
Запись Crontab в качестве примера:
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
0 0 * * * /home/myaccount/bin/dailywallpaper.sh
Приложение Приложений Запуска необходимо, если Вы не зарегистрированы в полночь. Приложение запуска внесет изменение, когда Вы войдете в систему. Можно найти приложение приложений Запуска в Тире Ubuntu: (Тире Ubuntu-> Startup Applications
).
crontab
запись устанавливает фоновую переменную, если Вы зарегистрированы. Startup Applications
приложение устанавливает переменную, если Вы не были зарегистрированы в полночь, когда крон работал.
Используя эти два, обои корректного дня будут всегда показывать.
Я использовал бы циклически повторяющиеся обои:
Затем я использовал бы носатый для отображения дня недели:
С этого веб-сайта: https://ubuntuforums.org/showthread.php? t=281865& page=2325& p=13554728#post13554728
И это изображение: https://ubuntuforums.org/attachment.php? attachmentid=264010
очень легко иметь Носатый к dislay MONDAY
в больших прописных буквах. Проверьте веб-сайт и найдите глаз приятным сценарием и измените его для удовлетворения потребностям.
Установка обоев от крона требует установки gsettings
. С тех пор cron
выполнения с очень ограниченным набором переменных среды, Вы должны будете установить специальную переменную, названную:
DBUS_SESSION_BUS_ADDRESS
Не (что Вы ожидали бы), DISPLAY
- переменная.
См. также здесь, как сделать это.
С другой стороны, можно использовать простой сценарий ниже. На запуске сценарий устанавливает соответствующие обои, затем весь сценарий делает ожидание до полуночи, для изменения обоев. С другой стороны сон до следующей полуночи и так далее.
import time
import os
import subprocess
picsdir = "/home/jacob/Bureaublad/pics"
images = sorted([os.path.join(picsdir, pic) for pic in os.listdir(picsdir)])
def calc_sleep():
secdata = time.strftime("%H %M %S").split()
seconds = (int(secdata[0])*3600)+(int(secdata[1])*60)+(int(secdata[2]))
# calculate the sleep time until next midnight
return 86400+1-seconds
while True:
# weekday
day = int(time.strftime("%w"))
# the corresponding image from the set folder
image = images[day-1]
# set the image from gsettings
command = ["gsettings", "set", "org.gnome.desktop.background",
"picture-uri", "file://"+image]
subprocess.check_call(command)
# calculate the time to sleep until next midnight
wait = calc_sleep()
time.sleep(wait)
wallswitch.py
Тестовый прогон сценарий:
python3 /path/to/wallswitch.py
Обои, соответствуя дню недели должны быть установлены.
Если все хорошо работает, добавьте его для Запущения Приложений: Тире> Приложения Запуска> Добавляет. Добавьте команду:
/bin/bash -c "sleep 10 && python3 /path/to/wallswitch.py"