Add image clipboard backend on Linux

This commit is contained in:
Federico Terzi 2019-11-29 21:38:29 +01:00
parent 89d0bd8596
commit f884ade3ff

View File

@ -19,7 +19,8 @@
use std::process::{Command, Stdio}; use std::process::{Command, Stdio};
use std::io::{Write}; use std::io::{Write};
use log::error; use log::{error, warn};
use std::path::Path;
pub struct LinuxClipboardManager {} pub struct LinuxClipboardManager {}
@ -63,6 +64,29 @@ impl super::ClipboardManager for LinuxClipboardManager {
} }
} }
} }
fn set_clipboard_image(&self, image_path: &Path) {
let extension = image_path.extension();
let mime = match extension {
Some(ext) => {
let ext = ext.to_string_lossy().to_lowercase();
match ext.as_ref() {
"png" => {"image/png"},
"jpg" | "jpeg" => {"image/jpeg"},
"gif" => {"image/gif"},
"svg" => {"image/svg"},
_ => {"image/png"},
}
},
None => {"image/png"},
};
let image_path = image_path.to_string_lossy().into_owned();
let res = Command::new("xclip")
.args(&["-selection", "clipboard", "-t", mime, "-i", &image_path])
.spawn();
}
} }
impl LinuxClipboardManager { impl LinuxClipboardManager {