Files
nix-config/home/programs/nvim/plugins/goyo.lua

54 lines
1.4 KiB
Lua

local opts = { noremap = true, silent = true }
-- "Focus" commands that rely on the Goyo plugin
vim.api.nvim_set_keymap("n", "<C-a>z", ":Goyo 80<CR>", opts)
vim.api.nvim_set_keymap("n", "<C-a>q", ":Goyo!<CR>", opts)
-- automatically resize goyo when nvim resizes
vim.api.nvim_create_autocmd("VimResized", {
callback = function()
if vim.fn.exists('#goyo') == 1 then
vim.cmd("normal <C-w>=")
end
end,
})
-- hide and unhide lualine when entering and leaving goyo
local lualine = require('lualine')
local grp = vim.api.nvim_create_augroup('goyo_lualine_toggle', { clear = true })
local function hide() lualine.hide{ place = {'statusline', 'winbar', 'tabline'} } end
local function unhide() lualine.hide{ place = {'statusline', 'winbar', 'tabline'}, unhide = true } end
vim.api.nvim_create_autocmd('User', {
group = grp,
pattern = 'GoyoEnter',
callback = function()
lualine.hide({ place = {'statusline', 'winbar', 'tabline'} })
end,
})
vim.api.nvim_create_autocmd('User', {
group = grp,
pattern = 'GoyoLeave',
callback = function()
lualine.hide({ place = {'statusline', 'winbar', 'tabline'}, unhide = true })
end,
})
vim.api.nvim_create_autocmd('VimEnter', {
group = grp,
once = true,
callback = function()
local w = vim.g.goyo_if
if w then
vim.schedule(
vim.cmd 'BarbarDisable'
end)
vim.schedule(hide)
end
end,
})