summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorToby Vincent <tobyv13@gmail.com>2023-01-03 18:56:39 -0600
committerToby Vincent <tobyv13@gmail.com>2023-01-03 18:56:39 -0600
commit09f223915207e2138e4d4c6a5eb17ab2aaf237fc (patch)
tree6c5106b76791d69c2a4e0300e62718604afba4a3
parentea9b07276a94514d3b7c4ba8882e0b846c76e5f8 (diff)
feat(nvim): add timeout to discord presence
-rw-r--r--nvim/.config/nvim/lua/tobyvin/plugins.lua7
-rw-r--r--nvim/.config/nvim/lua/tobyvin/plugins/presence.lua41
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