按当前时间更改壁纸

ale*_*123 4 customization scripts desktop-background

在定制我的 Ubuntu 时,我想有两张壁纸,一张用于白天/下午,一张用于晚上/晚上。

是否可以根据自己的当前时间更改壁纸?如果是这样,我该怎么办?

提前致谢。

Jac*_*ijm 6

根据白天和夜晚更换壁纸就这么简单

假设夜晚在中午 12:00之后开始,在午夜 24:00之后结束,下面脚本的使用非常简单:

例如:

    python3 /path/to/wallpaper_shift.py 19:00 6:00
Run Code Online (Sandbox Code Playgroud)
  • 白班期间,根据自己的喜好设置壁纸。脚本会记住您在第二天轮班时的选择。
  • 同样,在夜班期间,设置您喜欢的夜间壁纸。剧本再次记住了。

就这样。现在,运行脚本时,壁纸将根据您设置的当天时刻进行切换。

如果脚本停止

该脚本会记住隐藏文件中设置的壁纸:~/.wallset. 当脚本(重新)启动时,它首先尝试从文件中读取设置的壁纸。如果它不存在,它将创建一个新文件,使用当前设置的白班和夜班壁纸,直到您更改其中之一(或两者)。

处理器负载为零

当脚本启动时,它会计算:

  • 当天的当前时间
  • 夜班和白班的时间跨度
  • 从当天的当前时间到第一次切换的时间跨度
  • 当前学期(白天或晚上)

之后,在壁纸切换之间,脚本只休眠

脚本的作用

在此输入图像描述

剧本

  python3 <script> <begin_of_evening> <end_of_night>
Run Code Online (Sandbox Code Playgroud)

###如何使用

  1. 将脚本复制到一个空文件中,另存为wallpaper_shift.py

  2. 通过命令从终端测试运行它(示例):

     python3 /path/to/wallpaper_shift.py 19:00 6:00
    
    Run Code Online (Sandbox Code Playgroud)

其中时间格式应为20:00 3。在这两个术语中的任何一个中,只需根据需要设置壁纸,脚本就会记住并在下一个“白天”或“晚上”重新应用它。4. 如果一切正常,请将其添加到启动应用程序:Dash > 启动应用程序 > 添加。添加命令:

    /bin/bash -c "sleep 20 && python3 /path/to/wallpaper_shift.py 19:00 6:00"
Run Code Online (Sandbox Code Playgroud)

笔记

  1. 如果晚上在中午 12:00 之间开始并在午夜之后结束,则该脚本可以正常工作。但这似乎是显而易见的。
  2. 该脚本以分钟为单位对时间进行四舍五入,这意味着精度也在 0-60 秒之间。
  3. .wallset 文件将显示:

night:'file:///home/user/path/to/file/123.jpg' day:'file:///home/user/path/to/file/456.jpg'

  1. 如果您喜欢使用 cron 在后台执行脚本,请打开终端并执行以下命令:crontab -e

然后,将此行添加到 crontab 中:

 @reboot /home/user/path/to/wallpaper_shift.py 19:00 6:00
Run Code Online (Sandbox Code Playgroud)

并保存 crontab 设置(即CTRL-x如果您使用的是 nano)。这将执行壁纸_shift.py 脚本,以便在每次重新启动/启动系统时在后台运行。