Clipboard

Related articles
Copying text from a terminal
Firefox#Middle-click behavior
GTK#Disable mouse paste
Vim#Clipboard
This article or section needs expansion.
Reason:
Describe clipboards for
Wayland
and Xwayland. Some references:
[1]
,
[2]
,
[3]
,
[4]
. (Discuss in
Talk: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 (
1985
),
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:
[5]
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.
Disabling middle-click paste
The following disables the middle-click pasting behavior by automatically clearing PRIMARY, without disabling the middle-click button or altering its other functionalities (like opening in a new tab or scrolling).
Globally
Using sxhkd
Using
sxhkd
, add the following to the
configuration file
:
~button2
    ;echo -n | xclip -in
The command makes use of
xclip
. See
sxhkd#Usage
for configuring sxhkd to autostart.
Using xsel
Run the script
#!/bin/sh
while true; do
    xsel --follow --input --nodetach </dev/null
done
Application-specific
GTK
— See
GTK#Disable mouse paste
Firefox
— See
Firefox#Middle-click behavior
LibreOffice
— Can be disabled from Tools > Options > LibreOffice > View > Mouse
Tools
This section lists command-line tools to manipulate the clipboards.
sselp
— Simple X11 selection printer. Prints the X11 selection to stdout.
https://tools.suckless.org/x/sselp
||
sselp
AUR
xclip
— A lightweight, command-line based interface to the X11 clipboard.
https://github.com/astrand/xclip
||
xclip
xsel
— Command-line program for getting and setting the contents of the X11 selection.
http://www.vergenet.net/~conrad/software/xsel/
||
xsel
wl-clipboard
— A simple copy/paste tool for
Wayland
compositors.
https://github.com/bugaevc/wl-clipboard
||
wl-clipboard
Tip
Clipboards on Wayland can be synchronized with
wl-clipboard
using
wl-paste --primary --watch wl-copy
.
Managers
This section lists clipboard managers which provide additional features such as clipboard history or synchronization.
Anamnesis
— Clipboard manager that stores all the clipboard history and offers an interface to do a full-text search. It has both a command line and GUI mode available.
https://anamnesis.sourceforge.net/
||
anamnesis
AUR
Autocutsel
— Command line and daemon interfaces to synchronize PRIMARY,
CLIPBOARD
and cut buffer selections.
https://www.nongnu.org/autocutsel/
||
autocutsel
AUR
Clipboard
— Easy-to-use clipboard manager for terminals with multiple different clipboards, persistent clipboards, and regex selection.
https://github.com/Slackadays/Clipboard
||
clipboard
AUR
Clipboard Indicator
— Clipboard manager extension for GNOME Shell. Adds a clipboard indicator to the top panel, and caches clipboard history.
https://github.com/Tudmotu/gnome-shell-extension-clipboard-indicator
||
gnome-shell-extension-clipboard-indicator-git
AUR
Clipcat
— Clipboard manager written in Rust which allows user to select clipboard history from application launchers such as
dmenu
,
rofi
.
https://github.com/xrelkd/clipcat
||
clipcat
cliphist
— wayland clipboard manager with support for multimedia.
https://github.com/sentriz/cliphist
||
cliphist
Clipman
— Clipboard manager plugin for the Xfce4 panel. It keeps the clipboard contents around while it is usually lost when you close an application. It is able to handle text and images, and has a feature to execute actions on specific text selections by matching them against regular expressions.
https://goodies.xfce.org/projects/panel-plugins/xfce4-clipman-plugin
||
xfce4-clipman-plugin
Clipmenu
— Dmenu based clipboard manager
https://github.com/cdown/clipmenu/
||
clipmenu
Clipmon
— A lightweight clipboard manager for Wayland. Intended as a monitoring tool that will send a notification when an application pastes from the clipboard on its own (this feature is a work in progress).
https://git.sr.ht/~whynothugo/clipmon
||
clipmon-git
AUR
Cursor Clip
— GTK4 Wayland Clipboard Manager written in Rust with dynamic positioning. Features a Windows 11–style clipboard history, adapted to native GNOME design.
https://github.com/Sirulex/cursor-clip
||
cursor-clip-git
AUR
clipse
— A configurable, TUI-based clipboard manager application written in Go with minimal dependency.
https://github.com/savedra1/clipse
||
clipse
AUR
clipsim
— Simple and fast X clipboard manager written in C.
https://github.com/lucas-mior/clipsim
||
clipsim-git
AUR
Clipster
— A lightweight, command-line-driven clipboard manager, written in Python.
https://github.com/mrichar1/clipster
||
clipster
AUR
Clipton
— Clipboard manager with a Rofi frontend.
https://github.com/madprops/clipton
||
clipton-git
AUR
CopyQ
— Clever Qt clipboard manager with searchable and editable history, custom actions on items and command line support.
https://github.com/hluk/CopyQ
||
copyq
Gnome Clipboard History
— Gnome Clipboard History is a clipboard manager GNOME extension that saves what you've copied into an easily accessible, searchable history panel.
https://github.com/SUPERCILEX/gnome-clipboard-history
||
gnome-shell-extension-clipboard-history
AUR
GPaste
— Clipboard management system that aims at being a new generation Parcellite, with a modular structure split in a couple of libraries and a daemon for adaptability. Offers a GNOME Shell extension and a CLI interface.
https://github.com/Keruspe/GPaste
||
gpaste
Greenclip
— Simple clipboard manager to be integrated with rofi
https://github.com/erebe/greenclip
||
rofi-greenclip
AUR
Klipper
— Full featured clipboard manager for the KDE desktop.
https://userbase.kde.org/Klipper
||
plasma-workspace
Parcellite
— Lightweight yet feature-rich clipboard manager. It has both a command line and GUI mode available.
https://parcellite.sourceforge.net/
||
parcellite
Qlipper
— Lightweight and cross-platform clipboard history applet based on Qt.
https://github.com/pvanek/qlipper/
||
qlipper
AUR
xclipboard
— Official X clipboard command-line client.
https://www.x.org/releases/X11R7.5/doc/man/man1/xclipboard.1.html
||
xorg-xclipboard
xcmenu
— Clipboard synchronizer developed for window manager users.
https://github.com/dindon-sournois/xcmenu
||
xcmenu-git
AUR
See also
Cut-and-paste in X
X Selections, Cut Buffers, and Kill Rings.
X11: How does “the” clipboard work?
Wayland's Primary selection protocol