@@ -56,16 +56,29 @@ macro_rules! command_provider {
59pub fn get_clipboard_provider() -> Box<dyn ClipboardProvider> {
60pub fn get_clipboard_provider() -> Box<dyn ClipboardProvider> {
60− // TODO: support for user-defined provider, probably when we have plugin support by setting a
61+ Box::new(provider::WindowsProvider::default())
64+#[cfg(target_os = "macos")]
65+pub fn get_clipboard_provider() -> Box<dyn ClipboardProvider> {
63 if exists("pbcopy") && exists("pbpaste") {
66 if exists("pbcopy") && exists("pbpaste") {
64 command_provider! {
67 command_provider! {
65 paste => "pbpaste";
68 paste => "pbpaste";
66 copy => "pbcopy";
69 copy => "pbcopy";
72+ Box::new(provider::NopProvider::new())
76+#[cfg(not(any(windows, target_os = "macos")))]
77+pub fn get_clipboard_provider() -> Box<dyn ClipboardProvider> {
78+ // TODO: support for user-defined provider, probably when we have plugin support by setting a
68− } else if env_var_is_set("WAYLAND_DISPLAY") && exists("wl-copy") && exists("wl-paste") {
81+ if env_var_is_set("WAYLAND_DISPLAY") && exists("wl-copy") && exists("wl-paste") {
69 command_provider! {
82 command_provider! {
70 paste => "wl-paste", "--no-newline";
83 paste => "wl-paste", "--no-newline";
71 copy => "wl-copy", "--type", "text/plain";
84 copy => "wl-copy", "--type", "text/plain";
@@ -88,22 +101,6 @@ pub fn get_clipboard_provider() -> Box<dyn ClipboardProvider> {
88 primary_paste => "xsel", "-o";
101 primary_paste => "xsel", "-o";
89 primary_copy => "xsel", "-i";
102 primary_copy => "xsel", "-i";
91− } else if exists("lemonade") {
93− paste => "lemonade", "paste";
94− copy => "lemonade", "copy";
96− } else if exists("doitclient") {
98− paste => "doitclient", "wclip", "-r";
99− copy => "doitclient", "wclip";
101− } else if exists("win32yank.exe") {
102− // FIXME: does it work within WSL?
104− paste => "win32yank.exe", "-o", "--lf";
105− copy => "win32yank.exe", "-i", "--crlf";
107 } else if exists("termux-clipboard-set") && exists("termux-clipboard-get") {
104 } else if exists("termux-clipboard-set") && exists("termux-clipboard-get") {
108 command_provider! {
105 command_provider! {
109 paste => "termux-clipboard-get";
106 paste => "termux-clipboard-get";
@@ -115,11 +112,7 @@ pub fn get_clipboard_provider() -> Box<dyn ClipboardProvider> {
115 copy => "tmux", "load-buffer", "-";
112 copy => "tmux", "load-buffer", "-";
118− #[cfg(target_os = "windows")]
119− return Box::new(provider::WindowsProvider::default());
121− #[cfg(not(target_os = "windows"))]
122− return Box::new(provider::NopProvider::new());
115+ Box::new(provider::NopProvider::new())