patch 9.1.1485: missing Wayland clipboard support
Problem: missing Wayland clipboard support
Solution: make it work (Foxe Chen)
fixes: #5157
closes: #17097
Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 1f2f400..d4fb51e 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt* For Vim version 9.1. Last change: 2025 Jun 18
+*options.txt* For Vim version 9.1. Last change: 2025 Jun 27
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1785,7 +1785,7 @@
for X-windows, "" otherwise)
global
{only in GUI versions or when the |+xterm_clipboard|
- feature is included}
+ or |+wayland_clipboard| features are included}
This option is a list of comma-separated names.
Note: if one of the items is "exclude:", then you can't add an item
after that. Therefore do not append an item with += but use ^= to
@@ -1812,10 +1812,13 @@
register. When "unnamed" is also included to the
option, yank operations (but not delete, change or
put) will additionally copy the text into register
- '*'.
- Only available with the |+X11| feature.
- Availability can be checked with: >
- if has('unnamedplus')
+ '*'. If wayland is being used and the compositor does
+ not support the primary-selection-unstable-v1
+ protocol, then the regular selection is used in its
+ place. Only available with the |+X11| or
+ |+wayland_clipboard| feature. Availability can be
+ checked with: >
+ if has('unnamedplus')
<
*clipboard-autoselect*
autoselect Works like the 'a' flag in 'guioptions': If present,
@@ -1852,24 +1855,54 @@
exclude:{pattern}
Defines a pattern that is matched against the name of
the terminal 'term'. If there is a match, no
- connection will be made to the X server. This is
- useful in this situation:
+ connection will be made to the X server or wayland
+ compositor. This is useful in this situation:
- Running Vim in a console.
- - $DISPLAY is set to start applications on another
- display.
- - You do not want to connect to the X server in the
- console, but do want this in a terminal emulator.
- To never connect to the X server use: >
+ - $DISPLAY/$WAYLAND_DISPLAY is set to start
+ applications on another display.
+ - You do not want to connect to the X server/Wayland
+ compositor in the console, but do want this in a
+ terminal emulator.
+ To never connect to the X server/Wayland compositor
+ use: >
exclude:.*
-< This has the same effect as using the |-X| argument.
+< This has the same effect as using the |-X| or |-Y| argument.
Note that when there is no connection to the X server
the window title won't be restored and the clipboard
- cannot be accessed.
+ cannot be accessed. This is the same for Wayland,
+ except there is no title restoring.
The value of 'magic' is ignored, {pattern} is
interpreted as if 'magic' was on.
The rest of the option value will be used for
{pattern}, this must be the last entry.
+ *'clipmethod'* *'cpm'*
+'clipmethod' 'cpm' string (default for Unix: "wayland,x11",
+ for VMS: "x11",
+ otherwise: "")
+
+ global
+ {only when the |+xterm_clipboard| or |+wayland_clipboard|
+ features are included}
+ Specifies which method of accessing the system clipboard is used,
+ depending on which method works first or is available. Supported
+ methods are:
+ wayland Wayland selections
+ x11 X11 selections
+
+ Note: This option is ignored when either the GUI is running or if Vim
+ is run on a system without wayland or X11 support, such as Windows or
+ macOS. The GUI or system way of accessing the clipboard is always
+ used instead.
+
+ The option value is a list of comma separated items. The list is parsed
+ left to right in order, and the first method that Vim determines is
+ available or is working is used as the actual method for accessing the
+ clipboard.
+
+ The current method that is being used can be found in the |v:clipmethod|
+ variable.
+
*'cmdheight'* *'ch'*
'cmdheight' 'ch' number (default 1)
global or local to tab page
@@ -4586,9 +4619,9 @@
|hl-Title| t Titles for output from ":set all", ":autocmd" etc.
|hl-VertSplit| c column used to separate vertically split windows
|hl-Visual| v Visual mode
- |hl-VisualNOS| V Visual mode when Vim does is "Not Owning the
- Selection" Only X11 Gui's |gui-x11| and
- |xterm-clipboard|.
+ |hl-VisualNOS| V Visual mode when Vim is "Not Owning the
+ Selection" Only X11 Gui's |gui-x11|,
+ |xterm-clipboard| and |wayland-selections|
|hl-WarningMsg| w warning messages
|hl-WildMenu| W wildcard matches displayed for 'wildmenu'
|hl-Folded| f line used for closed folds
@@ -10043,6 +10076,40 @@
'winwidth' applies to the current window. Use 'winminwidth' to set
the minimal width for other windows.
+ *'wlseat'* *'wse'*
+'wlseat' 'wse' string (default "")
+ global
+ {only when the |+wayland| feature is included}
+ Specifies the Wayland seat to use for Wayland functionality,
+ specifically the clipboard. If the seat does not exist, then the
+ option will still be set to the new value, with the Wayland clipboard
+ being unavailable as a result. If an empty value is passed then Vim
+ will attempt to use the value of $XDG_SEAT if it exists, if not then
+ it resorts to using the first seat found available. Updating this
+ option will also update |v:clipmethod|.
+
+ *'wlsteal'* *'wst'* *'nowlsteal'* *'nowst'*
+'wlsteal' 'wst' boolean (default off)
+ global
+ {only when the |+wayland_clipboard| feature is included}
+ When enabled, then allow Vim to steal focus by creating a temporary
+ surface, in order to access the clipboard. For more information see
+ |wayland-focus-steal|.
+
+ *'wltimeoutlen'* *'wtm'*
+'wltimeoutlen' 'wtm' number (default 500)
+ global
+ {only when the |+wayland| feature is included}
+ The timeout in milliseconds before Vim gives up on waiting for the
+ Wayland compositor. While Vim waits on the compositor, it is
+ unresponsive to input and does not update the screen. Therefore
+ setting this to a lower value may make Vim feel more responsive in
+ some cases. On the other hand, it may also mean you receive errors
+ when the compositor takes more time to respond than usual.
+
+ Additionally, this option is also used as the maximum timeout when
+ waiting for a surface to gain focus, see |wayland-focus-steal|.
+
*'wrap'* *'nowrap'*
'wrap' boolean (default on)
local to window