33 lines
827 B
Rust
33 lines
827 B
Rust
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<dyn std::error::Error>> {
|
|
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(())
|
|
}
|