return { "folke/snacks.nvim", priority = 1000, lazy = false, ---@type snacks.Config opts = { bigfile = { enabled = true }, dashboard = { sections = { { section = "terminal", cmd = "chafa ~/wallpapers/pywallpaper.jpg --format symbols --symbols vhalf --size 60x17 --stretch;", height = 17, padding = 1, }, { pane = 2, { section = "keys", gap = 1, padding = 1 }, { section = "startup" }, }, }, }, indent = { enabled = true }, input = { enabled = true }, quickfile = { enabled = true }, scroll = { enabled = true }, statuscolumn = { enabled = true }, words = { enabled = true }, }, keys = { { "z", function() Snacks.zen() end, desc = "Toggle Zen Mode" }, { "s", function() Snacks.scratch() end, desc = "Toggle Scratch Buffer" }, { "S", function() Snacks.scratch.select() end, desc = "Select Scratch Buffer" }, { "", function() Snacks.terminal() end, desc = "Toggle Terminal" }, { "gB", function() Snacks.gitbrowse() end, desc = "Git Browse", mode = { "n", "v" } }, { "gb", function() Snacks.git.blame_line() end, desc = "Git Blame Line" }, { "gf", function() Snacks.lazygit.log_file() end, desc = "Lazygit Current File History" }, { "gg", function() Snacks.lazygit() end, desc = "Lazygit" }, { "gl", function() Snacks.lazygit.log() end, desc = "Lazygit Log (cwd)" }, { "N", desc = "Neovim News", function() Snacks.win({ file = vim.api.nvim_get_runtime_file("doc/news.txt", false)[1], width = 0.6, height = 0.8, wo = { spell = false, wrap = false, signcolumn = "yes", statuscolumn = " ", conceallevel = 3, }, }) end, } }, init = function() vim.api.nvim_create_autocmd("User", { pattern = "VeryLazy", callback = function() _G.dd = function(...) Snacks.debug.inspect(...) end _G.bt = function() Snacks.debug.backtrace() end vim.print = _G.dd -- Create some toggle mappings Snacks.toggle.option("spell", { name = "Spelling" }):map("us") Snacks.toggle.option("wrap", { name = "Wrap" }):map("uw") end, }) end, }