Function: gui-set-selection

gui-set-selection is an interactive and byte-compiled function defined in select.el.gz.

Signature

(gui-set-selection TYPE DATA)

Documentation

Make an X selection of type TYPE and value DATA.

The argument TYPE (nil means PRIMARY) says which selection, and DATA specifies the contents. TYPE must be a symbol. (It can also be a string, which stands for the symbol with that name, but
this is considered obsolete.) DATA may be a string, a symbol, or
an integer.

The selection may also be a cons of two markers pointing to the same buffer, or an overlay. In these cases, the selection is considered to be the text between the markers *at whatever time the selection is examined*. Thus, editing done in the buffer after you specify the selection can alter the effective value of the selection. If DATA is a string, then its text properties can specify alternative values for different data types. For example, the value of any property named text/uri-list will be used instead of DATA itself when another program converts TYPE to the target text/uri-list.

The data may also be a vector of valid non-vector selection values.

The return value is DATA.

Interactively, this command sets the primary selection. Without prefix argument, it reads the selection in the minibuffer. With prefix argument, it uses the text of the region as the selection value.

Note that on MS-Windows, primary and secondary selections set by Emacs are not available to other programs.

View in manual

Probably introduced at or before Emacs version 25.1.

Key Bindings

Aliases

evil-set-selection x-set-selection (obsolete since 25.1)

Source Code

;; Defined in /usr/src/emacs/lisp/select.el.gz
(defun gui-set-selection (type data)
  "Make an X selection of type TYPE and value DATA.
The argument TYPE (nil means `PRIMARY') says which selection, and
DATA specifies the contents.  TYPE must be a symbol.  \(It can
also be a string, which stands for the symbol with that name, but
this is considered obsolete.)  DATA may be a string, a symbol, or
an integer.

The selection may also be a cons of two markers pointing to the
same buffer, or an overlay.  In these cases, the selection is
considered to be the text between the markers *at whatever time
the selection is examined*.  Thus, editing done in the buffer
after you specify the selection can alter the effective value of
the selection.  If DATA is a string, then its text properties can
specify alternative values for different data types.  For
example, the value of any property named `text/uri-list' will be
used instead of DATA itself when another program converts TYPE to
the target `text/uri-list'.

The data may also be a vector of valid non-vector selection values.

The return value is DATA.

Interactively, this command sets the primary selection.  Without
prefix argument, it reads the selection in the minibuffer.  With
prefix argument, it uses the text of the region as the selection value.

Note that on MS-Windows, primary and secondary selections set by Emacs
are not available to other programs."
  (interactive (if (not current-prefix-arg)
		   (list 'PRIMARY (read-string "Set text for pasting: "))
		 (list 'PRIMARY (buffer-substring (region-beginning) (region-end)))))
  (if (stringp type) (setq type (intern type)))
  (or (gui--valid-simple-selection-p data)
      (and (vectorp data)
	   (let ((valid t))
	     (dotimes (i (length data))
	       (or (gui--valid-simple-selection-p (aref data i))
		   (setq valid nil)))
	     valid))
      (signal 'error (list "invalid selection" data)))
  (or type (setq type 'PRIMARY))
  (gui-backend-set-selection type data)
  data)