10 个版本
0.4.4 | 2023年2月23日 |
---|---|
0.4.3 | 2023年2月20日 |
0.4.1 | 2023年1月19日 |
0.3.9 | 2022年6月18日 |
0.3.0 | 2020年5月28日 |
#105 in Unix APIs
10,955 月下载量
用于 24 个crate (19 直接)
52KB
723 行代码(不含注释)
copypasta-ext
一个为 copypasta
库提供有用扩展的剪贴板库。
我对 copypasta
有一点点烦恼,因为按照 X11 的设计,在 Linux/X11 平台上,当你的应用程序退出时,剪贴板会被清除。crate 维护者不想实现解决方案(有正当的理由)。这个 copypasta-ext
crate 提供了额外的剪贴板上下文来解决这个问题,还有一些其他的功能。
以下是其中一些功能
X11ForkClipboardProvider
:分叉进程并设置剪贴板,在退出后保持内容X11BinClipboardProvider
:调用xclip/
xsel
来设置剪贴板,在退出后保持内容Osc52ClipboardContext
:使用 OSC 52 转义序列来设置剪贴板内容CombinedClipboardProvider
:合并两个提供者,分别用于获取/设置剪贴板
要运行时猜测最佳剪贴板提供者,请查看 DisplayServer
类。为支持剪贴板系统启用所有所需的编译器功能标志,并使用 DisplayServer::select().try_context()
来获取剪贴板上下文。
这个crate应与最新的 copypasta
一起工作。如有其他问题或pull request,请随时提出。 copypasta
crate作为 copypasta_ext::copypasta
暴露。
示例
获取和设置剪贴板内容。通过分叉进程在 X11 剪贴板中保留内容。在非 X11 平台上回退到标准剪贴板提供者。有关详细信息,请参阅 x11_fork
模块。
use copypasta_ext::prelude::*;
use copypasta_ext::x11_fork::ClipboardContext;
fn main() {
let mut ctx = ClipboardContext::new().unwrap();
println!("{:?}", ctx.get_contents());
ctx.set_contents("some string".into()).unwrap();
}
获取和设置剪贴板内容。通过调用 xclip
/xsel
保持退出后X11剪贴板内容。在非X11平台上回退到标准剪贴板提供者。有关详细信息,请参阅x11_bin
模块。
use copypasta_ext::prelude::*;
use copypasta_ext::x11_bin::ClipboardContext;
fn main() {
let mut ctx = ClipboardContext::new().unwrap();
println!("{:?}", ctx.get_contents());
ctx.set_contents("some string".into()).unwrap();
}
要求
- Rust 1.60或更高版本(MSRV)
- 与
copypasta
相同的要求 - 特定剪贴板上下文模块中的要求
特别感谢
- 维护者/贡献者
rust-clipboard
和copypasta
- 参与所有crate依赖项的每个人
许可证
依赖关系
~0–9.5MB
~98K SLoC