return function() local if_nil = vim.F.if_nil local default_terminal = { type = "terminal", command = nil, width = 69, height = 8, opts = { redraw = true, window_config = {}, }, } local default_header = { type = "text", val = { [[ :::!~!!!!!:. ]], [[ .xUHWH!! !!?M88WHX:. ]], [[ .X*#M@$!! !X!M$$$$$$WWx:. ]], [[ :!!!!!!?H! :!$!$$$$$$$$$$8X: ]], [[ !!~ ~:~!! :~!$!#$$$$$$$$$$8X: ]], [[ :!~::!H!< ~.U$X!?R$$$$$$$$MM! ]], [[ ~!~!!!!~~ .:XW$$$U!!?$$$$$$RMM! ]], [[ !:~~~ .:!M"T#$$$$WX??#MRRMMM! ]], [[ ~?WuxiW*` `"#$$$$8!!!!??!!! ]], [[ :X- M$$$$ `"T#$T~!8$WUXU~ ]], [[ :%` ~#$$$m: ~!~ ?$$$$$$ ]], [[ :!`.- ~T$$$$8xx. .xWW- ~""##*" ]], [[..... -~~:<` ! ~?T#$$@@W@*?$$ /` ]], [[W$@@M!!! .!~~ !! .:XUW$W!~ `"~: : ]], [[#"~~`.:x%`!! !H: !WM$$$$Ti.: .!WUn+!` ]], [[:::~:!!`:X~ .: ?H.!u "$$$B$$$!W:U!T$$M~ ]], [[.~~ :X@!.-~ ?@WTWo("*$$$W$TH$! ` ]], [[Wi.~!X$?!-~ : ?$$$B$Wu("**$RM! ]], [[$R@i.~~ ! : ~$$$$$B$$en:`` ]], [[?MXT@Wx.~ : ~"##*$$$$M~ ]], }, opts = { position = "center", hl = "Type", -- wrap = "overflow"; }, } local footer = { type = "text", val = "", opts = { position = "center", hl = "Number", }, } local leader = "SPC" --- @param sc string --- @param txt string --- @param keybind string? optional --- @param keybind_opts table? optional local function button(sc, txt, keybind, keybind_opts) local sc_ = sc:gsub("%s", ""):gsub(leader, "") local opts = { position = "center", shortcut = sc, cursor = 3, width = 50, align_shortcut = "right", hl_shortcut = "Keyword", } if keybind then keybind_opts = if_nil(keybind_opts, { noremap = true, silent = true, nowait = true }) opts.keymap = { "n", sc_, keybind, keybind_opts } end local function on_press() local key = vim.api.nvim_replace_termcodes(keybind or sc_ .. "", true, false, true) vim.api.nvim_feedkeys(key, "t", false) end return { type = "button", val = txt, on_press = on_press, opts = opts, } end local buttons = { type = "group", val = { button("e", " New file", "ene "), button("SPC f f", "󰈞 Find file"), button("SPC f h", "󰊄 Recently opened files"), button("SPC f r", " Frecency/MRU"), button("SPC f g", "󰈬 Find word"), button("SPC f m", " Jump to bookmarks"), button("SPC s l", " Open last session"), }, opts = { spacing = 1, }, } local section = { terminal = default_terminal, header = default_header, buttons = buttons, footer = footer, } local config = { layout = { { type = "padding", val = 2 }, section.header, { type = "padding", val = 2 }, section.buttons, section.footer, }, opts = { margin = 5, }, } require('alpha').setup(config) end