如何切换或关闭发送到剪贴板的文本选择

如何切换或关闭发送到剪贴板的文本选择

我想禁用我尝试过的每个 Linux 发行版中似乎发生的默认行为,即任何选定的文本都会立即发送到剪贴板(Mint、Ubuntu、Fedora、SuSE 等)和每个窗口管理器(Gnome) 、KDE、Cinnamon),而是表现得更像 Windows 实现。

我知道这是 Linux 中很多人喜爱的行为,而且我相信很多人会认为我是个白痴。我想这样做的原因是,在浏览 GUI 时我是一个键盘迷。 (例如,当我在 Linux 中复制一个 URL,然后切换到浏览器并输入 Ctrl+L 时,它会选择地址栏,并将我想要的粘贴内容下移一级,并将其替换为我想要覆盖的内容。 )我知道有很多解决方法,但我并不真正关心这一点,我更喜欢的是能够切换剪贴板的行为。

答案1

我正在闲逛,不小心启用了同步剪贴板和选择的内容KDE Plasma 剪贴板应用程序中的选项。取消选中此选项为我解决了类似的问题。

KDE Plasma 剪贴板实用程序配置

答案2

首先是一个错误的认识:

任何选定的文本都会立即发送到剪贴板

实际上,在接收应用程序请求之前,文本永远不会“发送”到任何地方。当您选择文本时,应用程序仅索赔选择,这基本上意味着它举起一面旗帜,表示从现在起它拥有它。

现在回答你的问题:

在X11中可以有多个选择。其中 2 个具有众所周知的名称并且已标准化。它们称为“主”和“剪贴板”。他们各自的常规行为如下:

  • 基本的
    • 选择文本时,应用程序声明 PRIMARY
    • 应用程序从所属应用程序请求 PRIMARY 并在单击鼠标中键时粘贴其内容。
  • 剪贴板
    • 当给出显式命令时,应用程序声明 CLIPBOARD,通常是Ctrl- c
    • 应用程序向所属应用程序请求 CLIPBOARD,并在给出显式命令(通常为Ctrl- )时粘贴其内容v
    • 可能还有其他我不确定的规则,例如如果没有应用程序拥有 CLIPBOARD 但某些应用程序拥有 PRIMARY,则将 Primary 粘贴到Ctrl-上v

看来 CLIPBOARD 已经满足了您的需要。如果需要,您可以忽略 PRIMARY(但请注意,某些较旧的应用程序xterm可能仅支持 PRIMARY)。就我个人而言,我会做相反的事情:我忽略 CLIPBOARD 并仅使用 PRIMARY。我想这就是我学习使用 X11 的方式,一开始我什至不知道有 CLIPBOARD。但为了缓解您描述的问题,我经常希望有一个可推送和可弹出的主要选择堆栈,这样我就可以在用另一个选择破坏它后“弹出”到前一个选择。

针对您关于是否可以禁用主要行为的明确问题,我认为这将是相当困难的。最直接的方法是在每个应用程序(或应用程序使用的工具包)中单独禁用它,这肯定是不可行的。我认为可以构建一种阻止请求 PRIMARY 的请求的“X11 防火墙”,但我认为这不会真正为您带来比忽略 PRIMARY 和仅使用 CLIPBOARD 所能获得的更多的东西。

更多信息:主要选择和剪贴板缓冲区有什么区别?

答案3

在 XFCE 中,我遇到了同样的问题,更糟糕的是,自动选择会破坏 x2go、vnc 等远程查看器中的复制/粘贴...然后每次选择文本时我都必须重新打开一个新会话来解决它。

解决方案:从 shell 运行 xfce4-clipman,右键单击任务栏并选择属性,然后禁用忽略选择同步选择

在此输入图像描述

感谢@sweisgerber.dev 使用此方法

答案4

对于所有 Gnome 应用程序,可以从 Gnome-Tweaks/键盘和鼠标/中键粘贴中禁用中键粘贴(这会切换 gtk-enable-primary-paste Gnome 选项)。

适用于整个 X 并且不完全禁用中键单击(例如,用于关闭浏览器中的选项卡)的解决方案是X鼠标粘贴块它应该由用户运行,它也为 Arch 打包在尿素尿率

相关内容