https://github.com/alacritty/copypasta
Cross-platform Rust system clipboard library
https://github.com/alacritty/copypasta
clipboard cross-platform rust
Last synced: about 1 year ago
JSON representation
Cross-platform Rust system clipboard library
- Host: GitHub
- URL: https://github.com/alacritty/copypasta
- Owner: alacritty
- License: apache-2.0
- Created: 2020-01-10T21:45:08.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2025-05-09T16:33:48.000Z (about 1 year ago)
- Last Synced: 2025-06-11T15:19:32.204Z (about 1 year ago)
- Topics: clipboard, cross-platform, rust
- Language: Rust
- Size: 65.4 KB
- Stars: 332
- Watchers: 8
- Forks: 38
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.apache2
Awesome Lists containing this project
README
# copypasta
copypasta is a [rust-clipboard](https://github.com/aweinstock314/rust-clipboard) fork, adding support for the Wayland clipboard.
rust-clipboard is a cross-platform library for getting and setting the contents of the OS-level clipboard.
## Example
```rust
extern crate copypasta;
use copypasta::{ClipboardContext, ClipboardProvider};
fn main() {
let mut ctx = ClipboardContext::new().unwrap();
let msg = "Hello, world!";
ctx.set_contents(msg.to_owned()).unwrap();
let content = ctx.get_contents().unwrap();
println!("{}", content);
}
```
## API
The `ClipboardProvider` trait has the following functions:
```rust
fn get_contents(&mut self) -> Result>;
fn set_contents(&mut self, String) -> Result<(), Box>;
```
`ClipboardContext` is a type alias for one of {`WindowsClipboardContext`, `OSXClipboardContext`, `X11ClipboardContext`, `NopClipboardContext`}, all of which implement `ClipboardProvider`. Which concrete type is chosen for `ClipboardContext` depends on the OS (via conditional compilation).
## License
`rust-clipboard` is dual-licensed under MIT and Apache2.