feat: startup screen
This commit is contained in:
85
lua/409/plugins/startup.lua
Normal file
85
lua/409/plugins/startup.lua
Normal file
@@ -0,0 +1,85 @@
|
||||
return {
|
||||
{
|
||||
"goolord/alpha-nvim",
|
||||
dependencies = { "nvim-tree/nvim-web-devicons" },
|
||||
lazy = false,
|
||||
keys = {
|
||||
{
|
||||
"<leader><leader>",
|
||||
function()
|
||||
if vim.bo.filetype ~= "alpha" then
|
||||
vim.cmd("Alpha")
|
||||
end
|
||||
end,
|
||||
desc = "Home screen",
|
||||
}
|
||||
},
|
||||
config = function()
|
||||
local dashboard = require("alpha.themes.dashboard")
|
||||
|
||||
dashboard.section.header.val = {
|
||||
" @@@ @@@@@@@@ @@@@@@ ",
|
||||
" @@@@ @@@@@@@@@@ @@@@@@@@ ",
|
||||
" @@!@! @@! @@@@ @@! @@@ ",
|
||||
" !@!!@! !@! @!@!@ !@! @!@ ",
|
||||
" @!! @!! @!@ @! !@! !!@!!@!! ",
|
||||
"!!! !@! !@!!! !!! !!@!!! ",
|
||||
":!!:!:!!: !!:! !!! !!! ",
|
||||
"!:::!!::: :!: !:! !:! ",
|
||||
" ::: ::::::: :: ::::: :: ",
|
||||
" ::: : : : : : : : ",
|
||||
}
|
||||
|
||||
dashboard.section.header.opts.hl = "DashboardHeader"
|
||||
dashboard.section.footer.hl = "DashboardFooter"
|
||||
|
||||
dashboard.leader = "LDR"
|
||||
|
||||
--- @param shortcut string Shortcut string of a button mapping
|
||||
--- @param desc string Real text description of the mapping
|
||||
--- @param rhs string? Righthand side of mapping if defining a new mapping (_optional_)
|
||||
--- @param map_opts table? `keymap.set` options used during keymap creating (_optional_)
|
||||
dashboard.button = function(shortcut, desc, rhs, map_opts)
|
||||
local lhs = shortcut:gsub("%s", ""):gsub(dashboard.leader, "<Leader>")
|
||||
local default_map_opts = { noremap = true, silent = true, nowait = true, desc = desc }
|
||||
|
||||
local leader = vim.g.mapleader
|
||||
if leader == " " then
|
||||
leader = ""
|
||||
end
|
||||
|
||||
return {
|
||||
type = "button",
|
||||
val = desc,
|
||||
on_press = function()
|
||||
vim.api.nvim_feedkeys(
|
||||
vim.api.nvim_replace_termcodes(rhs or lhs .. "<Ignore>", true, false, true),
|
||||
"t",
|
||||
false
|
||||
)
|
||||
end,
|
||||
opts = {
|
||||
position = "center",
|
||||
shortcut = shortcut:gsub(dashboard.leader, leader),
|
||||
cursor = -2,
|
||||
width = 36,
|
||||
align_shortcut = "right",
|
||||
hl = "DashboardCenter",
|
||||
hl_shortcut = "DashboardShortcut",
|
||||
keymap = rhs and { "n", lhs, rhs, require("astrocore").extend_tbl(default_map_opts, map_opts) },
|
||||
},
|
||||
}
|
||||
end
|
||||
|
||||
dashboard.section.buttons.val = {
|
||||
dashboard.button("LDR LDR ", " Return to this screen"),
|
||||
dashboard.button("LDR p v", " Explore"),
|
||||
dashboard.button("LDR p f", " Find File"),
|
||||
dashboard.button("LDR p f", " Find Git File"),
|
||||
dashboard.button("LDR p l", " Find Word"),
|
||||
}
|
||||
|
||||
require("alpha").setup(dashboard.config)
|
||||
end,
|
||||
},
|
||||
}
|
||||
@@ -17,6 +17,8 @@ return {
|
||||
|
||||
vim.api.nvim_set_hl(0, "TabLine", { fg = "#f8f8f2", bg = "#44475a" })
|
||||
vim.api.nvim_set_hl(0, "TabLineSel", { fg = "#282a36", bg = "#50fa7b", bold = true })
|
||||
vim.api.nvim_set_hl(0, "DashboardHeader", { fg = "#50fa7b" })
|
||||
vim.api.nvim_set_hl(0, "DashboardShortCut", { fg = "#bd93f9" })
|
||||
end,
|
||||
},
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user