在特定时间自动更改 Ubuntu 壁纸

在特定时间自动更改 Ubuntu 壁纸

所以我使用 Ubuntu,并且遇到了很多用于自动更换壁纸的软件和解决方法,,这一切都与时间间隔我想要的是特定时间段

比如我为黎明、早晨、中午、下午、黄昏和夜晚设置了这些壁纸。我想设置我的壁纸,让它们在特定的时间转换,例如凌晨 4 点、上午 8 点、中午 12 点、下午 3 点、下午 6 点和晚上 8 点。不是通过每 3 小时或类似情况,请。

我遇到了沃尔奇同步墙种类,但没有达到我的预期目的。Syncwall 已经足够接近了,只是它会导致双显示器壁纸出现错误。

您还有其他推荐的应用/软件吗?如果可以的话,手动脚本也可以。

答案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
    
    • 该脚本适用于dconfgsettings。您可以在两种方法之间切换。只需移动排在队伍#最前面的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 编辑器

脚本部分取自这里

相关内容