wallswitch 0.57.0

randomly selects wallpapers for multiple monitors
Documentation
/*

src/
├── cli/                  # User Interface Logic
│   ├── args.rs           # CLI argument definitions and shell completion logic.
│   └── list.rs           # Formatted table/JSON display and sorting of image metadata.
├── core/                 # Pure Data Models & Business Logic
│   ├── config.rs         # Merges defaults, config files, and CLI overrides into a single settings state.
│   ├── dimension.rs      # Image geometry logic: parsing, validating, and comparing resolutions.
│   ├── fileinfo.rs       # Core data structure for image metadata (paths, hashes, sizes, mtime).
│   ├── monitors.rs       # Configuration for multi-monitor setups and output-specific settings.
│   ├── orientation.rs    # Enums and parsing for horizontal/vertical layouts.
│   └── state.rs          # Manages persistent cache and history to prevent visual duplicates.
├── backends/             # OS-Level Side Effects
│   ├── awww.rs           # Wayland-specific transitions using the 'awww' daemon.
│   ├── desktop.rs        # Detection and identification of the current Desktop Environment.
│   ├── detector.rs       # Discovery of active physical outputs (X11, Wayland, or DRM).
│   └── wallpaper.rs      # Dispatcher logic to apply wallpapers using external tools (magick, feh).
├── utils/                # Generic Tools & Helpers
│   ├── cmd.rs            # Standardized shell command execution, logging, and error handling.
│   ├── colors.rs         # ANSI styling traits for colored and formatted terminal output.
│   ├── dependencies.rs   # Pre-flight checks to verify required system binaries are installed.
│   ├── random.rs         # Seedless randomization and Fisher-Yates shuffling algorithms.
│   └── traits.rs         # Reusable extensions for concurrency and numeric operations.
├── sys/                  # Low-Level System Integration
│   ├── environment.rs    # Safe access to OS environment variables ($HOME, $SESSION).
│   ├── pids.rs           # Process management to detect and kill previous program instances.
│   └── walkdir.rs        # Recursive filesystem scanner optimized for image filtering.
├── app.rs                # Application Heart: Orchestrates the main program flow and run cycles.
├── error.rs              # Error Handling: Centralized custom error types and error messages.
├── lib.rs                # Library Root: Organizes modules and defines public exports.
└── main.rs               # Entry Point: Minimal bootstrap that starts the app and handles fatal exits.

*/

mod app;
mod backends;
mod cli;
mod core;
mod error;
mod sys;
mod utils;

pub use self::{app::*, backends::*, cli::*, core::*, error::*, sys::*, utils::*};