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

ano*_*rse 6 wallpaper

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

就像我在黎明、早晨、中午、下午、黄昏和夜晚得到了这张壁纸。我想设置我的壁纸,让它们每个都在某个时间转换,例如凌晨 4 点、早上 8 点、中午 12 点、下午 3 点、下午 6 点和晚上 8 点。不是通过每3个小时左右,请。

我遇到了wallchSyncWallVariety,但没有看到我的预期目的。Syncwall 足够接近,只是它会导致双显示器墙纸的错误。

您可以推荐任何其他应用程序/软件吗?如果可以,手动脚本也可以。

A.B*_*.B. 5

  1. 我不知道,但也许你必须安装dconf第一

    sudo apt-get install dconf-cli
    
    Run Code Online (Sandbox Code Playgroud)
  2. 编辑您的 crontab

    crontab -e
    
    Run Code Online (Sandbox Code Playgroud)
  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'
    
    Run Code Online (Sandbox Code Playgroud)
    • 间隔设置为 5 分钟 ( */5)。
    • 可能的最低间隔为 1 分钟(*/1*
  4. 保存并关闭您的 crontab 编辑器

  5. 创建脚本

    nano change_wallpaper
    
    Run Code Online (Sandbox Code Playgroud)
  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
    
    Run Code Online (Sandbox Code Playgroud)
    • 该脚本适用于dconfgsettings。您可以在两种方法之间切换。只需移动#在前面gsettings …线到dconf …线
  7. 使其可执行

    chmod +x change_wallpaper
    
    Run Code Online (Sandbox Code Playgroud)
  8. 在 crontab 中测试脚本

  9. 如果脚本有效,请删除测试条目

部分取自此处的脚本