Files
nvim/after/plugin/startpage.lua

337 lines
17 KiB
Lua

local status_ok, alpha = pcall(require, "alpha")
if not status_ok then
return
end
math.randomseed(os.time())
local C = {}
local R = {}
-- buttons
local function button(sc, txt, keybind)
local opts = {
position = "center",
shortcut = sc,
cursor = -1,
width = string.len(C.header[1]),
align_shortcut = "right",
hl_shortcut = "Keyword",
redraw_on_resize = false,
}
local function on_press()
local key = vim.api.nvim_replace_termcodes(keybind .. "<Ignore>", true, false, true)
vim.api.nvim_feedkeys(key, "t", false)
end
return {
type = "button",
val = txt,
on_press = on_press,
opts = opts,
}
end
-- actual config
C.bigheader = {
{
[[ |\ ]],
[[ ||. ]],
[[ ||;` ]],
[[ ,'|; : ]],
[[ ,': |; ` ]],
[[ ,' | ; `-` ]],
[[ ,' | ; : ]],
[[ ,' `-|; ` ]],
[[ ; ; ` ]],
[[ ,' `--\`-. `--: ]],
[[ ,-._,'`. |\||`-. ` ]],
[[ `;-.`-._`. | |\ \ `-. ` ]],
[[ :`--`-.`-\ `--.| /`\;\ `-: ]],
[[ ; ``-`. |/ ; \ `. ]],
[[ ; `.`-/ ; \ ` ]],
[[ ; : `/ ; \ ` ]],
[[ ,-._ | / ; -`\ : ]],
[[ `;-.`-._| : / | \ ` ]],
[[ ; `-.| : / | \ ` ]],
[[ ; | : : / | \ : ]],
[[ ; | : / ; | \ ` ]],
[[ ; | / ; | --`\ ` ]],
[[ | | : / ; | \ : ]],
[[ | : | : / ; \ ` ]],
[[ | : ; ;:'-.._ -`\ ` ]],
[[ | : ;___ ;'---....___;__:__| `-._ \ : ]],
[[ | : `;``-------'';|| : \ `-._ \` ]],
[[ -=======:===;===========;=|| : \ `-.\: ]],
[[ ___ ; _;_|| ; ||___,:-.\___,....__\_ ]],
[[ |`--:.|;_o||-______;,..-----""""" __|__...-'' ]],
[[----....|___ """" jrei__||-------........________]],
[[ """"----....____ __..--'' || ~~~~~ ]],
[[ ~~~ ~~~ """"----....____|/ ~~~~~~~ ~~~~~~~]],
[[~~~ ~~~~ ~~~~~~ ~ ~~~ ~~~~ ]],
[[ ~~~~~ ~~~ ~ ~~~~~~~~~ ~~~ ~~~~~~~~~~ ]],
},
{
[[ J\ ]],
[[ | \ ]],
[[ | `. ]],
[[ F `. ]],
[[ F \ ]],
[[ F \ ]],
[[ J `. ]],
[[ J `. _ ]],
[[ J \ |\ ]],
[[ |. `.J|\ ]],
[[ | `. `.L \ ]],
[[ | `. \L `. ]],
[[ J ` F `. ]],
[[ J F \ ]],
[[ J J \ ]],
[[ F | \ ]],
[[ F | `. ]],
[[ F F `. ]],
[[ | F \ ]],
[[ | J \ ]],
[[ | | \ ]],
[[ | | \ ]],
[[ J F \ ]],
[[----------J J \-------------]],
[[ L | \ ]],
[[~ O ======F \ ~ ]],
[[ ~ (\`-. / J \-. ~ ]],
[[ \_\/ )"L_ _\_) ]],
[[ >|`-.||[_][""""---------.'_.-\\ ~ ]],
[[~~ ~~~ \`-. J_ Veronica"""""\/"_.--'\\ ]],
[[ ~ `. "--._ _..--""" |\` ]],
[[ ~~ ~~ ~""-. """"""""""" | ]],
[[ ~~ ~ ~~ ~"----._--.-._--""""\|'\| ]],
[[ ~ ~~~ ~~ ~~~ ~~~~ `- `--.` ` ]],
[[~~~ ~~ ~~ ~~~~ ~~ ~ ]],
},
{
[[ . . ]],
[[ _..-''"""\ _.--'"""\ ]],
[[ | L | \ ]],
[[ _ / _.-.---.\. / .-.----.\ ]],
[[ _/-|--- _/<"---'"""""\\`. /-'--''"""""\ ]],
[[ | \ | L`.`-. | L ]],
[[ /_.-.---.L | \ \ `| J`. ]],
[[ _/--'"""" \ F \L \ | L ]],
[[ L `. L J _.---.-"""-.\`. L_/ _.--|"""""--.\ `. ]],
[[ | \+. /-"__.--'"""" \ `./'"---'"""""" \`. `. ]],
[[ F _____ \ `F" `. \ \ L `. ]],
[[ /.-'"_|---'"\ | ` JL | L `.`. ]],
[[ <-'"" \| _.-.------._ A J _.-.-----`.--| ``.`. ]],
[[ L `. |/.-'"_.-`---'""\."| /-'"---'""""" \`.\. \ `.`. ]],
[[ | _.------\.<'""" L\ L\ `.`\`. \ `. ]],
[[ _.-'//'"--'""" L\| ________\ `.F ___.-------._L \ `-\ \`. ]],
[[ /___| F F _.--'"_|-------L /_.-'"_.-|-'"""""""\ L L `.`. ]],
[[ | F _.-'|"""""/'"-'""" J <'""" L J | `.`. ]],
[[ |/-'-''/|""\ )-|\ F \ | L .'"""`\""-\\_ ]],
[[ F`-'-'-(`-') | \ F \ |___`"""`.""`.-'" ]],
[[------------/ `-'---| F L L __ |"""""`-'"__________]],
[[ .'_ | |__L __ J__ | _.--'"""" `".----'".' ]],
[[ '""""""""""""|--._+--F _.-'""||" """___/.-'" ||-'"/""""" \_. .' ]],
[[ J------------(___\__/'_____.--------'-------'"""""""" / ]],
[[ `-. _.__.__.__.____ J_.-._ ]],
[[ .'`-._ (-`--`---.'--._`---._.-'`-._.-'_.-'``-._' `-''-' ]],
},
{
[[ _____|\ ]],
[[ _.--| SSt |: ]],
[[ <____|.----|| ]],
[[ .---''---, ]],
[[ ;..__..' _... ]],
[[ ,'/ ;|/..--'' \ ]],
[[ ,'_/.-/': : ]],
[[ _..-'''/ / | \ \ _|/| ]],
[[ \ /-./_ \; \ \,;' \ ]],
[[ ,\ / \: `:\ \ // `:`. ]],
[[ ,' \ /-._; | : : :: ,. . ]],
[[ ,' :: /`-._| | | || ' : `.`.)]],
[[ _,' |;._:: | | | | `| : `' ]],
[[ ,' `. / |`-:_ ; | | | : \ ]],
[[ `--. ) /|-._: : | \ \ ]],
[[ / / :_| ;`-._; __..--'; : : ]],
[[ / ( ;|;-./_ _/.-:'o | / ' | ]],
[[ / , \._/_/_./--''/_|:|___|_,' | ]],
[[ : / `'-'--'----'---------' | ]],
[[ | : O ._O O_. O ._O O_. ; ; ]],
[[ : `. // // // // ,' / ]],
[[ ~~~`.______//____//____//____//_______,'~ ]],
[[ // //~ // // ]],
[[ ~~ _// _// _// ~ _// ~ ]],
[[ ~ / / / / / / / / ~ ~~ ]],
[[ ~~~ ~~~ ~~~ ~~~ ]],
},
{
[[ P___----.... ]],
[[ ! __ ]],
[[ ' ~~ ---.#..__ ` ~ ~ - - . .: ]],
[[ ` ~~--. .F~~___-__. ]],
[[ ; , .- . _! ]],
[[ , ' ; ~ . ]],
[[ , ____ ; ' _ ._ ; ]],
[[ ,_ . - '___#, ~~~ ---. _, . ' .#' ~ .; ]],
[[ =---==~~~ ~~~==--__ ; '~ -. ,#_ .' ]],
[[ ' `~=.; ` / ]],
[[ ' ' '. ]],
[[ ' ' ]],
[[ \ ' ' ' ]],
[[ `.`\ ' . ; , ]],
[[ \ ` ' ' ; ]],
[[ ; ' ' ' ]],
[[ /_ ., / __...---./ ' ]],
[[ ',_, __.--- ~~;#~ --..__ _'.-~;# // `.' ]],
[[ / / ~~ .' . #; ~~ /// #; // / ]],
[[ / ' . __ . ' ;#;_ . ////.;#;./ ; / ]],
[[ \ . / ,##' / _ /. '(/ ~||~\' ]],
[[ \ ` - . /_ . -==- ~ ' / (/ ' . ;;. ', ]],
[[ /' . ' -^^^...--- ``(/' _ ' '' `,; ]],
[[##,. .#...( ' .c c .c c c. '.. ;; ../ ]],
[[%%#%;,..##.\_ ,;###;,. ;;.:##;,. raf ]],
[[%%%%########%%%%;,.....,;%%%%%%;,.....,;%%%%%%%%%%%%%%%%%%%%............]],
},
{
[[ .. ]],
[[ .( )`-._ ]],
[[ .' || `._ ]],
[[ .' || `. ]],
[[ .' || `._ ]],
[[ .' _||_ `-. ]],
[[ .' |====| `.. ]],
[[ .' \__/ ( ) ]],
[[ ( ) || _ || ]],
[[ /|\ || .-` \ || ]],
[[ .' | ' || _.-' | || ]],
[[ / |\ \ || .' `.__.' || _.-.. ]],
[[ .' /| `. _.-' _.-' _.-.`-'`._`.` ]],
[[ \ .' | | .-.` `./ _.-`. `._.-' ]],
[[ |. | `. _.-' `. .' .' `._.`---` ]],
[[ .' | | : `._..-'.' `._..' || ]],
[[ / | \ `-._.' || || ]],
[[ | .'|`. | ||_.--.-._ || ]],
[[ ' / | \ \ __.--'\ `. : || ]],
[[ \ .' | \| ..-' \ `._-._.' || ]],
[[`.._ |/ | `. \ \ `._.- || ]],
[[ `-.._ / | \ `-.'_.--' || ]],
[[ `-.._.' | | | | _ _ _ _'_ _ _ _ _ ]],
[[ `-.._ | \ | | |_|_|_'|_|_|_|_|_|_| ]],
[[ [`--^-..._.' | | /....../| __ __ | ]],
[[ \`---.._|`--.._ | | /....../ | |__| |__| | ]],
[[ \__ _ `-.._| `-._|_|_ _ _/_ _ _ / | |__| |__| | ]],
[[ \ _o_ _`-._|_|_|_|_|_|_|_|_/ '-----------/ ]],
[[ \_`.|.' _ - .--.--.--.--.--.`--------------' ]],
[[ .```-._ ``-.._ \__ _ _ '--'--'--'--'--' - _ - _ __/ ]],
[[ .`-.```-._ ``-..__``.- `. _ - _ _ _ - _- _ __/(.``-._]],
[[ _.-` ``--.. .. _.-` ``--.. .. .._ _. __ __ _ __ ..--.._ / .( _..``]],
[[`.-._ `._ `- `-._ .`-.```-._ ``-..__``.- -._--.__---._--..-._`...```]],
[[ _.-` ``--.. .. `.-._ `._ `- `-._ .-_. ._.- -._ --.._`` _.-`LGB`-.]],
},
}
C.mediumheader = {
{
[[ |._ ]],
[[ |._( ]],
[[ <|.__..-'|. ]],
[[ ,| .|)\ ]],
[[ /| .|) \ ]],
[[ /.|) .|) \ ]],
[[ / .|) .|) \ ]],
[[ / .|) .|) \ ]],
[[ / .|) .|) \ ]],
[[ / ,--+---_ | \ , ]],
[[ '\==-,,;,,;,,;,,,,,,,-==;7 ]],
[[ _ \__...____...__ __/ _ seal _]],
[[ ~ ~~~~ ~~ ]],
},
{
[[ , ]],
[[ |"-,_ ]],
[[ I--(_ ]],
[[ ,I?8, ]],
[[ d|`888. ]],
[[ d8| 8888b ]],
[[ ,88| ?8888b ]],
[[ ,888| `88888b ]],
[[ ,8888| 8888g8b ]],
[[ ,88888| 888PX?8b ]],
[[ ,888888| 8888bd88, ]],
[[ o8888888| ,888888888 ]],
[[ d8888888P| d888888888b ]],
[[ _.d888gggg8'| 8gg88888888, ]],
[[ '\==-,,,,,,,,|/;,,,,,-==;7 ]],
[[ _ \__...____...__ __/ _ seal _]],
[[ ~ ~~~~ ~~ ]],
},
}
C.smallheader = {
{
[[ _~ ]],
[[ _~ )_)_~ ]],
[[ )_))_))_) ]],
[[ _!__!__!_ ]],
[[ \______t/ ]],
[[~~~~~~~~~~~~~]],
},
{
[[ __4___ ]],
[[ _ \ \ \ \ ]],
[[<'\ /_/_/_/ ]],
[[ ((____!___/)]],
[[ \0\0\0\0\/ ]],
},
{
[[ I\ ]],
[[ I \ ]],
[[ I \ ]],
[[ I*--\ ]],
[[ I \ ]],
[[ I \ ]],
[[ I______\ ]],
[[ _____I__O______ ]],
[[ \ ( ) b ^ ^]],
[[^^^^^^^^^^^^^^^^^ ^ ]],
},
{
[[ ^ +~+~~ ]],
[[ ^ )`.). ]],
[[ )``)``) .~~ ]],
[[ ).-'.-')|) ]],
[[ |-).-).-'_'-/ ]],
[[~~~\ `o-o-o' /~~~~~~~~~~~~~~~~~]],
[[ ~~~'---.____/~~Eric C. Liebl~~~]],
},
{
[[ ,_ ]],
[[ I~ ]],
[[ |\ ]],
[[ /|.\ ]],
[[ / || \ ]],
[[ ,' |' \ ]],
[[.-'.-==|/_--' ]],
[[`--'-------' _ seal _]],
}
}
R.width = vim.api.nvim_win_get_width(0)
R.height = vim.api.nvim_win_get_height(0)
C.header = C.bigheader[math.random(#C.bigheader)]
if #C.header >= R.height then
C.header = C.mediumheader[math.random(#C.mediumheader)]
if #C.header >= R.height then
C.header = C.smallheader[math.random(#C.smallheader)]
if #C.header >= R.height then
C.header = ""
end
end
end
alpha.setup {
layout = {
{ type = "padding", val = math.floor((R.height - #C.header) / 2) },
{ type = "text", val = C.header, opts = { position = 'center', hl = "AlphaHeader" } },
},
}