From f05aec7bcf8be389067325a81f7e3e1384fa945b Mon Sep 17 00:00:00 2001 From: cavelazquez8 Date: Fri, 21 Feb 2025 20:22:51 -0800 Subject: [PATCH] close obsidian when nvim closes --- init.lua | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/init.lua b/init.lua index 0492450b..2ac5a0bb 100644 --- a/init.lua +++ b/init.lua @@ -465,12 +465,26 @@ vim.api.nvim_create_autocmd({ 'FocusGained', 'BufEnter' }, { end, }) +-- Use a trap-based approach for VimLeave to ensure it runs before Neovim fully exits +vim.api.nvim_create_autocmd('UIEnter', { + once = true, + callback = function() + -- Get Neovim's PID + local nvim_pid = vim.fn.getpid() + + -- Create a trap in the parent shell that will kill Obsidian when Neovim exits + os.execute(string.format("trap 'pkill -9 -f obsidian' EXIT && " .. 'while kill -0 %d 2>/dev/null; do sleep 0.01; done & disown', nvim_pid)) + end, +}) + -- Cleanup temp directories on exit vim.api.nvim_create_autocmd('VimLeavePre', { callback = function() for _, vault in ipairs(vaults) do os.execute("rm -rf '" .. vault.path .. "_temp_preview/'*") end + -- Also ensure Obsidian is closed + close_obsidian() end, }) -- [[ Basic Autocommands ]]