diff options
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/plugins.lua | 7 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/plugins/presence.lua | 41 |
2 files changed, 41 insertions, 7 deletions
diff --git a/nvim/.config/nvim/lua/tobyvin/plugins.lua b/nvim/.config/nvim/lua/tobyvin/plugins.lua index dd78195..3d114e4 100644 --- a/nvim/.config/nvim/lua/tobyvin/plugins.lua +++ b/nvim/.config/nvim/lua/tobyvin/plugins.lua @@ -10,13 +10,6 @@ return { end, }, { - "andweeb/presence.nvim", - event = "VeryLazy", - config = function() - require("presence"):setup() - end, - }, - { "norcalli/nvim-colorizer.lua", event = "BufReadPre", }, diff --git a/nvim/.config/nvim/lua/tobyvin/plugins/presence.lua b/nvim/.config/nvim/lua/tobyvin/plugins/presence.lua new file mode 100644 index 0000000..1d34572 --- /dev/null +++ b/nvim/.config/nvim/lua/tobyvin/plugins/presence.lua @@ -0,0 +1,41 @@ +local M = { + "andweeb/presence.nvim", + event = "VeryLazy", +} + +function M.config() + local Presence = require("presence"):setup({ + enable_line_number = true, + focus_lost_delay = 60, + }) + + function Presence:handle_focus_lost() + self:start_idle_timer(self.options.focus_lost_delay, function() + self:cancel() + end) + end + + function Presence:start_idle_timer(timeout, callback) + local idle_timeout = timeout * 1000 + self.idle_timer = vim.fn.timer_start(idle_timeout, callback) + end + + function Presence:cancel_idle_timer() + vim.fn.timer_stop(self.idle_timer) + self.idle_timer = nil + end + + vim.api.nvim_create_autocmd("FocusLost", { + callback = function() + Presence:handle_focus_lost() + end, + }) + + vim.api.nvim_create_autocmd("FocusGained", { + callback = function() + Presence:cancel_idle_timer() + end, + }) +end + +return M |