From d2506d985df0b11acafb6eaa9292000db6abdfc0 Mon Sep 17 00:00:00 2001 From: jaredgoldman Date: Sun, 7 Apr 2024 18:35:46 -0400 Subject: [PATCH] feat: add dashboard --- lua/options.lua | 7 +----- lua/plugins.lua | 64 ++++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 59 insertions(+), 12 deletions(-) diff --git a/lua/options.lua b/lua/options.lua index 529829e..2b41f21 100644 --- a/lua/options.lua +++ b/lua/options.lua @@ -48,9 +48,4 @@ api.nvim_create_autocmd({ "BufWritePre" }, { pattern = { "*" }, command = [[if &filetype !~# 'lsp' | %s/\s\+$//e | endif]], }) --- Startup -vim.api.nvim_create_autocmd("VimEnter", { - callback = function() - vim.defer_fn(function() vim.cmd("NvimTreeOpen") end, 100) -- Delays NVim Tree opening by 100ms - end -}) + diff --git a/lua/plugins.lua b/lua/plugins.lua index 4d2c511..29ac118 100644 --- a/lua/plugins.lua +++ b/lua/plugins.lua @@ -15,14 +15,66 @@ vim.opt.rtp:prepend(lazypath) require("lazy").setup({ { - 'nvimdev/dashboard-nvim', - event = 'VimEnter', - config = function() - require('dashboard').setup { - theme = "doom" + "nvimdev/dashboard-nvim", + event = "VimEnter", + opts = function() + local logo = [[ + ██╗ █████╗ ███████╗██╗ ██╗██╗ ██╗██╗███╗ ███╗ Z + ██║ ██╔══██╗╚══███╔╝╚██╗ ██╔╝██║ ██║██║████╗ ████║ Z + ██║ ███████║ ███╔╝ ╚████╔╝ ██║ ██║██║██╔████╔██║ z + ██║ ██╔══██║ ███╔╝ ╚██╔╝ ╚██╗ ██╔╝██║██║╚██╔╝██║ z + ███████╗██║ ██║███████╗ ██║ ╚████╔╝ ██║██║ ╚═╝ ██║ + ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═══╝ ╚═╝╚═╝ ╚═╝]] + + logo = string.rep("\n", 8) .. logo .. "\n\n" + + local opts = { + theme = "doom", + hide = { + -- this is taken care of by lualine + -- enabling this messes up the actual laststatus setting after loading a file + statusline = false, + }, + config = { + header = vim.split(logo, "\n"), + -- stylua: ignore + center = { + -- { action = LazyVim.telescope("files"), desc = " Find File", icon = " ", key = "f" }, + { action = "ene | startinsert", desc = " New File", icon = " ", key = "n" }, + { action = "Telescope oldfiles", desc = " Recent Files", icon = " ", key = "r" }, + { action = "Telescope live_grep", desc = " Find Text", icon = " ", key = "g" }, + { action = [[lua LazyVim.telescope.config_files()()]], desc = " Config", icon = " ", key = "c" }, + { action = 'lua require("persistence").load()', desc = " Restore Session", icon = " ", key = "s" }, + { action = "LazyExtras", desc = " Lazy Extras", icon = " ", key = "x" }, + { action = "Lazy", desc = " Lazy", icon = "󰒲 ", key = "l" }, + { action = "qa", desc = " Quit", icon = " ", key = "q" }, + }, + footer = function() + local stats = require("lazy").stats() + local ms = (math.floor(stats.startuptime * 100 + 0.5) / 100) + return { "⚡ Neovim loaded " .. stats.loaded .. "/" .. stats.count .. " plugins in " .. ms .. "ms" } + end, + }, } + + for _, button in ipairs(opts.config.center) do + button.desc = button.desc .. string.rep(" ", 43 - #button.desc) + button.key_format = " %s" + end + + -- close Lazy and re-open when the dashboard is ready + if vim.o.filetype == "lazy" then + vim.cmd.close() + vim.api.nvim_create_autocmd("User", { + pattern = "DashboardLoaded", + callback = function() + require("lazy").show() + end, + }) + end + + return opts end, - dependencies = { { 'nvim-tree/nvim-web-devicons' } } }, "tanvirtin/monokai.nvim", {