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 在 命令行工具
130KB
3K SLoC
wallrnd
可配置的随机抽象时间感知壁纸生成器
本项目旨在提供一个生成随机抽象壁纸的工具。
直到最近,它只能生成图片,实际上不能将其设置为壁纸。这个限制正在解决。
提供了一个用于自动更改壁纸的 bash 脚本,并在 Ubuntu 20.04 (Focal Fossa) 上进行了测试。此脚本的便携性不在本项目范围内(但是图片生成器应该可以移植到任何操作系统),欢迎提供适用于其他 shell/distros 的脚本。
推荐配置(可执行文件 wallrnd
)
-
cargo安装 wallrnd --功能set-wallpaper,nice
-
复制
setup/wallrnd.toml
并根据您的喜好调整设置 -
创建一个新的 Crontab 条目:
* * * * * wallrnd --config /path/to/wallrnd.toml --image /tmp/wallpaper.svg --set --nice
--nice
选项会导致 wallrnd
一旦启动就降低其优先级,从而防止用户每次生成新壁纸时都遇到短暂的延迟。
推荐配置(可执行文件 prototype/prototype.py
)
wallrnd
是一个比这个更成熟的产品,但如果您仍然想使用原型,这是可能的。
请注意,性能要差得多,而且这个版本的可配置性远低于前者。
-
编辑
prototype/set-wallpaper
,按您的喜好进行编辑,使其可执行,并将其添加到您的$PATH
。 -
创建一个新的 Crontab 条目:
* * * * * set-wallpaper
psutil
用来在CPU使用率已经很高时终止进程。
高级设置
如果你
- 操作系统不支持将SVG图像设置为壁纸
- 不想使用GPL或MPL许可的产品
- 你的操作系统不包括在 这个支持的系统列表 中
- 想要自定义功能,例如在电池运行时终止脚本
- 想要从源代码构建
scrummage
(wallrnd
依赖以提供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 许可证 下许可的,但二进制目标包括(纯粹为了用户方便)具有更严格许可的依赖项。
resvg 和 usvg 需要 MPL 2.0 许可证,并从 BSD 3-clause 许可证 下拉入一些其他依赖项。
wallpaper_rs 在 GPL 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 |
||
serde_derive |
||
rand |
||
chrono |
||
delaunator |
||
toml |
||
resvg * |
||
usvg * |
||
wallpaper_rs * |
||
scrummage * |
* 可选依赖项
替代工具
在线
脚本
应用程序
示例
作为一个壁纸的随机生成器,应该提供一致质量的图像,以下图像样本是未过滤的*。所有这些都是在与在 setup/wallrnd.toml
下提供的配置文件相似的配置下创建的。
*为了提供各种图案、镶嵌和主题,六个是通过稍微修改配置文件创建的,以确保只有一种图案、镶嵌和主题可用。这种方法保证了变异性而不偏重质量。因此,上述样本可以被认为是生成壁纸的一般质量的代表性。
依赖项
~2–4MB
~72K SLoC