{"id":16162873,"url":"https://github.com/luckyturtledev/more-wallpapers","last_synced_at":"2026-03-08T06:31:50.283Z","repository":{"id":37505615,"uuid":"491937160","full_name":"LuckyTurtleDev/more-wallpapers","owner":"LuckyTurtleDev","description":"rust crossplatform library to set desktop wallpaper per screen","archived":false,"fork":false,"pushed_at":"2024-03-29T13:27:23.000Z","size":115,"stargazers_count":3,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-28T12:44:46.193Z","etag":null,"topics":["background","desktop","rust","wallpaper"],"latest_commit_sha":null,"homepage":"https://crates.io/crates/more-wallpapers","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LuckyTurtleDev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-13T14:49:57.000Z","updated_at":"2024-06-11T19:48:06.000Z","dependencies_parsed_at":"2023-02-02T20:16:46.356Z","dependency_job_id":"539b4262-1c20-45a9-ab9c-95e1f45e3ab1","html_url":"https://github.com/LuckyTurtleDev/more-wallpapers","commit_stats":{"total_commits":93,"total_committers":5,"mean_commits":18.6,"dds":"0.29032258064516125","last_synced_commit":"641678d2aad8fb1d396da0f8bc44ea1ecce2a9bd"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuckyTurtleDev%2Fmore-wallpapers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuckyTurtleDev%2Fmore-wallpapers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuckyTurtleDev%2Fmore-wallpapers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuckyTurtleDev%2Fmore-wallpapers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LuckyTurtleDev","download_url":"https://codeload.github.com/LuckyTurtleDev/more-wallpapers/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243950961,"owners_count":20373663,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["background","desktop","rust","wallpaper"],"created_at":"2024-10-10T02:33:37.503Z","updated_at":"2026-03-08T06:31:50.232Z","avatar_url":"https://github.com/LuckyTurtleDev.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# more-wallpapers ![License: MIT OR Apache-2.0](https://img.shields.io/badge/license-MIT%20OR%20Apache--2.0-blue) [![more-wallpapers on crates.io](https://img.shields.io/crates/v/more-wallpapers)](https://crates.io/crates/more-wallpapers) [![more-wallpapers on docs.rs](https://docs.rs/more-wallpapers/badge.svg)](https://docs.rs/more-wallpapers) [![Source Code Repository](https://img.shields.io/badge/Code-On%20GitHub-blue?logo=GitHub)](https://github.com/LuckyTurtleDev/more-wallpapers) ![Rust Version: 1.65.0](https://img.shields.io/badge/rustc-1.65.0-orange.svg)\n\nYet another wallpaper crate, which can set a wallpapers per screen.\n\nThe main feature over other crates like [wallpaper][__link0] or [wall][__link1] is the ability to set **different wallpapers** on different screens. Currently this feature is only implemented for some environments. Because of this you can enable the `fallback` feature, to use a [custom version][__link2] of the [wallpaper][__link3] crate as a fallback on unsupported environments. This means you can use the additonal features of this crate and still support a large amount of environments.\n\nCurrently the following environments are supported:\n\n| environment | set wallpaper | set wallpaper per screen | requirements |\n| --- |:---:|:---:| --- |\n| Windows | ✅ | ❌ | `features=[\"fallback\"]`¹ |\n| MacOS | ✅ | ❌ | `features=[\"fallback\"]`¹ |\n| X11³ | ✅ | ✅ | [xwallpaper][__link4], [libxrandr][__link5]² |\n| Budgie(wayland) | ✅ | ❌ | `features=[\"fallback\"]`¹ |\n| Cinnamon⁴ | ✅ | ✅ | [xwallpaper][__link6], [libxrandr][__link7]² |\n| Deepin(wayland) | ✅ | ❌ | `features=[\"fallback\"]`¹ |\n| GNOME(wayland) | ✅ | ❌ | `features=[\"fallback\"]`¹ |\n| KDE | ✅ | ✅ |  |\n| Mate(wayland) | ✅ | ❌ | `features=[\"fallback\"]`¹ |\n| Sway | ✅ | ✅ |  |\n| XFCE | ✅ | ✅ |  |\n\n¹ Please check also the requirements of the [wallpaper][__link8] crate.\u003cbr/\u003e ² Normally already installed.\u003cbr/\u003e ³ Wallpapers will be reset after restart. \u003cbr/\u003e ⁴ Wallpapers will be reset to provided default after restart.\n\nThe information about the currently supported features are also provided by the [`Environment`][__link9] enum.\n\n\n### QuickStart / Examples:\n\nIf you would like to set only a different wallpaper for each screen and don’t care which wallpaper is used on which screen, you can use [`set_wallpapers_from_vec()`][__link10] or [`set_random_wallpapers_from_vec()`][__link11] (only aviable with the `rand` feature):\n\n\n```rust\nuse more_wallpapers::Mode;\n\nlet images = vec![\"1.jpg\", \"/usr/share/wallpapers/2.jpg\"];\nmore_wallpapers::set_wallpapers_from_vec(images, \"default.jpg\", Mode::Crop)?;\n```\n\nThe `\"default.jpg\"` is used as wallpaper for [inactive screens][__link12]. If you do not know witch value you shoud use here, you can simple use the first elment of the images vec.\n\nFor advanced wallpaper settings you can use the [`WallpaperBuilder`][__link13]:\n\n\n```rust\nuse more_wallpapers::{Mode, WallpaperBuilder};\n\nlet fallback_images = vec![\"/usr/share/wallpapers/1.jpg\", \"/usr/share/wallpapers/2.jpg\"];\nlet mut i = 0;\nWallpaperBuilder::new()?.set_wallpapers(|screen| {\n\ti += 1;\n\tif i == 1 {\n\t\treturn (\"first.jpg\".to_owned(), Mode::default());\n\t}\n\tif screen.name == \"HDMI1\" {\n\t\treturn (\"/usr/share/wallpapers/hdmi.jpg\".to_owned(), Mode::Fit);\n\t}\n\t(\n\t\tfallback_images[i % fallback_images.len()].to_owned(),\n\t\tMode::Tile,\n\t)\n})?;\n```\n\n\n\n [__cargo_doc2readme_dependencies_info]: ggGkYW0BYXSEG_W_Gn_kaocAGwCcVPfenh7eGy6gYLEwyIe4G6-xw_FwcbpjYXKEG9GIfJPZsn4fG2Jv3ZDwtk2wG3mXKLFhqSX8G07FLfx08l7TYWSBg29tb3JlLXdhbGxwYXBlcnNlMC40LjBvbW9yZV93YWxscGFwZXJz\n [__link0]: https://crates.io/crates/wallpaper\n [__link1]: https://crates.io/crates/wall\n [__link10]: https://docs.rs/more-wallpapers/0.4.0/more_wallpapers/?search=set_wallpapers_from_vec\n [__link11]: `set_random_wallpapers_from_vec()`\n [__link12]: https://docs.rs/more-wallpapers/0.4.0/more_wallpapers/?search=Screen::active\n [__link13]: https://docs.rs/more-wallpapers/0.4.0/more_wallpapers/struct.WallpaperBuilder.html\n [__link2]: https://github.com/LuckyTurtleDev/wallpaper.rs\n [__link3]: https://crates.io/crates/wallpaper\n [__link4]: https://github.com/stoeckmann/xwallpaper\n [__link5]: https://gitlab.freedesktop.org/xorg/app/xrandr\n [__link6]: https://github.com/stoeckmann/xwallpaper\n [__link7]: https://gitlab.freedesktop.org/xorg/app/xrandr\n [__link8]: https://crates.io/crates/wallpaper\n [__link9]: https://docs.rs/more-wallpapers/0.4.0/more_wallpapers/enum.Environment.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluckyturtledev%2Fmore-wallpapers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluckyturtledev%2Fmore-wallpapers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluckyturtledev%2Fmore-wallpapers/lists"}