如何更改 X11 中将某些内容复制到 PRIMARY 选择的触发器?

如何更改 X11 中将某些内容复制到 PRIMARY 选择的触发器?

据我了解,在 X11 下我们基本上有 2 种复制和粘贴内容的方法:主选择和剪贴板选择。使用 ctrl-c 显式复制某些内容将利用剪贴板选择,并且有许多应用程序可以为您管理剪贴板。

但我感兴趣的是改变主选择行为,特别是我希望让 X11 停止自动将所选文本复制到主选择。 我的最终目标是能够用鼠标选择文本,然后如果我想复制它,可以用鼠标滚轮中键单击(或者如果更容易实施则将其删除)。我基本上想实施一个额外的步骤将内容复制到 PRIMARY 中。

我还希望能够通过再次单击鼠标中键来粘贴最近复制的文本。这是粘贴主选择的默认行为,因此如果我们使用主选择来复制内容,这应该起作用。 (但是,如果我们能够以某种方式重新映射所有内容以使用剪贴板,我们将获得粘贴图像的能力,我认为这是不可能用 PRIMARY 做到的)

实现这一目标的最佳方法是什么?这是 xorg 设置吗?我是否应该完全禁用主选择并使用某种键绑定应用程序通过剪贴板选择来实现此行为?有剪贴板管理器可以为我做这个吗?我目前正在使用 Klipper,KDE/plasma 附带的剪贴板管理器,但这似乎不是一个选项。

答案1

我的最终目标是能够用鼠标选择文本,然后如果我想复制它,可以用鼠标滚轮单击鼠标中键。

每个 X11 应用程序决定(并且经常硬编码)它使用什么绑定来与 Primary 交互。

拥有主数据库的传统方法(称为复制到主数据库)是简单地进行选择并单击鼠标中键即可从中粘贴。这已经是默认的雅典娜小部件集(从 80 年代开始,可能是第一个 X 小部件库),正如您可以在其中看到的文本小部件的规范。可以更改 Athena 的绑定,并且主题 通过translationsX 资源的应用程序(示例Arch 维基:XTerm在 Xterm 中滚动一行)。坏消息是,此类 GUI 是遗留的,并且大多数基于 Qt、GTK 等的现代 X11 应用程序不仅不使用资源translations,而且通常还对其按键进行硬编码。1

此外,尽管这些主要绑定非常巩固(对于像 XTerm 这样古老的程序到像 Firefox 这样的现代程序来说也是如此),但它们并不是一成不变的。对于有鼠标意识的人来说Ncurses程序 - 例如 Midnight Commander、启用鼠标支持的 Vim - 复制绑定是 Shift+MouseSelection。2

尽管没有什么可以阻止剪贴板管理器窥探主要内容/所有权并根据任意键绑定控制主要内容,其方式类似于中描述的方式此处的剪贴板管理器部分,我认为这样的程序还不存在。

进一步阅读:

1:就其价值而言,我从未见过 GTK 或 Qt 应用程序可以让我选择主键绑定。
2:Vim 只能使用键盘从 Primary 复制或粘贴

相关内容