如何制作全天变化的墙纸——亮度要精确

Moi*_*was 6 wallpaper

如何随一天中的时间更改壁纸的亮度,例如给定的默认壁纸。

教程建议使用图片幻灯片或应用程序,例如F.lux.

但我只想根据时间自动调整图像的亮度,就像 Ubuntu 中给出的默认壁纸一样。

Tim*_*Tim 12

无论我在哪里写过USER,请将其更改为您的用户名(例如,我的是tim

创建一个新文件夹,可能在你的图片文件夹中,然后导航到它:

mkdir /home/$USER/Pictures/Wallpaper
cd /home/$USER/Pictures/Wallpaper
Run Code Online (Sandbox Code Playgroud)

创建一个新文件,使其可执行,然后编辑它:

touch bgchange.sh
chmod +x bgchange.sh
gedit bgchange.sh
Run Code Online (Sandbox Code Playgroud)

将以下内容添加到文件中(下面的 USER 表示您需要将其更改为您的用户):

#! /bin/bash

gsettings set org.gnome.desktop.background picture-uri 'file:///home/USER/Pictures/Wallpaper/'$(date +%H)'.png'
Run Code Online (Sandbox Code Playgroud)

这会将小时上的图像更改为带有小时名称的图像(即下午 1 点(13:00),它将背景更改为名为13.png.

现在来创建图像。只需运行此命令:

for i in {0..23}; do convert -brightness-contrast $(($i*2))x0 image.png $i.png; done
Run Code Online (Sandbox Code Playgroud)

您最终会得到一系列图像,每个图像都比前一个“2”亮。最暗的(原始)将是0.png,最亮的23.png。它看起来有点像这样:

在此处输入图片说明 在此处输入图片说明 在此处输入图片说明 在此处输入图片说明 在此处输入图片说明 在此处输入图片说明

您可能需要重命名这些以更改顺序,但请确保每个小时都有一个图像(0 到 23)

最后,脚本需要在启动时启动

运行此命令,然后按回车键(默认选择 2):

crontab -e
Run Code Online (Sandbox Code Playgroud)

并添加这一行:

0 * * * * /home/USER/Pictures/Wallpaper/bgchange.sh
Run Code Online (Sandbox Code Playgroud)

然后按Ctrl+ X,键入Y并按 Enter。每次启动计算机时它都会启动。

我的代词是他/他

  • 既然您无论如何都在使用 cron,为什么不将其设置为每小时重新运行脚本,而不是使用带睡眠的循环? (2认同)