diff options
author | Toby Vincent <tobyv13@gmail.com> | 2023-01-27 18:11:33 -0600 |
---|---|---|
committer | Toby Vincent <tobyv13@gmail.com> | 2023-01-27 18:11:33 -0600 |
commit | c22f9555ec86aebc5827582f05a7ba422bd70175 (patch) | |
tree | e794bf77779b6bbd2f7730687bf565df04d1d8ab /nvim | |
parent | 7e1582e05559cd46e05a516c4e0779979adc2dd3 (diff) |
fix(nvim): add system clipboard syncing for neoclip
Diffstat (limited to 'nvim')
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/autocmds.lua | 31 |
1 files changed, 31 insertions, 0 deletions
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) |