From f349e7a4734217fbb51b0ec06d7811e9e3cac18a Mon Sep 17 00:00:00 2001 From: Ivar Fatland Date: Mon, 15 Dec 2025 20:24:35 +0100 Subject: [PATCH] fix zen mode --- nvim/.config/nvim/init.lua | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/nvim/.config/nvim/init.lua b/nvim/.config/nvim/init.lua index ac67a93..4f29158 100644 --- a/nvim/.config/nvim/init.lua +++ b/nvim/.config/nvim/init.lua @@ -250,17 +250,27 @@ do vim.api.nvim_set_option_value('modifiable', false, {buf = padding_buffer}) vim.api.nvim_create_autocmd('WinEnter', { callback = function() - local curr = vim.api.nvim_get_current_buf() - if curr == padding_buffer then + local curr_buff = vim.api.nvim_get_current_buf() + if curr_buff == padding_buffer then if #vim.api.nvim_list_wins() == 1 then vim.cmd"q" end + local padding_window = vim.api.nvim_get_current_win() + + vim.cmd"wincmd p" + local prev_win = vim.api.nvim_get_current_win() + if padding_window ~= prev_win then + vim.api.nvim_set_current_win(prev_win) + return + end + + local padding_window_info = vim.fn.getwininfo(padding_window)[1] local windows = vim.api.nvim_list_wins() local leftmost_non_padding_window = nil local min_col = math.huge for _, win in ipairs(windows) do local info = vim.fn.getwininfo(win)[1] - if info.wincol < min_col and not is_padding_window(win) then + if info.wincol < min_col and padding_window_info.wincol < info.wincol then min_col = info.wincol leftmost_non_padding_window = win end