aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--nvim/.config/nvim/lua/plugins/presence.lua59
1 files changed, 16 insertions, 43 deletions
diff --git a/nvim/.config/nvim/lua/plugins/presence.lua b/nvim/.config/nvim/lua/plugins/presence.lua
index 453a764..63e83c1 100644
--- a/nvim/.config/nvim/lua/plugins/presence.lua
+++ b/nvim/.config/nvim/lua/plugins/presence.lua
@@ -1,56 +1,29 @@
---@type LazyPluginSpec
local M = {
"andweeb/presence.nvim",
- event = {
- "FocusGained",
- "TextChanged",
- "VimLeavePre",
- "WinEnter",
- "WinLeave",
- "BufEnter",
- "BufAdd",
- },
- opts = {
- focus_lost_delay = 300,
- },
+ event = "UIEnter",
}
function M:config(opts)
- local Presence = require("presence")
-
- local plugin_managers = require("presence/plugin_managers")
- plugin_managers["lazy"] = "lazy"
-
- 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()
- if self.idle_timer then
- vim.fn.timer_stop(self.idle_timer)
- end
- self.idle_timer = nil
- end
-
- Presence.setup(opts)
+ require("presence").setup(opts)
vim.api.nvim_create_autocmd("FocusLost", {
+ group = vim.api.nvim_create_augroup("tobyvin.presence_idle", { clear = true }),
callback = function()
- Presence:handle_focus_lost()
- end,
- })
-
- vim.api.nvim_create_autocmd("FocusGained", {
- callback = function()
- Presence:cancel_idle_timer()
+ local idle_timer = vim.defer_fn(function()
+ require("presence").log:debug("Idle timeout reached...")
+ require("presence"):cancel()
+ require("presence").last_activity.file = nil
+ end, 300000)
+
+ vim.api.nvim_create_autocmd("FocusGained", {
+ callback = function()
+ idle_timer:stop()
+ return true
+ end,
+ })
end,
+ desc = "start presence idle timer",
})
end