A clipboard library providing useful extensions for the
copypasta
library.
I had a growing annoyance with copypasta
, because the clipboard is
cleared on the Linux/X11 platform when your application exists as per X11
design. The crate maintainer didn't want to implement workarounds (for valid
reasons). This copypasta-ext
crate provides additional
clipboard contexts that solve this, along with a few other additions.
Here are some of these additions:
X11ForkClipboardProvider
:
forks process and sets clipboard, keeps contents after exitX11BinClipboardProvider
:
invokes xclip
/xsel
to set clipboard, keeps contents after exitOsc52ClipboardContext
:
use OSC 52 escape sequence to set clipboard contentsCombinedClipboardProvider
:
combine two providers, use different for getting/setting clipboardThis crate should work with the latest copypasta
. Feel free to
open an issue or pull request otherwise. The copypasta
crate is exposed as
copypasta_ext::copypasta
.
Get and set clipboard contents. Keeps contents in X11 clipboard after exit by
forking the process. Falls back to standard clipboard provider on non X11 platforms.
See x11_fork
module for details.
```rust use copypastaext::prelude::*; use copypastaext::x11_fork::ClipboardContext;
fn main() { let mut ctx = ClipboardContext::new().unwrap(); println!("{:?}", ctx.getcontents()); ctx.setcontents("some string".into()).unwrap(); } ```
Get and set clipboard contents. Keeps contents in X11 clipboard after exit by
invoking xclip
/xsel
. Falls back to standard clipboard provider on non X11
platforms. See x11_bin
module for details.
```rust use copypastaext::prelude::*; use copypastaext::x11_bin::ClipboardContext;
fn main() { let mut ctx = ClipboardContext::new().unwrap(); println!("{:?}", ctx.getcontents()); ctx.setcontents("some string".into()).unwrap(); } ```
copypasta
rust-clipboard
and copypasta
This project is dual-licensed under the MIT and Apache2 license.