console: use wl-paste on Wayland

This commit is contained in:
Guido Cella 2020-12-14 20:18:55 +01:00 committed by Dudemanguy
parent bff5416dae
commit 7ca14d646c
2 changed files with 13 additions and 3 deletions

View File

@ -36,7 +36,7 @@ INSERT
Toggle insert mode.
Shift+INSERT
Paste text (uses the primary selection on X11).
Paste text (uses the primary selection on X11 and Wayland).
TAB
Complete the command or property name at the cursor.
@ -54,7 +54,7 @@ Ctrl+U
Delete text from the cursor to the beginning of the line.
Ctrl+V
Paste text (uses the clipboard on X11).
Paste text (uses the clipboard on X11 and Wayland).
Ctrl+W
Delete text from the cursor to the beginning of the current word.

View File

@ -36,6 +36,8 @@ function detect_platform()
return 'windows'
elseif mp.get_property_native('options/macos-force-dedicated-gpu', o) ~= o then
return 'macos'
elseif os.getenv('WAYLAND_DISPLAY') then
return 'wayland'
end
return 'x11'
end
@ -609,6 +611,14 @@ function get_clipboard(clip)
if not res.error then
return res.stdout
end
elseif platform == 'wayland' then
local res = utils.subprocess({
args = { 'wl-paste', clip and '-n' or '-np' },
playback_only = false,
})
if not res.error then
return res.stdout
end
elseif platform == 'windows' then
local res = utils.subprocess({
args = { 'powershell', '-NoProfile', '-Command', [[& {
@ -647,7 +657,7 @@ function get_clipboard(clip)
end
-- Paste text from the window-system's clipboard. 'clip' determines whether the
-- clipboard or the primary selection buffer is used (on X11 only.)
-- clipboard or the primary selection buffer is used (on X11 and Wayland only.)
function paste(clip)
local text = get_clipboard(clip)
local before_cur = line:sub(1, cursor - 1)