#wallpaper

wlrs

Rust library for managing wallpapers

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

#20 in #wallpaper


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

~19–29MB
~461K SLoC