Evie Litherland-Smith
85cc28db9d
TODO taskwarrior needs fixing for proper use Enable nable virt text in neorg files Add Alpha shortcuts for neorg workspaces
62 lines
3.3 KiB
Lua
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,
|
|
}
|