signal json clipboard writing
This commit is contained in:
@ -1,17 +1,38 @@
|
||||
use arboard::Clipboard;
|
||||
use rklipd::ClipboardEntry;
|
||||
use clipboard_master::Master;
|
||||
use rklipd::{ClipboardEntry, Handler};
|
||||
use std::error::Error;
|
||||
use std::sync::mpsc::channel;
|
||||
|
||||
// X11
|
||||
fn main() -> Result<(), Box<dyn Error>> {
|
||||
let mut clipboard = Clipboard::new()?;
|
||||
let entry = ClipboardEntry::new(&mut clipboard)?;
|
||||
let path = "clipboard.json";
|
||||
match ClipboardEntry::new_json(path) {
|
||||
Ok(_) => println!("JSON file created {}", path),
|
||||
Err(e) => println!("{}", e),
|
||||
ClipboardEntry::new_json(path).unwrap_or(());
|
||||
|
||||
let (tx, rx) = channel();
|
||||
|
||||
let mut master = Master::new(Handler { clipboard_tx: tx })?;
|
||||
// let shutdown = master.shutdown_channel();
|
||||
std::thread::spawn(move || {
|
||||
if let Err(e) = master.run() {
|
||||
eprintln!("Clipboard monitor error : {}", e);
|
||||
}
|
||||
});
|
||||
|
||||
println!("Monitoring clipboard X11...");
|
||||
|
||||
for _ in rx {
|
||||
println!("Clipboard changed!");
|
||||
if let Ok(entry) = ClipboardEntry::new(&mut clipboard) {
|
||||
if let Err(e) = entry.append_json(path) {
|
||||
eprintln!("JSON writing error: {}", e);
|
||||
} else {
|
||||
println!("JSON edited!");
|
||||
}
|
||||
}
|
||||
}
|
||||
entry.write_entry_json(path)?;
|
||||
let loaded_entry = ClipboardEntry::read_entry_json(path)?;
|
||||
println!("{:#?}", loaded_entry);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
// X11
|
||||
|
||||
Reference in New Issue
Block a user