mirror of
https://github.com/CompeyDev/my-nvim-setup.git
synced 2024-12-13 21:40:37 +00:00
90 lines
2.7 KiB
Lua
90 lines
2.7 KiB
Lua
local present, alpha = pcall(require, "alpha")
|
|
|
|
if not present then
|
|
return
|
|
end
|
|
|
|
local function button(sc, txt, keybind)
|
|
local sc_ = sc:gsub("%s", ""):gsub("SPC", "<leader>")
|
|
|
|
local opts = {
|
|
position = "center",
|
|
text = txt,
|
|
shortcut = sc,
|
|
cursor = 5,
|
|
width = 36,
|
|
align_shortcut = "right",
|
|
hl = "AlphaButtons",
|
|
}
|
|
|
|
if keybind then
|
|
opts.keymap = { "n", sc_, keybind, { noremap = true, silent = true } }
|
|
end
|
|
|
|
return {
|
|
type = "button",
|
|
val = txt,
|
|
on_press = function()
|
|
local key = vim.api.nvim_replace_termcodes(sc_, true, false, true)
|
|
vim.api.nvim_feedkeys(key, "normal", false)
|
|
end,
|
|
opts = opts,
|
|
}
|
|
end
|
|
|
|
local options = {}
|
|
|
|
local ascii = {
|
|
" ⣴⣶⣤⡤⠦⣤⣀⣤⠆ ⣈⣭⣿⣶⣿⣦⣼⣆ ",
|
|
" ⠉⠻⢿⣿⠿⣿⣿⣶⣦⠤⠄⡠⢾⣿⣿⡿⠋⠉⠉⠻⣿⣿⡛⣦ ",
|
|
" ⠈⢿⣿⣟⠦ ⣾⣿⣿⣷ ⠻⠿⢿⣿⣧⣄ ",
|
|
" ⣸⣿⣿⢧ ⢻⠻⣿⣿⣷⣄⣀⠄⠢⣀⡀⠈⠙⠿⠄ ",
|
|
" ⢠⣿⣿⣿⠈ ⣻⣿⣿⣿⣿⣿⣿⣿⣛⣳⣤⣀⣀ ",
|
|
" ⢠⣧⣶⣥⡤⢄ ⣸⣿⣿⠘ ⢀⣴⣿⣿⡿⠛⣿⣿⣧⠈⢿⠿⠟⠛⠻⠿⠄ ",
|
|
" ⣰⣿⣿⠛⠻⣿⣿⡦⢹⣿⣷ ⢊⣿⣿⡏ ⢸⣿⣿⡇ ⢀⣠⣄⣾⠄ ",
|
|
" ⣠⣿⠿⠛ ⢀⣿⣿⣷⠘⢿⣿⣦⡀ ⢸⢿⣿⣿⣄ ⣸⣿⣿⡇⣪⣿⡿⠿⣿⣷⡄ ",
|
|
" ⠙⠃ ⣼⣿⡟ ⠈⠻⣿⣿⣦⣌⡇⠻⣿⣿⣷⣿⣿⣿ ⣿⣿⡇ ⠛⠻⢷⣄ ",
|
|
" ⢻⣿⣿⣄ ⠈⠻⣿⣿⣿⣷⣿⣿⣿⣿⣿⡟ ⠫⢿⣿⡆ ",
|
|
" ⠻⣿⣿⣿⣿⣶⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⡟⢀⣀⣤⣾⡿⠃ ",
|
|
}
|
|
|
|
options.header = {
|
|
type = "text",
|
|
val = ascii,
|
|
opts = {
|
|
position = "center",
|
|
hl = "AlphaHeader",
|
|
},
|
|
}
|
|
|
|
options.buttons = {
|
|
type = "group",
|
|
val = {
|
|
button("SPC f f", " Find File ", ":Telescope find_files<CR>"),
|
|
button("SPC f o", " Recent File ", ":Telescope oldfiles<CR>"),
|
|
button("SPC f w", " Find Word ", ":Telescope live_grep<CR>"),
|
|
button("SPC b m", " Bookmarks ", ":Telescope marks<CR>"),
|
|
button("SPC t h", " Themes ", ":Telescope themes<CR>"),
|
|
button("SPC e s", " Settings", ":e $MYVIMRC | :cd %:p:h <CR>"),
|
|
},
|
|
opts = {
|
|
spacing = 1,
|
|
},
|
|
}
|
|
|
|
options = require("core.utils").load_override(options, "goolord/alpha-nvim")
|
|
|
|
-- dynamic header padding
|
|
local fn = vim.fn
|
|
local marginTopPercent = 0.3
|
|
local headerPadding = fn.max { 2, fn.floor(fn.winheight(0) * marginTopPercent) }
|
|
|
|
alpha.setup {
|
|
layout = {
|
|
{ type = "padding", val = headerPadding },
|
|
options.header,
|
|
{ type = "padding", val = 2 },
|
|
options.buttons,
|
|
},
|
|
opts = {},
|
|
}
|