okey/cli/commands/
device.rs

1use anyhow::Result;
2
3use crate::{cli::utils::device::is_keyboard, fs::device as fs};
4
5pub fn list(keyboard: bool) -> Result<()> {
6    let devices = fs::find_input_devices()?;
7
8    for device in devices {
9        if keyboard && !is_keyboard(&device) {
10            continue;
11        }
12
13        let name = device.name().unwrap_or("Unknown");
14        let phys = device.physical_path().unwrap_or_default();
15        let uniq = device.unique_name().unwrap_or_default();
16        let input_id = device.input_id();
17
18        println!("• {name}");
19        println!("  ├─ Path      : {phys}");
20        println!("  ├─ Unique ID : {uniq}");
21        println!("  ├─ Vendor    : {:#06x}", input_id.vendor());
22        println!("  ├─ Product   : {:#06x}", input_id.product());
23        println!("  └─ Version   : {:#06x}", input_id.version());
24        println!();
25    }
26
27    Ok(())
28}