Inspect Your Desktop¶

After adding the crates, put this program in your application’s src/main.rs and run cargo run. It does not move icons or change flags.

use rdi_core::DesktopController;
use rdi_platform_windows::{FolderFlag, WindowsBackend};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let controller = DesktopController::new(WindowsBackend::new())?;
    for icon in controller.list_icons()? {
        println!("{}: {:?}, {:?}, {}", icon.display_name, icon.position, icon.path, icon.id);
    }
    let desktop = controller.desktop_info()?;
    println!("Desktop: {desktop:#?}");
    let flags = controller.get_flags()?;
    println!("Snap enabled: {}", flags & FolderFlag::SnapToGrid.bits() != 0);
    Ok(())
}

The desktop concept page explains the returned objects and coordinates. Continue with guides for concrete recipes or examples for complete programs.