7 个不稳定版本
0.4.0 | 2024年3月29日 |
---|---|
0.3.1 | 2023年10月31日 |
0.3.0 | 2023年1月4日 |
0.2.1 | 2022年12月8日 |
0.1.1 | 2022年7月5日 |
#7 in #壁纸
在 konachan-wallpaper 中使用
40KB
869 行
more-wallpapers
又一个可以按屏幕设置壁纸的壁纸库。
与其他库(如 wallpaper 或 wall)相比,其主要特性是可以在不同的屏幕上设置不同的壁纸。目前,此功能仅在某些环境中实现。因此,您可以启用 fallback
功能,使用 自定义版本的 wallpaper 库作为不支持环境中的后备。这意味着您可以使用此库的附加功能,同时仍然支持大量环境。
目前支持以下环境
环境 | 设置壁纸 | 按屏幕设置壁纸 | 要求 |
---|---|---|---|
Windows | ✅ | ❌ | features=["fallback"] ¹ |
MacOS | ✅ | ❌ | features=["fallback"] ¹ |
X11³ | ✅ | ✅ | xwallpaper, libxrandr² |
Budgie(wayland) | ✅ | ❌ | features=["fallback"] ¹ |
Cinnamon⁴ | ✅ | ✅ | xwallpaper, libxrandr² |
Deepin(wayland) | ✅ | ❌ | features=["fallback"] ¹ |
GNOME(wayland) | ✅ | ❌ | features=["fallback"] ¹ |
KDE | ✅ | ✅ | |
Mate(wayland) | ✅ | ❌ | features=["fallback"] ¹ |
Sway | ✅ | ✅ | |
XFCE | ✅ | ✅ |
¹ 请也查看 wallpaper 库的要求。
² 通常已安装。
³ 重启后壁纸将被重置。
⁴ 重启后壁纸将被重置为默认值。
当前支持的功能信息也由 Environment
枚举提供。
快速入门/示例
如果您只想为每个屏幕设置不同的壁纸,而不关心哪个屏幕使用哪个壁纸,您可以使用set_wallpapers_from_vec()
或set_random_wallpapers_from_vec()
(仅在使用了rand
特性时可用)
use more_wallpapers::Mode;
let images = vec!["1.jpg", "/usr/share/wallpapers/2.jpg"];
more_wallpapers::set_wallpapers_from_vec(images, "default.jpg", Mode::Crop)?;
使用"default.jpg"
作为非活动屏幕的壁纸。如果您不知道在这里应该使用哪个值,您可以使用图片向量中的第一个元素。
对于高级壁纸设置,您可以使用WallpaperBuilder
use more_wallpapers::{Mode, WallpaperBuilder};
let fallback_images = vec!["/usr/share/wallpapers/1.jpg", "/usr/share/wallpapers/2.jpg"];
let mut i = 0;
WallpaperBuilder::new()?.set_wallpapers(|screen| {
i += 1;
if i == 1 {
return ("first.jpg".to_owned(), Mode::default());
}
if screen.name == "HDMI1" {
return ("/usr/share/wallpapers/hdmi.jpg".to_owned(), Mode::Fit);
}
(
fallback_images[i % fallback_images.len()].to_owned(),
Mode::Tile,
)
})?;
依赖项
~0.4–2.1MB
~40K SLoC