15 releases (6 stable)

2.0.2 Apr 27, 2024
2.0.1 Apr 13, 2024
1.0.2 Mar 8, 2024
1.0.1 Feb 25, 2024
0.1.5 Feb 15, 2024

#285 in GUI

Download history 12/week @ 2024-02-07 634/week @ 2024-02-14 182/week @ 2024-02-21 73/week @ 2024-02-28 109/week @ 2024-03-06 22/week @ 2024-03-13 4/week @ 2024-03-27 6/week @ 2024-04-03 320/week @ 2024-04-10 17/week @ 2024-04-17 528/week @ 2024-04-24 13/week @ 2024-05-01

878 downloads per month
Used in ruin

MIT license

34KB
834 lines

WLRS /wɔːlrəs/ crate Build Status codecov docs

Rust library for managing wallpapers

Supported environments

  • Every Wayland compositor that implements layer-shell (e.g. Hyprland, Sway, Wayfire, etc.)
  • X11 environments that don't have their own wallpaper management (e.g. dwm, i3, bspwm, etc.)

Examples:

Setting from memory:

use wlrs::set_from_memory;

fn main() {
  // Set to first monitor
  let wallpaper = image::open("wallpaper.jpg").unwrap();
  set_from_memory(wallpaper, vec![0]).unwrap();

  // Set to multiple monitors
  let wallpaper = image::open("wallpaper.jpg").unwrap();
  set_from_memory(wallpaper, vec![0, 1]).unwrap();

  // Set to all monitors
  let wallpaper = image::open("wallpaper.jpg").unwrap();
  set_from_memory(wallpaper, Vec::new()).unwrap();
}

Setting from file path:

use wlrs::set_from_path;

fn main() {
  // Set to first monitor
  set_from_path("wallpaper.jpg", vec![0]).unwrap();

  // Set to multiple monitor
  set_from_path("wallpaper.jpg", vec![0, 1]).unwrap();
  
  // Set to all monitors
  set_from_path("wallpaper.jpg", Vec::new())unwrap();
}

TODO

  • Better errors
  • Add different crop modes
  • Fix crashing when new output added

Dependencies

~27–37MB
~455K SLoC