use dbus::blocking::Connection; use std::time::Duration; use structopt::StructOpt; #[derive(Debug, StructOpt)] #[structopt(name = "nanpac", about = "controls nanpad via dbus")] enum Cmd { Switch { workspace: u32 }, Move { workspace: u32 }, } fn main() -> Result<(), Box> { env_logger::init(); let opt = Cmd::from_args(); log::debug!("{:?}", opt); let conn = Connection::new_session()?; let proxy = conn.with_proxy("website.christine.nanpa", "/", Duration::from_millis(5000)); match opt { Cmd::Switch { workspace } => { proxy.method_call("website.christine.nanpa", "Switch", (workspace,))? } Cmd::Move { workspace } => { proxy.method_call("website.christine.nanpa", "Move", (workspace,))? } } Ok(()) }