3 unstable releases
0.2.0 | Feb 13, 2020 |
---|---|
0.1.1 | Feb 13, 2020 |
0.1.0 | Feb 13, 2020 |
#858 in Unix APIs
69 downloads per month
Used in 3 crates
32KB
340 lines
rust-clipboard-ext
A clipboard library providing useful extensions for the
rust-clipboard
library.
I had a growing annoyance with rust-clipboard
, 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 clipboard-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
: invokesxclip
/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 clipboard
Example
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.
use clipboard_ext::prelude::*;
use clipboard_ext::x11_fork::ClipboardContext;
fn main() {
let mut ctx = ClipboardContext::new().unwrap();
println!("{:?}", ctx.get_contents());
ctx.set_contents("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.
use clipboard_ext::prelude::*;
use clipboard_ext::x11_bin::ClipboardContext;
fn main() {
let mut ctx = ClipboardContext::new().unwrap();
println!("{:?}", ctx.get_contents());
ctx.set_contents("some string".into()).unwrap();
}
Requirements
- Rust 1.40 or above
- Same requirements as
rust-clipboard
- Requirements noted in specific clipboard context modules
Special thanks
- to
aweinstock314
for buildingrust-clipboard
- to everyone involved in all crate dependencies used
License
This project is dual-licensed under the MIT and Apache2 license.
Dependencies
~0–5MB
~15K SLoC