Автоматически измените обои Ubuntu в определенный час

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

Как я получил это обои в течение рассвета, утра, полудня, дня, сумрака и ночь. И я хочу установить свои обои что каждый из них переходы в определенный час, например, 4:00, 8:00, 12:00, 15:00, 18:00 и 20:00. НЕ в течение каждых 3 часов или так.

Я встретился с wallch, SyncWall и Разнообразием, но не видел моей намеченной цели. Syncwall был достаточно близок, за исключением того, что он вызывает ошибку с обоями парного монитора.

Какие-либо другие приложения/программное обеспечение, которые Вы могли предложить? Ручной сценарий также сделал бы, если Вы можете.

5
задан 23 August 2015 в 20:08

1 ответ

  1. Я не уверен, но возможно необходимо установить dconf сначала

    sudo apt-get install dconf-cli
    
  2. Отредактируйте Ваш crontab

    crontab -e
    
  3. Добавьте запись для каждого фонового изображения

    */5 4,5,6,7 * * *   /path/to/change_wallpaper '/path/of/your/wallpaper/for/4am'
    */5 8,8,9,10,11 * * *   /path/to/change_wallpaper '/path/of/your/wallpaper/for/8am'
    */5 12,13,14 * * *   /path/to/change_wallpaper '/path/of/your/wallpaper/for/12am'
    */5 15,16,17 * * *   /path/to/change_wallpaper '/path/of/your/wallpaper/for/3pm'
    */5 18,19 * * *   /path/to/change_wallpaper '/path/of/your/wallpaper/for/6pm'
    */5 20,21,22,23,0,1,2,3 * * *   /path/to/change_wallpaper '/path/of/your/wallpaper/for/8pm'
    
    • Интервал установлен на 5 минут (*/5).
    • Самый низкий интервал составляет 1 минуту (*/1 или *)
  4. Сохраните и закройте своего crontab редактора

  5. Создайте сценарий

    nano change_wallpaper
    
  6. Добавьте код ниже

    #!/bin/bash -e
    user=$(whoami)
    
    fl=$(find /proc -maxdepth 2 -user "$user" -name environ -print -quit)
    for i in {1..5}
    do
      fl=$(find /proc -maxdepth 2 -user "$user" -name environ -newer "$fl" -print -quit)
    done
    
    export DBUS_SESSION_BUS_ADDRESS
    DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS "$fl" | cut -d= -f2-)
    
    IMG="file://$1"
    if [ "$(gsettings get org.gnome.desktop.background picture-uri)" != "$FILE" ]; then
        dconf write "/org/gnome/desktop/background/picture-uri" "'file://${IMG}'"
       # gsettings set org.gnome.desktop.background picture-uri "'$IMG'"
    fi
    
    • Сценарий работает с dconf или gsettings. Можно переключиться между обоими методами. Просто переместитесь # перед gsettings … строка к dconf … строка
  7. Сделайте это исполняемым файлом

    chmod +x change_wallpaper
    
  8. Протестируйте сценарий в своем crontab

    • Отредактируйте свой crontab снова

      crontab -e
      
    • Добавьте (временную) строку ниже

      */1 * * * *   /path/to/change_wallpaper '/path/of/any/wallpaper'
      
    • Закройте crontab редактора

    • Подождите минутку

  9. Если сценарий работает, удалите тестовую запись

    • Отредактируйте свой crontab снова

      crontab -e
      
    • Удалите (временную) строку ниже

      */1 * * * *   /path/to/change_wallpaper '/path/of/any/wallpaper'
      
    • Закройте crontab редактора

Сценарий частично взят отсюда

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

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

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