#壁纸 #heif #linux命令 #动态壁纸

应用 timewall

GNU/Linux上苹果动态HEIF壁纸的全能工具

6个版本 (2个稳定版)

1.1.0 2024年1月22日
1.0.0 2023年6月14日
0.3.1 2023年1月3日
0.3.0 2022年11月16日
0.1.0 2022年10月25日

#123 in 图像

MIT 许可证

320KB
1.5K SLoC

timewall

CI test coverage license Crates.io

GNU/Linux上的苹果动态HEIF壁纸。

timewall_preview


功能

  • 支持MacOS中使用的原始HEIF/HEIC动态壁纸文件。
  • 支持所有计划类型:基于太阳位置、基于时间、暗/亮模式。
  • 设置壁纸一次,持续显示(守护进程模式)。
  • 预览壁纸变化。
  • 显示壁纸元数据。
  • 将所有图像和元数据提取为XML。

安装

先决条件

timewall 依赖于 libheif 以支持HEIF,请确保已安装。如果您从源代码构建它,您可能还需要 libheif-dev,具体取决于您的发行版。

Arch Linux (AUR)

AUR软件包可用: timewalltimewall-bin

二进制文件

您可以从发布页面下载包含最新预构建二进制文件和shell补全的tar包。名为 timewall 的二进制文件必须放在您的 $PATH 目录中,例如 /usr/local/bin

Cargo

cargo install timewall

用法

初始配置

如果您打算使用基于太阳位置壁纸,则需要向 timewall 提供您的近似位置。为此,创建一个配置文件 $XDG_CONFIG_HOME/timewall/config.toml(如果您不确定,可能是 ~/.config/timewall/config.toml)。此文件也会在您首次运行 timewall set 时生成。

在文件中放入以下内容,同时将 lat(纬度)和 lon(经度)值更改为您的需求

[location]
lat = 51.11
lon = 17.02

设置壁纸

一次性模式

要设置壁纸,只需运行

timewall set path/to/wallpaper.heif

这将根据壁纸计划设置正确的壁纸,考虑当前时间或太阳位置。请注意,这种方式设置的壁纸不会随时间更新。您可以通过重复上述命令来更新它,也可以将其缩短为仅timewall set - 最后使用的壁纸将被记住。

另请参阅:动态壁纸的位置

守护进程模式

您可能不想每次都手动更新壁纸。为了自动执行此操作,您可以使用守护进程模式

timewall set --daemon

此命令将连续运行,并随时间更新您的壁纸。将其作为后台进程在启动时自动运行是个好主意。

如您所见,上述命令不包括要设置的壁纸。这是因为守护进程模式默认使用上次设置的壁纸。如果您已经手动运行了timewall set,那么守护进程将使用您当时设置的任何壁纸。此外,如果您想更改壁纸,只需运行timewall set path/to/new/wall.heif即可。守护进程将拾取更改,并从现在开始更新新的壁纸。

Systemd服务

实现此功能的一种方法是通过systemd服务。将以下内容写入~/.config/systemd/user/timewall.service

[Unit]
Description=Dynamic wallpapers daemon

[Service]
Type=simple
ExecStart=timewall set --daemon

[Install]
WantedBy=default.target

然后运行

systemctl --user enable --now timewall.service

之后,timewall应在启动时自动启动,并在白天更新您的壁纸。

预览

要预览壁纸,请运行

timewall preview path/to/wallpaper.heif

这将快速循环壁纸中的所有图像,以模拟一天中的变化。预览速度可以通过指定连续壁纸更改之间的延迟(以毫秒为单位)使用--delay选项来控制。您还可以使用--repeat选项无限循环预览。

解包

要解包壁纸中存储的所有图像以及其XML格式的元数据,请运行

timewall unpack path/to/wallpaper.heif path/to/output/directory

读取元数据

可以使用以下方式显示timewall所知的所有元数据

timewall info path/to/wallpaper.heif

配置

自定义壁纸设置命令

如果由于某些原因默认壁纸设置在您的情况下不起作用,或者您只想自定义它,您可以指定要使用的自定义命令。例如,要使用feh设置壁纸,您可以将以下内容添加到您的~/.config/timewall/config.toml

[setter]
command = ['feh', '--bg-fill', '%f']

%f是一个占位符,它将被替换为设置壁纸的图像的完整绝对路径。

动态壁纸的位置

  • 原始MacOS动态壁纸。如果您有权访问运行MacOS的计算机,您只需复制动态壁纸即可。您也可以通过一些努力在线找到这些文件。由于法律原因,我不会链接任何文件。
  • 动态壁纸俱乐部。许多用户创建的壁纸。遗憾的是,其中许多质量一般。只有少数使用太阳位置计划(对我来说,这是整个概念中最好的部分),而且通常做得不好。
  • dynwalls.com。一些免费、高质量的壁纸。
  • Jetson Creative。三张免费壁纸和一些您可以购买捆绑包。
  • mczachurski/wallpaper。两张高质量的自制壁纸。

资源/鸣谢

以下资源帮助我在timewall开发中

依赖项

~12–44MB
~610K SLoC