From 1efbc2aeeffbd0d59f91efff01b66e0abbb816b3 Mon Sep 17 00:00:00 2001 From: chodak166 Date: Tue, 28 Apr 2026 17:06:14 +0200 Subject: [PATCH] Updated clipboard config --- .config/nvim/lua/config/clipboard.lua | 40 ++++++++++++++------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/.config/nvim/lua/config/clipboard.lua b/.config/nvim/lua/config/clipboard.lua index 79b136f..81c36a4 100644 --- a/.config/nvim/lua/config/clipboard.lua +++ b/.config/nvim/lua/config/clipboard.lua @@ -1,22 +1,24 @@ -- ~/.config/nvim/lua/config/clipboard.lua -local function osc52_copy(lines) - local data = table.concat(lines, "\n") - local b64 = vim.fn.system("base64 -w0", data) - vim.fn.chansend(vim.v.stderr, "\x1b]52;c;" .. b64 .. "\x07") + +-- Only override clipboard when running over SSH. +-- Locally, let Neovim auto-detect the system clipboard tool (xclip, pbcopy, wl-copy, etc.) +if vim.env.SSH_TTY then + local osc52 = require("vim.ui.clipboard.osc52") + + vim.g.clipboard = { + name = "OSC 52 (SSH)", + copy = { + ["+"] = osc52.copy("+"), + ["*"] = osc52.copy("*"), + }, + paste = { + -- OSC52 paste reads back from the terminal via an escape sequence response. + -- If your terminal supports it (Kitty, WezTerm, iTerm2, etc.), use it: + ["+"] = osc52.paste("+"), + ["*"] = osc52.paste("*"), + }, + } end -vim.g.clipboard = { - name = "OSC 52", - copy = { - ["+"] = osc52_copy, - ["*"] = osc52_copy, - }, - paste = { - ["+"] = function() - return vim.split(vim.fn.getreg("+"), "\n") - end, - ["*"] = function() - return vim.split(vim.fn.getreg("*"), "\n") - end, - }, -} +-- Always sync unnamed register with the clipboard register +vim.opt.clipboard = "unnamedplus" \ No newline at end of file