Clipboard

According to Wikipedia:

The clipboard is a facility used for short-term data storage and/or data transfer between documents or applications, via copy and paste operations.

History

In X10, cut buffers were introduced. These were limited buffers that stored arbitrary text and were used by most applications. However, they were inefficient and implementation of them varied, so selections were introduced. Cut buffers are long deprecated, and although some applications (such as xterm) may have legacy support for them, it is both not likely and not recommended that they be used.

Selections

Freedesktop.org describes the two main selections as follows:

PRIMARY
Used for the currently selected text, even if it is not explicitly copied, and for middle-mouse-click pasting. In some cases, pasting is also possible with a keyboard shortcut.
CLIPBOARD
Used for explicit copy/paste commands involving keyboard shortcuts or menu items. Hence, it behaves like the single-clipboard system on Windows. Unlike PRIMARY, it can also handle multiple data formats.

The majority of programs for Xorg, including Qt and GTK applications, follow this behavior. While ICCCM also defines a SECONDARY selection, it does not have a consensually agreed upon purpose. Despite the naming, all three selections are basically "clipboards". Rather than the old "cut buffers" system where arbitrary applications could modify data stored in the cut buffers, only one application may control or "own" a selection at one time. This prevents inconsistencies in the operation of the selections.

See the Keyboard shortcuts page which lists the default shortcuts in many programs.

It is also important to realize that according to the selection protocols, nothing is copied until it is pasted. For example, if you select some word in a terminal window, close the terminal and then want to paste it somewhere else, it will not work because the terminal is gone and the text has not been copied anywhere. If you want the word to be preserved after closing terminal window, consider installing a clipboard manager.

Note: Clipboard managers can significantly change the user experience, for example they might synchronize the PRIMARY and CLIPBOARD selections to emulate a single-clipboard system.

Middle-click behavior

The following changes middle-click copy-pasting behavior from PRIMARY, without disabling middle click or altering its other functionalities, like opening in a new tab or scrolling, etc.

Clearing PRIMARY

Run the script

#!/bin/sh
while true; do
    xsel -fin </dev/null
done

Using sxhkd

Using sxhkd, add the following to the configuration file:

button2
    echo -n | xclip -in

Application-specific

Tools

This section lists command-line tools to manipulate the clipboards.

  • sselp Simple X selection printer. Prints the X selection to stdout.
https://tools.suckless.org/x/sselp || sselpAUR

Managers

This section lists clipboard managers which provide additional features such as clipboard history or synchronization.

  • Autocutsel Command line and daemon interfaces to synchronize PRIMARY, CLIPBOARD and cut buffer selections.
https://www.nongnu.org/autocutsel/ || autocutsel
  • Clipcat Clipboard manager written in Rust.
https://github.com/xrelkd/clipcat || clipcatAUR
  • Klipper Full featured clipboard manager for the KDE desktop.
https://userbase.kde.org/Klipper || plasma-workspace
  • xcmenu Clipboard synchronizer developed for window manager users.
https://github.com/dindon-sournois/xcmenu || xcmenu-gitAUR
gollark: Golang also has horrendous error handling which is basically going back to the C days.
gollark: Right now I can still say lol no generics because they haven't added them yet.
gollark: You should not try go because go bad.
gollark: *TCL*‽
gollark: Well, it has some web libraries, can't say much about them.

See also

This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.