xclip是X剪贴板的命令行界面。当我尝试使用此工具设置安全功能时,我观察到了一些我不理解的效果。
我做的是我将循环选项设置为1将字符串换入xclip(xclip在单个粘贴事件后退出,循环设置为1),如下所示:
echo test | xclip -loops 1 -display :0 -selection c -verbose
然后,当我尝试粘贴我的Linux Mate桌面时,我观察到以下内容:粘贴到Web表单或Firefox搜索栏就像一个设置为1的循环的魅力,但粘贴到Firefox的地址栏是不可能的这个。
为了粘贴到Firefox地址栏,有必要将循环增加到2,即两个粘贴事件被“消耗”。粘贴到Google Chrome的地址栏中会消耗4个粘贴事件。即使粘贴到像Pluma这样的简单文本编辑器中也需要2个粘贴事件。
但为什么会这样呢?为什么有时需要多次提供剪贴板内容才能成功粘贴到应用程序中,为什么应用程序的行为如此不同?
IIRC有一些方案可以满足不同的缓冲区大小,因此应用程序也可以尝试多次读取选择,直到它们达到正确的缓冲区大小。此外,有时软件编写效率低,并且可能偶然多次调用相同的子程序。
—
dirkt
@dirkt感谢您提供缓冲区大小的提示。我不确定这是否重要,但我刚刚尝试粘贴不同大小的文本(最多7.5MB) - 它的效果完全相同。
—
SYN-cook