From 09f223915207e2138e4d4c6a5eb17ab2aaf237fc Mon Sep 17 00:00:00 2001 From: Toby Vincent Date: Tue, 3 Jan 2023 18:56:39 -0600 Subject: feat(nvim): add timeout to discord presence --- nvim/.config/nvim/lua/tobyvin/plugins.lua | 7 ---- nvim/.config/nvim/lua/tobyvin/plugins/presence.lua | 41 ++++++++++++++++++++++ 2 files changed, 41 insertions(+), 7 deletions(-) create mode 100644 nvim/.config/nvim/lua/tobyvin/plugins/presence.lua 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 @@ -9,13 +9,6 @@ return { end, { desc = "plugins" }) 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 -- cgit v1.2.3-70-g09d2