我想在 XTerm 和其他应用程序中使用CTRLSHIFTC和CTRLSHIFTV进行复制和粘贴,所以我添加了
XTerm*vt100.translations: #override \
Shift Ctrl <Key> C: copy-selection(CLIPBOARD) \n\
Shift Ctrl <Key> V: insert-selection(CLIPBOARD)
给我的~/.Xresources
。只要我不关闭 XTerm,复制粘贴就可以正常工作。然后,所有CLIPBOARD
内容都会丢失。使用时也会出现同样的问题
XTerm*vt100.selectToClipboard: true
一旦文本被选择,它就会被直接复制到CLIPBOARD
(而不是复制到PRIMARY
- 或者可能复制到两者?),但只有在 XTerm 运行时才可用。
所以,我读了更多关于CLIPBOARD
- https://www.jwz.org/doc/x-cut-and-paste.html
- https://mutelight.org/subtleties-of-the-x-clipboard
- https://en.wikipedia.org/wiki/X_Window_selection
- 如何在关闭选择窗口后按 Shift+Insert 粘贴选择?
- https://burrows.svbtle.com/universal-copy-paste-in-linux
……但找不到明确的答案。似乎存在能够同步的工具CLIPBOARD
,PRIMARY
例如。或者让CLIPBOARD
内容持久化。或者某种CLIPBOARD
历史。但我不确定这就是我正在寻找的东西。
例如:如果CLIPBOARD
内容并未真正离开应用程序,并且其他程序必须向原始应用程序“询问” 的内容CLIPBOARD
,那么只有当该程序正在运行时这才可能实现,这是有道理的。但是,CLIPBOARD
即使程序已关闭,从 Firefox 或 Leafpad 中选择的文本如何保持可用? Firefox/Leafpad 如何做到这一点?他们不使用外部工具,不是吗?
答案1
在X下,并没有真正的剪贴板。所有选择(主要、辅助剪贴板)都是通过让所涉及的两个 X 客户端相互通信来复制的。 (例如参见维基百科文章了解详情)。
这意味着如果持有该选择的一个 X 客户端不再运行,则该选择就会消失。
你能做的就是跑其他客户端,例如,一旦做出选择,xclipboard
它就会立即从您的(或任何其他 X 客户端)复制选择,并且即使不再运行也能够参与上述通信。当然,现在你必须继续奔跑……xterm
xterm
xclipboard
我从未观察到 Firefox 以某种方式做不同的事情,但如果在 Firefox 关闭后该选择确实可用,则其他一些 X 客户端必须仍在运行,可能是您桌面的一部分。所以,是的,Firefox 必须使用某种外部工具(但正如我所说,我自己没有观察到这一点。但是,我不是在这个意义上使用“桌面”,只是fvwm
)。