4 个稳定版本

1.2.2 2020 年 8 月 30 日
1.2.1 2020 年 8 月 3 日
1.2.0 2020 年 7 月 30 日
1.1.1 2020 年 7 月 28 日

#2578命令行工具

MIT 和可能 GPL-3.0-or-later

130KB
3K SLoC

wallrnd

可配置的随机抽象时间感知壁纸生成器

License: MIT

API


本项目旨在提供一个生成随机抽象壁纸的工具。

直到最近,它只能生成图片,实际上不能将其设置为壁纸。这个限制正在解决。

提供了一个用于自动更改壁纸的 bash 脚本,并在 Ubuntu 20.04 (Focal Fossa) 上进行了测试。此脚本的便携性不在本项目范围内(但是图片生成器应该可以移植到任何操作系统),欢迎提供适用于其他 shell/distros 的脚本。


  • cargo安装 wallrnd --功能set-wallpaper,nice

  • 复制 setup/wallrnd.toml 并根据您的喜好调整设置

  • 创建一个新的 Crontab 条目:* * * * * wallrnd --config /path/to/wallrnd.toml --image /tmp/wallpaper.svg --set --nice

--nice 选项会导致 wallrnd 一旦启动就降低其优先级,从而防止用户每次生成新壁纸时都遇到短暂的延迟。

wallrnd 是一个比这个更成熟的产品,但如果您仍然想使用原型,这是可能的。

请注意,性能要差得多,而且这个版本的可配置性远低于前者。

  • 编辑 prototype/set-wallpaper,按您的喜好进行编辑,使其可执行,并将其添加到您的 $PATH

  • 创建一个新的 Crontab 条目:* * * * * set-wallpaper

psutil 用来在CPU使用率已经很高时终止进程。

高级设置

如果你

  • 操作系统不支持将SVG图像设置为壁纸
  • 不想使用GPL或MPL许可的产品
  • 你的操作系统不包括在 这个支持的系统列表
  • 想要自定义功能,例如在电池运行时终止脚本
  • 想要从源代码构建
  • scrummagewallrnd 依赖以提供 nice 功能的包)目前与你的操作系统不兼容

安装

  • 如果你不需要 wallrnd 来设置壁纸,则不要使用 set-wallaper 功能: cargo install wallrnd。同样,如果你不想使用 nice 功能也是如此。

  • 如果你想要能够创建png图像,则应该添加 make-png 功能: cargo install wallrnd --features make-png

  • 要使用所有功能,可以使用 cargo install wallrnd --features all

  • 你也可以从源代码构建

    git clone https://github.com/Vanille-N/wallrnd
    cd wallrnd
    cargo build --release --features nice,set-wallpaper
    cp target/release/wallrnd ~/bin/wallrnd
    

配置

  • setup/wallrnd.toml 包含设置选项的示例和说明。请随时要求更多解释。

  • 配置文件不需要命名为 wallrnd.toml,但它必须格式化为TOML文件。

自动化

  • setup/set-wallpaper-* 是设置 wallrnd 执行的示例。

  • 应该将适当的版本放入你的路径,并通过在 Crontab 中添加条目在需要时执行。 * * * * * set-wallpaper

  • 请注意,文件路径不需要是绝对路径。 wallrnd 在将壁纸写入文件之前会解析路径。


功能和许可

虽然这个包中的代码是在 MIT 许可证 下许可的,但二进制目标包括(纯粹为了用户方便)具有更严格许可的依赖项。

resvgusvg 需要 MPL 2.0 许可证,并从 BSD 3-clause 许可证 下拉入一些其他依赖项。

wallpaper_rsGPL 3.0 许可证下授权

这些包提供的功能完全是可选的。不同功能的详细信息请参阅 高级设置 部分。

使用 make-png 功能需要 MPL 2.0 或兼容的许可证。

使用 set-wallpaper 功能需要 GPL 3.0 或兼容的许可证。

同时使用这两个功能至少需要 GPL 3.0。

将MPL和GPL许可的crate作为MIT许可的crate的依赖项,并不授予任何人使用非GPL兼容许可分发使用相应功能标志编译的可执行文件的权利。任何不包含这些标志的派生作品可以安全地在MIT许可下提供。

不建议任何依赖于此crate的crate使用功能标志,因为来自GPL依赖的功能并未由wallrnd重新导出,从而增加了不必要的依赖。


直接依赖项

依赖项 crate 文档
serde API
serde_derive API
rand API
chrono API
delaunator API
toml API
resvg * API
usvg * API
wallpaper_rs * API
scrummage * API

* 可选依赖项


替代工具

在线

脚本

应用程序

示例

作为一个壁纸的随机生成器,应该提供一致质量的图像,以下图像样本是未过滤的*。所有这些都是在与在 setup/wallrnd.toml 下提供的配置文件相似的配置下创建的。

*为了提供各种图案、镶嵌和主题,六个是通过稍微修改配置文件创建的,以确保只有一种图案、镶嵌和主题可用。这种方法保证了变异性而不偏重质量。因此,上述样本可以被认为是生成壁纸的一般质量的代表性。

依赖项

~2–4MB
~72K SLoC