14 releases (5 stable)

new 2.0.1 Apr 13, 2024
1.0.2 Mar 8, 2024
1.0.1 Feb 25, 2024
0.2.2 Feb 18, 2024
0.1.5 Feb 15, 2024

#296 in GUI

Download history 11/week @ 2024-02-03 354/week @ 2024-02-10 308/week @ 2024-02-17 211/week @ 2024-02-24 84/week @ 2024-03-02 62/week @ 2024-03-09 2/week @ 2024-03-16 44/week @ 2024-03-30

174 downloads per month
Used in ruin

MIT license

34KB
833 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–39MB
~461K SLoC