@@ -77,7 +77,11 @@ pub fn get_clipboard_provider() -> Box<dyn ClipboardProvider> {
77 copy => "tmux", "load-buffer", "-";
77 copy => "tmux", "load-buffer", "-";
80+ #[cfg(target_os = "windows")]
81+ return Box::new(provider::WindowsProvider);
83+ #[cfg(not(target_os = "windows"))]
80− Box::new(provider::NopProvider)
84+ return Box::new(provider::NopProvider);
@@ -120,6 +124,27 @@ mod provider {
127+ #[cfg(target_os = "windows")]
129+ pub struct WindowsProvider;
131+ #[cfg(target_os = "windows")]
132+ impl ClipboardProvider for WindowsProvider {
133+ fn name(&self) -> Cow<str> {
134+ Cow::Borrowed("clipboard-win")
137+ fn get_contents(&self) -> Result<String> {
138+ let contents = clipboard_win::get_clipboard(clipboard_win::formats::Unicode)?;
142+ fn set_contents(&self, contents: String) -> Result<()> {
143+ clipboard_win::set_clipboard(clipboard_win::formats::Unicode, contents)?;
123 #[derive(Debug)]
148 #[derive(Debug)]
124 pub struct CommandConfig {
149 pub struct CommandConfig {
125 pub prg: &'static str,
150 pub prg: &'static str,