summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorToby Vincent <tobyv13@gmail.com>2023-01-27 18:11:33 -0600
committerToby Vincent <tobyv13@gmail.com>2023-01-27 18:11:33 -0600
commitc22f9555ec86aebc5827582f05a7ba422bd70175 (patch)
treee794bf77779b6bbd2f7730687bf565df04d1d8ab
parent7e1582e05559cd46e05a516c4e0779979adc2dd3 (diff)
fix(nvim): add system clipboard syncing for neoclip
-rw-r--r--nvim/.config/nvim/lua/tobyvin/autocmds.lua31
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)