X11 Clipboard – How to Toggle or Turn Off Text Selection Being Sent to Clipboard

clipboardx11

I would like to disable the default behavior that seems to happen with every Linux distribution that I've ever tried that any selected text is immediately sent to the clipboard (Mint, Ubuntu, Fedora, SuSE, etc.) and every window manager (Gnome, KDE, Cinnamon), and instead to behave more like the Windows implementation.

I know that this is a beloved behavior by many in Linux, and I'm sure many will think I'm an idiot. The reason I want to do this, is that I'm a keyboard junky when navigating a GUI. (e.g. when I'm in Linux and I copy a URL and then switch to my browser and type Ctrl+L, it selects the address bar and moves my intended paste down one notch and replaces it with what I'm trying to overwrite.) I know there are MANY workarounds, but I don't really care about that, what I'd prefer is to be able to toggle the behavior for the clipboard.

Best Answer

First a misconception:

any selected text is immediately sent to the clipboard

Actually text is never "sent" anywhere until it is requested by a receiving application. When you select text, the application only claims the selection, which means basically that it raises a flag to say that from now on it owns it.

Now on to your question:

In X11 there can be multiple selections. 2 of them have well-known names and are standardized. They are called PRIMARY and CLIPBOARD. Their respective conventional behaviors are as follows:

  • PRIMARY
    • Applications claim PRIMARY when text is selected
    • Applications request PRIMARY from the owning application and paste its contents on middle click.
  • CLIPBOARD
    • Applications claim CLIPBOARD when an explicit command is given, typically Ctrl-c.
    • Applications request CLIPBOARD from the owning application and paste its contents when an explicit command is given, typically Ctrl-v.
    • There might be additional rules I'm unsure about, like if no application owns CLIPBOARD but some application owns PRIMARY, paste primary instead upon Ctrl-v.

It seems like CLIPBOARD already does what you need. You can ignore PRIMARY if you want (but note that some older applications like xterm may only support PRIMARY). Personally I do the opposite: I ignore CLIPBOARD and use only PRIMARY. I guess that's just the way I learned to use X11, I wasn't even aware that there was CLIPBOARD at first. But in order to mitigate the problem you describe, I often wish there was a pushable & poppable stack of PRIMARY selections, so I could "pop" to the previous selection after clobbering it with a different one.

In response to your explicit question about whether the PRIMARY behaviour can be disabled, I think that would be quite difficult. The most straightforward way would be to individually disable it in each application (or toolkits which the applications use) which is surely not feasible. I suppose a kind of "X11 firewall" which blocks requests to claim PRIMARY could be constructed, but I don't think that would really buy you anything more than you can already get by ignoring PRIMARY and using CLIPBOARD only.

More information: What's the difference between Primary Selection and Clipboard Buffer?

Related Question