You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

84 lines
3.0 KiB

local M = {
"goolord/alpha-nvim",
event = "VimEnter",
}
function M.config()
local dashboard = require "alpha.themes.dashboard"
local icons = require "user.icons"
local function button(sc, txt, keybind, keybind_opts)
local b = dashboard.button(sc, txt, keybind, keybind_opts)
b.opts.hl_shortcut = "Include"
return b
end
dashboard.section.header.val = {
[[ __ ]],
[[ ___ ___ ___ __ __ /\_\ ___ ___ ]],
[[ / _ `\ / __`\ / __`\/\ \/\ \\/\ \ / __` __`\ ]],
[[/\ \/\ \/\ __//\ \_\ \ \ \_/ |\ \ \/\ \/\ \/\ \ ]],
[[\ \_\ \_\ \____\ \____/\ \___/ \ \_\ \_\ \_\ \_\]],
[[ \/_/\/_/\/____/\/___/ \/__/ \/_/\/_/\/_/\/_/]],
}
dashboard.section.header.val = {
[[🛸     🌎 °  🌓   .°•   🚀 ✯ ]],
[[    *     °    🛰  °· 🪐 ]],
[[.    ° ★ • ☄ ]],
[[ ▁▂▃▄▅▆▇▇▆▅▄▃▂▁. ]],
}
dashboard.section.header.val = {
[[ ★ ✯ 🛸 🪐 .°• | ]],
[[ __ ° ★ • 🛰 __ / \ ]],
[[ / / ____ ___ ______ _____/ /_ | O | ]],
[[ / / / __ `/ / / / __ \/ ___/ __ \ | O | ]],
[[ / /___/ /_/ / /_/ / / / / /__/ / / / /| | |\ ]],
[[/_____/\__,_/\__,_/_/ /_/\___/_/ /_/ /_(.|.)_\]],
}
dashboard.section.buttons.val = {
button("f", icons.ui.Files .. " Find file", ":Telescope find_files <CR>"),
button("n", icons.ui.NewFile .. " New file", ":ene <BAR> startinsert <CR>"),
-- button("s", icons.ui.SignIn .. " Load session", ":lua require('persistence').load()<CR>"),
button("p", icons.git.Repo .. " Find project", ":lua require('telescope').extensions.projects.projects()<CR>"),
button("r", icons.ui.History .. " Recent files", ":Telescope oldfiles <CR>"),
button("t", icons.ui.Text .. " Find text", ":Telescope live_grep <CR>"),
button("c", icons.ui.Gear .. " Config", ":e ~/.config/nvim/init.lua <CR>"),
button("q", icons.ui.SignOut .. " Quit", ":qa<CR>"),
}
local function footer()
return "chrisatmachine.com"
end
dashboard.section.footer.val = footer()
dashboard.section.header.opts.hl = "Keyword"
dashboard.section.buttons.opts.hl = "Include"
dashboard.section.footer.opts.hl = "Type"
dashboard.opts.opts.noautocmd = true
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 = "Loaded " .. stats.count .. " plugins in " .. ms .. "ms"
pcall(vim.cmd.AlphaRedraw)
end,
})
vim.api.nvim_create_autocmd({ "User" }, {
pattern = { "AlphaReady" },
callback = function()
vim.cmd [[
set laststatus=0 | autocmd BufUnload <buffer> set laststatus=3
]]
end,
})
end
return M