In window systems, such as X, data can be transferred between different applications by means of selections. X defines an arbitrary number of selection types, each of which can store its own data; however, only three are commonly used: the clipboard, primary selection, and secondary selection. Other window systems support only the clipboard. See Cut and Paste in The GNU Emacs Manual, for Emacs commands that make use of these selections. This section documents the low-level functions for reading and setting window-system selections.
This function sets a window-system selection. It takes two arguments: a selection type type, and the value to assign to it, data.
type should be a symbol; it is usually one of PRIMARY
,
SECONDARY
or CLIPBOARD
. These are symbols with
upper-case names, in accord with X Window System conventions. If
type is nil
, that stands for PRIMARY
.
If data is nil
, it means to clear out the selection.
Otherwise, data may be a string, a symbol, an integer, an
overlay, or a cons of two markers pointing to the same buffer. An
overlay or a pair of markers stands for text in the overlay or between
the markers. The argument data may also be a vector of valid
non-vector selection values.
If data is a string, then its text properties can specify values
used for individual data types. For example, if data has a
property named text/uri-list
, then a call to
gui-get-selection
with the data type text/uri-list
will
result in the value of that property being used instead of data
itself.
This function returns data.
This function accesses selections set up by Emacs or by other
programs. It takes two optional arguments, type and
data-type. The default for type, the selection type, is
PRIMARY
.
The data-type argument specifies the form of data conversion to
use, to convert the raw data obtained from another program into Lisp
data. Meaningful values include TEXT
, STRING
,
UTF8_STRING
, TARGETS
, LENGTH
, DELETE
,
FILE_NAME
, CHARACTER_POSITION
, NAME
,
LINE_NUMBER
, COLUMN_NUMBER
, OWNER_OS
,
HOST_NAME
, USER
, CLASS
, ATOM
, and
INTEGER
. (These are symbols with upper-case names in accord
with X conventions.) The default for data-type is
STRING
. Window systems other than X usually support only a
small subset of these types, in addition to STRING
.
This variable specifies the coding system to use when reading and
writing selections or the clipboard. See Coding Systems. The default is compound-text-with-extensions
, which
converts to the text representation that X11 normally uses.
When Emacs runs on MS-Windows, it does not implement X selections in
general, but it does support the clipboard. gui-get-selection
and gui-set-selection
on MS-Windows support the text data type
only; if the clipboard holds other types of data, Emacs treats the
clipboard as empty. The supported data type is STRING
.
For backward compatibility, there are obsolete aliases
x-get-selection
and x-set-selection
, which were the
names of gui-get-selection
and gui-set-selection
before
Emacs 25.1.