From c22f9555ec86aebc5827582f05a7ba422bd70175 Mon Sep 17 00:00:00 2001 From: Toby Vincent Date: Fri, 27 Jan 2023 18:11:33 -0600 Subject: fix(nvim): add system clipboard syncing for neoclip --- nvim/.config/nvim/lua/tobyvin/autocmds.lua | 31 ++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'nvim') diff --git a/nvim/.config/nvim/lua/tobyvin/autocmds.lua b/nvim/.config/nvim/lua/tobyvin/autocmds.lua index e59c22c..07592fb 100644 --- a/nvim/.config/nvim/lua/tobyvin/autocmds.lua +++ b/nvim/.config/nvim/lua/tobyvin/autocmds.lua @@ -9,6 +9,37 @@ vim.api.nvim_create_autocmd("TextYankPost", { desc = "Highlight yank", }) +vim.api.nvim_create_autocmd("FocusLost", { + group = augroup, + pattern = "*", + callback = function() + vim.g.system_clipboard = { + regtype = vim.fn.getregtype("+"), + contents = vim.split(vim.fn.getreg("+"), "\n"), + } + end, + desc = "clipboard sync", +}) + +vim.api.nvim_create_autocmd("FocusGained", { + group = augroup, + pattern = "*", + callback = function() + local system_clipboard = { + regtype = vim.fn.getregtype("+"), + contents = vim.split(vim.fn.getreg("+"), "\n"), + } + + if vim.g.system_clipboard ~= nil and not vim.deep_equal(vim.g.system_clipboard, system_clipboard) then + require("neoclip") + require("neoclip.storage").insert(system_clipboard, "yanks") + end + + vim.g.system_clipboard = nil + end, + desc = "clipboard sync", +}) + vim.api.nvim_create_autocmd("BufWritePre", { group = augroup, callback = function(args) -- cgit v1.2.3-70-g09d2