剪贴板如何工作?

Kai*_*aia 2 clipboard xclip

从深层次上讲,将某些内容复制到剪贴板是如何工作的?是否有一个文件存储我在某处复制的文本或图像?

我找到了剪贴板的内存位置,问题从未得到解答。我还发现了很多xclip的参考。我目前没有安装 xclip,但我的剪贴板工作正常——例如,我可以从 Firefox 复制一些内容并将其粘贴到终端中,没有任何问题。因此,显然某些事情一定发生在与 xclip 不同的级别上。那是什么以及它是如何工作的?

win*_*are 5

X 处理剪贴板,您可以在此处阅读相关内容。 https://specations.freedesktop.org/clipboards-spec/clipboards-latest.txt

X11 剪贴板(称为选择)在 ICCCM 中定义。 https://www.x.org/releases/X11R7.6/doc/xorg-docs/specs/ICCCM/icccm.html

引用上面的链接。

可以有任意数量的选择,每个选择都由一个原子命名。然而,为了符合客户端间的约定,客户端只需处理以下三个选择:

基本的

中学

剪贴板

这些选择都存储在内存中,不会写入磁盘。

值得一读的是X Selections、Cut Buffers 和 Kill Ringshttps://www.jwz.org/doc/x-cut-and-paste.html

另一个值得一读的是编写跨平台剪贴板库 https://jtanx.github.io/2016/08/19/a-cross-platform-clipboard-library/

如果您对如何以语法方式与 X11 选择进行交互感兴趣,那么一定要查看 GitHub 上的 xclip 源代码。https://github.com/astrand/xclip