Как я могу получить обои в течение каждого дня недели?

Так, у меня есть идея. Для создания меня лучше знающий о дне недели я хочу пользовательские обои в течение каждого дня. Но я не знаю, как выполнить это.

Это существует какое-либо программное обеспечение, которое могло сделать это для меня? В противном случае кто-либо мог помочь с установкой сценария, который может изменить фон в течение каждого дня?

5
задан 11 October 2016 в 15:34

3 ответа

Сделайте сценарий как этот пример названным 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).

The Startup Applications app

crontab запись устанавливает фоновую переменную, если Вы зарегистрированы. Startup Applications приложение устанавливает переменную, если Вы не были зарегистрированы в полночь, когда крон работал.

Используя эти два, обои корректного дня будут всегда показывать.

4
ответ дан 23 November 2019 в 09:12

Я использовал бы циклически повторяющиеся обои:

enter image description here

Затем я использовал бы носатый для отображения дня недели:

enter image description here

С этого веб-сайта: https://ubuntuforums.org/showthread.php? t=281865& page=2325& p=13554728#post13554728

И это изображение: https://ubuntuforums.org/attachment.php? attachmentid=264010

очень легко иметь Носатый к dislay MONDAY в больших прописных буквах. Проверьте веб-сайт и найдите глаз приятным сценарием и измените его для удовлетворения потребностям.

1
ответ дан 23 November 2019 в 09:12

Установка обоев от крона

Установка обоев от крона требует установки 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)

Как использовать

  1. Создайте каталог с семью обоями
  2. Скопируйте сценарий в пустой файл, сохраните его как wallswitch.py
  3. В заголовке сценария, установленного путь к обоям
  4. Тестовый прогон сценарий:

    python3 /path/to/wallswitch.py
    

    Обои, соответствуя дню недели должны быть установлены.

  5. Если все хорошо работает, добавьте его для Запущения Приложений: Тире> Приложения Запуска> Добавляет. Добавьте команду:

    /bin/bash -c "sleep 10 && python3 /path/to/wallswitch.py"
    
1
ответ дан 23 November 2019 в 09:12

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

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