nvim/lua/plugins/alpha.lua
Evie Litherland-Smith 85cc28db9d Add nabla and taskwarrior plugins
TODO taskwarrior needs fixing for proper use
Enable nable virt text in neorg files
Add Alpha shortcuts for neorg workspaces
2023-07-19 11:55:22 +01:00

62 lines
3.3 KiB
Lua

return {
"goolord/alpha-nvim",
event = "VimEnter",
opts = function()
local dashboard = require "alpha.themes.dashboard"
local logo = [[
██╗ █████╗ ███████╗██╗ ██╗██╗ ██╗██╗███╗ ███╗ Z
██║ ██╔══██╗╚══███╔╝╚██╗ ██╔╝██║ ██║██║████╗ ████║ Z
██║ ███████║ ███╔╝ ╚████╔╝ ██║ ██║██║██╔████╔██║ z
██║ ██╔══██║ ███╔╝ ╚██╔╝ ╚██╗ ██╔╝██║██║╚██╔╝██║ z
███████╗██║ ██║███████╗ ██║ ╚████╔╝ ██║██║ ╚═╝ ██║
╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═══╝ ╚═╝╚═╝ ╚═╝
]]
dashboard.section.header.val = vim.split(logo, "\n")
dashboard.section.buttons.val = {
dashboard.button("t", " Terminal", "<cmd>ToggleTerm <CR>"),
dashboard.button("f", " Find file", "<cmd>Telescope find_files <CR>"),
dashboard.button("r", " Recent files", "<cmd>Telescope oldfiles <CR>"),
dashboard.button("o", " File browser", "<cmd>Oil <CR>"),
dashboard.button("p", "󱞁 Personal notes", "<cmd>Neorg workspace personal<CR>"),
dashboard.button("w", "󱞂 Work notes", "<cmd>Neorg workspace work<CR>"),
dashboard.button("g", "󰊢 Git status", "<cmd>Neogit <CR>"),
dashboard.button("c", " Config", "<cmd>e $HOME/.config/home-manager/flake.nix <CR>"),
dashboard.button("l", "󰒲 Lazy", "<cmd>Lazy<CR>"),
dashboard.button("h", " Help", "<cmd>Telescope help_tags <CR>"),
dashboard.button("q", " Quit", "<cmd>qa<CR>"),
}
for _, button in ipairs(dashboard.section.buttons.val) do
button.opts.hl = "AlphaButtons"
button.opts.hl_shortcut = "AlphaShortcut"
end
dashboard.section.header.opts.hl = "AlphaHeader"
dashboard.section.buttons.opts.hl = "AlphaButtons"
dashboard.section.footer.opts.hl = "AlphaFooter"
dashboard.opts.layout[1].val = 8
return dashboard
end,
config = function(_, dashboard)
-- 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 = "AlphaReady",
callback = function() require("lazy").show() end,
})
end
require("alpha").setup(dashboard.opts)
vim.api.nvim_create_autocmd("User", {
pattern = "LazyVimStarted",
callback = function()
local stats = require("lazy").stats()
local ms = (math.floor(stats.startuptime * 100 + 0.5) / 100)
dashboard.section.footer.val = "⚡ Neovim loaded " .. stats.count .. " plugins in " .. ms .. "ms"
pcall(vim.cmd.AlphaRedraw)
end,
})
end,
}