share your alpha theme #16
Replies: 133 comments 320 replies
-
I'm not quite satisfied with the layout yet, I started out with some colours but ended up omitting them for simplicity. Here's what it looks like so far: |
Beta Was this translation helpful? Give feedback.
-
I just went for a simple layout and I just let The quote at the bottom changes randomly every time vim is opened, like how it functions in I pulled most of the ideas for this config from various reddit discussions and looking at other peoples dotfiles, here's how my local alpha = require("alpha")
local dashboard = require("alpha.themes.dashboard")
-- Set header
dashboard.section.header.val = {
" ",
" ███╗ ██╗███████╗ ██████╗ ██╗ ██╗██╗███╗ ███╗ ",
" ████╗ ██║██╔════╝██╔═══██╗██║ ██║██║████╗ ████║ ",
" ██╔██╗ ██║█████╗ ██║ ██║██║ ██║██║██╔████╔██║ ",
" ██║╚██╗██║██╔══╝ ██║ ██║╚██╗ ██╔╝██║██║╚██╔╝██║ ",
" ██║ ╚████║███████╗╚██████╔╝ ╚████╔╝ ██║██║ ╚═╝ ██║ ",
" ╚═╝ ╚═══╝╚══════╝ ╚═════╝ ╚═══╝ ╚═╝╚═╝ ╚═╝ ",
" ",
}
-- Set menu
dashboard.section.buttons.val = {
dashboard.button( "e", " > New file" , ":ene <BAR> startinsert <CR>"),
dashboard.button( "f", " > Find file", ":cd $HOME/Workspace | Telescope find_files<CR>"),
dashboard.button( "r", " > Recent" , ":Telescope oldfiles<CR>"),
dashboard.button( "s", " > Settings" , ":e $MYVIMRC | :cd %:p:h | split . | wincmd k | pwd<CR>"),
dashboard.button( "q", " > Quit NVIM", ":qa<CR>"),
}
-- Set footer
-- NOTE: This is currently a feature in my fork of alpha-nvim (opened PR #21, will update snippet if added to main)
-- To see test this yourself, add the function as a dependecy in packer and uncomment the footer lines
-- ```init.lua
-- return require('packer').startup(function()
-- use 'wbthomason/packer.nvim'
-- use {
-- 'goolord/alpha-nvim', branch = 'feature/startify-fortune',
-- requires = {'BlakeJC94/alpha-nvim-fortune'},
-- config = function() require("config.alpha") end
-- }
-- end)
-- ```
-- local fortune = require("alpha.fortune")
-- dashboard.section.footer.val = fortune()
-- Send config to alpha
alpha.setup(dashboard.opts)
-- Disable folding on alpha buffer
vim.cmd([[
autocmd FileType alpha setlocal nofoldenable
]]) edit: typos |
Beta Was this translation helpful? Give feedback.
-
Here is my simple config :-) |
Beta Was this translation helpful? Give feedback.
-
Just a standard Minimal dashboard with a touch of sad horni boy :) If you wanna see my config just go to my dotfiles |
Beta Was this translation helpful? Give feedback.
-
Not a lot to say, it randomly chooses a different logo when you open it. The arts aren't mine, but I forgot who did them (half a year ago), |
Beta Was this translation helpful? Give feedback.
-
implement in this repo please see it and if you found it interesting please star it, also if you found any bugs or improvement please send pull req. tank you |
Beta Was this translation helpful? Give feedback.
-
Simple and minimal, config soon whenever I release my dotfiles |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
You can see the configuration of Visual Studio Neovim . I use this configuration. |
Beta Was this translation helpful? Give feedback.
-
I had to modify Alpha a bit to allow just text messages on a intro screen. But this is not what I wanted to share… I'm using Alpha to remind myself of multiple keymaps I've created for my tasks. But Alpha cannot handle multicolumn layouts, and multicolumn layouts are much more efficient in using screen estate. So, I created a multi-column function EDITED: changed screenshot and code to show how to highlight text ranges. Hope you guys will find this useful and make some additions. Source codelocal alpha = require("alpha")
local col = function(strlist, opts)
-- strlist is a TABLE of TABLES, representing columns of text
-- opts is a text display option
-- column spacing
local padding = 12
-- fill lines up to the maximim length with 'fillchar'
local fillchar = ' '
-- columns padding char (for testing)
local padchar = ' '
-- define maximum string length in a table
local maxlen = function(str)
local max = 0
for i in pairs(str) do
if #str[i] > max then
max = #str[i]
end
end
return max
end
-- add as much right-padding to align the text block
local pad = function(str, max)
local strlist = {}
for i in pairs(str) do
if #str[i] < max then
local newstr = str[i] .. string.rep(fillchar, max-#str[i])
table.insert(strlist, newstr)
else
table.insert(strlist, str[i])
end
end
return strlist
end
-- this is a table for text strings
local values = {}
-- process all the lines
for i=1,maxlen(strlist) do
local str = ''
-- process all the columns but last, because we dont wand extra padding
-- after last column
for column=1,#strlist-1 do
local maxstr = maxlen(strlist[column])
local padded = pad(strlist[column], maxstr)
if strlist[column][i] == nil then
str = str .. string.rep(fillchar, maxstr) .. string.rep(padchar, padding)
else
str = str .. padded[i] .. string.rep(padchar, padding)
end
end
-- lets process the last column, no extra padding
do
local maxstr = maxlen(strlist[#strlist])
local padded = pad(strlist[#strlist], maxstr)
if strlist[#strlist][i] == nil then
str = str .. string.rep(fillchar, maxlen(strlist[#strlist]))
else
str = str .. padded[i]
end
end
-- insert result into output table
table.insert(values, { type = "text", val = str, opts = opts })
end
return values
end
local my_unimpaired = {
"[s ]s prev/next spelling error",
"[c ]c prev/next Git change",
"[d ]d prev/next diagnostics",
"[b ]b prev/next buffer",
"[z ]z prev/next tab",
"[f ]f prev/next file",
"[q ]q prev/next quickfix list",
"[l ]l prev/next location list",
}
local vim_signature = {
"mx dmx toggle mark 'x'",
"m, m. m- m<Space> place/remove/delete all on current line/delete all buffer marks",
"[` ]` [' ]' jump to prev/next mark | start of a line with mark",
"`[ `] jump by alphabetical order to prev/next mark",
"'[ '] jump by alphabetical order to start of prev/next line having a mark",
"m[0-9] toggle the marker !@#$%^&*()",
"m<S-[0-9]> remove all markers of the same type",
"[- ]- [= ]= jump to prev line having a marker of the same type",
"m<BS> remove all markers",
}
local my_alts = {
"ALT-A Compress spaces in current line",
"ALT-SHIFT-A Compress spaces in current paragraph",
"ALT-I Toggle terminal window",
"ALT-Q Rewrap current paragraph",
"ALT-W Toggle line wrap",
"ALT-D Toggle show hidden",
}
local fzf_vim = {
"CTRL-F B \\\\ Buffers",
" // Current buffer lines filtering",
" ?? Buffer lines filtering",
" || Windows manager",
" '' Registers manager",
"CTRL-F F Files",
"CTRL-F R RipGrep files from current directory",
"CTRL-F G Files in Git repository",
"CTRL-F M `` Marks",
"CTRL-F H History",
"CTRL-F : Commands history",
"CTRL-F / Search history",
"CTRL-F T File types",
"CTRL-F SHIFT-T Tags with word under cursor",
"CTRL-F W List buffer lines with word under cursor",
"CTRL-F C Commands",
"CTRL-F SHIFT-C Commits",
"CTRL-F SHIFT-B Buffer commits",
"CTRL-F SHIFT-M Keyboard mappings",
}
local fkeys = {
"F2 Save file",
"SHIFT-F2 Save all files",
"F3 Toggle quickfix list",
"SHIFT-F3 Toggle location list",
"F5 Toggle tree-sitter window",
"F6 Toggle undo tree window",
"F7 Enable spellchecking engine",
"F10 Quit",
"SHIFT-F10 Quit all",
"CTRL-SHIFT-F10 Quit all (no save)",
"SHIFT-F7 Enable Vale linter",
"F11 Toggle tree-sitter highlight floater",
"SHIFT-F11 Toggle current word dynamic highlighter",
"CTRL-F11 Enable current word highlight :Quickhl*",
"F12 Close current buffer (no window close)",
}
local bookmarks = {
"bm bookmark toggle",
"bi bookmark annotate",
"bp bn prev/next bookmark",
"ba show all bookmarks",
"bc bx clear (all) bookmark(s)",
"bkk bjj move bookmark up (down)",
}
local others = {
"[m ]m Headers in RST",
"[p ]p [k ]k ???",
}
local head = {
type = "text",
val = {
[[███ ██ ███████ ██████ ██ ██ ██ ███ ███]],
[[████ ██ ██ ██ ██ ██ ██ ██ ████ ████]],
[[██ ██ ██ █████ ██ ██ ██ ██ ██ ██ ████ ██]],
[[██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██]],
[[██ ████ ███████ ██████ ████ ██ ██ ██]]
},
opts = {
position = "center",
hl = "Type",
},
}
local foot = {
type = "text",
val = "footer",
opts = {
position = "center",
hl = "Number",
},
}
local block1 = {
type = "group",
val = col({my_unimpaired, vim_signature}, { position = "center", hl = {{"Comment", 0, -1}, { "Title", 92, 97 }, { "Title", 137, 154 }} }),
opts = {
spacing = 0
},
}
local block2 = {
type = "group",
val = col({fzf_vim, fkeys}, { position = "center", hl = {{"Comment", 0, -1}, { "Title", 94, 108 }, { "Title", 166, 180 }} }),
opts = {
spacing = 0
},
}
local block3 = {
type = "group",
val = col({my_alts, bookmarks, others}, { position = "center", hl = {{"Comment", 0, -1}, { "Title", 89, 100 }, { "Title", 152, 159 }, {"Title", 198, 209}} }),
opts = {
spacing = 0
},
}
local opts = {
layout = {
{ type = "padding", val = 2 },
head,
{ type = "padding", val = 2 },
block1,
{ type = "padding", val = 2 },
block2,
{ type = "padding", val = 2 },
block3,
},
opts = {
noautocmd = true,
margin = 5,
},
}
alpha.setup(opts) |
Beta Was this translation helpful? Give feedback.
-
I've created my own layout, using a lot of the functions in the Dashboard and Startify themes to get a sort of hybrid:
The config lives in my nvim branch if it's of interest to anyone else. Thanks @goolord for making such a cool plugin, I've really enjoyed learning a bit of Lua and getting this setup, I'm sure I'll be tinkering with it for a while! |
Beta Was this translation helpful? Give feedback.
-
Here is mine. It features a bigger banner and is meant for larger screens.
See the reply section for my full config if you are interested. |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
Some of my configs |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
I loved it!! Many thanks to:
|
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
I made an art-to-alpha-nvim header generator if anyone wants to try it out. It'll generate the whole Lua file that you can just place in your https://alphaheader.nexxai.dev/ Very interested to hear what people think. |
Beta Was this translation helpful? Give feedback.
-
Felt like having a pip boy in my workflow |
Beta Was this translation helpful? Give feedback.
-
Basic prototype using image.nvim with random images from a chosen directory, a little keyword-filter and simple auto-scaling. Configuring tmux to work with image-rendering isn't fun and this is most likely a sub optimal solution but here is my setup for anyone curious:
local alpha = require("alpha")
local dashboard = require("alpha.themes.dashboard")
dashboard.section.header.val = {
" ",
" ███╗ ██╗███████╗ ██████╗ ██╗ ██╗██╗███╗ ███╗ ",
" ████╗ ██║██╔════╝██╔═══██╗██║ ██║██║████╗ ████║ ",
" ██╔██╗ ██║█████╗ ██║ ██║██║ ██║██║██╔████╔██║ ",
" ██║╚██╗██║██╔══╝ ██║ ██║╚██╗ ██╔╝██║██║╚██╔╝██║ ",
" ██║ ╚████║███████╗╚██████╔╝ ╚████╔╝ ██║██║ ╚═╝ ██║ ",
" ╚═╝ ╚═══╝╚══════╝ ╚═════╝ ╚═══╝ ╚═╝╚═╝ ╚═╝ ",
}
dashboard.section.header.opts.position = "center"
dashboard.section.footer.opts.position = "center"
dashboard.section.buttons.val = {
--dashboard.button( "r", " > Recent" , ":Telescope oldfiles<CR>"),
}
local fortune = require("alpha.fortune")
dashboard.section.footer.val = fortune()
dashboard.section.header.opts.hl = "Statement"
dashboard.section.buttons.opts.hl = "Type"
dashboard.section.footer.opts.hl = "Type"
alpha.setup(dashboard.opts)
-- Disable folding on alpha buffer
vim.cmd([[
autocmd FileType alpha setlocal nofoldenable
]])
-- Image Integration
local image = nil
local keywords = {"Frieren", "Freiren", "Fern"}
--local image_path = vim.fn.expand("~/Pictures/Anime-Girls-Holding-Programming-Books/C++/Frieren_And_Fern_Reading_The_C++_Programming_Language.png") -- Change to your image path
local paths = io.popen("find ~/Pictures/Anime-Girls-Holding-Programming-Books -type f \\( -iname '*.jpg' -o -iname '*.png' \\)", "r")
local imgs = {}
for l in assert(paths):lines() do
for _,k in pairs(keywords) do
if string.match(l,k) then
table.insert(imgs, l)
break
end
end
end
assert(paths):close()
local image_width = 50
local image_height = 30
local image_path = imgs[math.random(#imgs)]
local dim = assert(io.popen("magick identify -ping -format '%w\n%h' "..image_path))
local i_width, i_height = dim:read("*n", "*n")
i_width, i_height = i_width or image_width, i_height or image_width
if(i_width*0.75) < i_height then
image_width = math.ceil(i_width/i_height*image_height)
end
vim.api.nvim_create_autocmd("User", {
pattern = "AlphaReady",
desc = "Render an image on the dashboard",
callback = function()
vim.go.laststatus = 0
vim.opt.showtabline = 0
local buf = vim.api.nvim_get_current_buf()
local win = vim.api.nvim_get_current_win()
local win_width = vim.api.nvim_win_get_width(win)
local col = math.floor(win_width / 2) - math.floor(image_width / 2)
-- Delay rendering so the image doesn't slow startup
vim.defer_fn(function()
if vim.api.nvim_get_current_buf() ~= buf then return end
image = require("image").from_file(image_path, {
window = win,
buffer = buf,
width = image_width,
height = image_height,
x = col,
y = 10,
with_virtual_padding = true,
id = image_path
})
local old_max_height_window_percentage = image.global_state.options.max_height_window_percentage
image.global_state.options.max_height_window_percentage = 75
image:render()
image.global_state.options.max_height_window_percentage = old_max_height_window_percentage
end, 150)
end,
})
vim.api.nvim_create_autocmd("BufUnload", {
buffer = 0,
desc = "Cleanup image when leaving alpha",
callback = function()
vim.go.laststatus = 3
vim.opt.showtabline = 2
if image then image:clear() end
end,
}) |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
It's pretty clear what's on my mind. return {
"goolord/alpha-nvim",
lazy = false,
config = function()
local alpha = require("alpha")
local dashboard = require("alpha.themes.dashboard")
-- Set header
dashboard.section.header.val = {
" ",
" ▄▄▄██▀▀▀▒█████ ▓██ ██▓ ▄▄▄▄ ▒█████ ▓██ ██▓ ",
" ▒██ ▒██▒ ██▒▒██ ██▒▓█████▄ ▒██▒ ██▒▒██ ██▒ ",
" ░██ ▒██░ ██▒ ▒██ ██░▒██▒ ▄██▒██░ ██▒ ▒██ ██░ ",
" ▓██▄██▓ ▒██ ██░ ░ ▐██▓░▒██░█▀ ▒██ ██░ ░ ▐██▓░ ",
" ▓███▒ ░ ████▓▒░ ░ ██▒▓░░▓█ ▀█▓░ ████▓▒░ ░ ██▒▓░ ",
" ▒▓▒▒░ ░ ▒░▒░▒░ ██▒▒▒ ░▒▓███▀▒░ ▒░▒░▒░ ██▒▒▒ ",
" ▒ ░▒░ ░ ▒ ▒░ ▓██ ░▒░ ▒░▒ ░ ░ ▒ ▒░ ▓██ ░▒░ ",
" ░ ░ ░ ░ ░ ░ ▒ ▒ ▒ ░░ ░ ░ ░ ░ ░ ▒ ▒ ▒ ░░ ",
" ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ",
" ░ ░ ░ ░ ░ ",
" ",
}
-- Set footer
local lazy_stats = require("lazy").stats() -- Get Lazy.nvim stats
dashboard.section.footer.val = {
"If You Don't Take Risks, You Can't Create a Future.",
" ",
" - Monkey D. Luffy",
" ",
" Plugins loaded: " .. lazy_stats.loaded .. " / " .. lazy_stats.count,
}
-- Send config to alpha
alpha.setup(dashboard.opts)
-- Disable folding on alpha buffer
vim.cmd([[
autocmd FileType alpha setlocal nofoldenable
]])
end,
} |
Beta Was this translation helpful? Give feedback.
-
return {
"goolord/alpha-nvim",
dependencies = {
"nvim-tree/nvim-web-devicons",
"nvim-lua/plenary.nvim",
},
config = function()
local alpha = require("alpha")
local dashboard = require("alpha.themes.dashboard")
-- Set header
dashboard.section.header.val = {
[[ ┌─────────────────────────────────────────────────────────────────┐ ]],
[[ │ , │ ]],
[[ │ \`-._ __ │ ]],
[[ │ \\ \-..____,.' `. │ ]],
[[ │ : ) : :\ │ ]],
[[ │ ;' ' ; | : │ ]],
[[ │ ).. .. .:.`.; : │ ]],
[[ │ /::... .:::... ` ; │ ]],
[[ │ `:o> /\o_> : `. │ ]],
[[ │ `-`.__ ; __..--- /:. \ │ ]],
[[ │ ==== \_/ ;=====_.':. ; │ ]],
[[ │ ,/'`--'...`--.... ; │ ]],
[[ │ ; ; │ ]],
[[ │ . ' ; │ ]],
[[ │ .' .. , . ; │ ]],
[[ │ : ::.. / ;::. | │ ]],
[[ │ / `.;::. | ;:.. ; │ ]],
[[ │ : |:. : ;:. ; │ ]],
[[ │ : :: ;:.. |. ; │ ]],
[[ │ : :; :::....| | │ ]],
[[ │ /\ ,/ \ ;:::::; ; │ ]],
[[ │ .:. \:..| : ; '.--| ; │ ]],
[[ │ ::. :'' `-.,,; ;' ; ; │ ]],
[[ │ .-'. _.'\ / `; \,__: \ │ ]],
[[ │ `---' `----' ; / \,.,,,/ │ ]],
[[ │ `----` │ ]],
[[ └─────────────────────────────────────────────────────────────────┘ ]],
[[ Neovim ]],
}
-- Set menu
dashboard.section.buttons.val = {
dashboard.button("e", " New file", ":ene <BAR> startinsert <CR>"),
dashboard.button("f", " Find file", ":Telescope find_files <CR>"),
dashboard.button("r", " Recent", ":Telescope oldfiles<CR>"),
dashboard.button("q", " Quit NVIM", ":qa<CR>"),
}
alpha.setup(dashboard.opts)
-- Disable folding on alpha buffer
vim.cmd([[ autocmd FileType alpha setlocal nofoldenable ]])
end,
} |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
local status_ok, alpha = pcall(require, "alpha")
if not status_ok then
return
end
local dashboard = require("alpha.themes.dashboard")
dashboard.section.header.val = {}
dashboard.section.buttons.val = {}
dashboard.section.footer.val = "An idiot admires complexity, a genius admires simplicity. -- Terry A. Davis"
dashboard.opts.opts.noautocmd = true
alpha.setup(dashboard.opts) |
Beta Was this translation helpful? Give feedback.
-
This is my alpha.nvim, enjoy 👍🏻 🥳 The Codereturn {
{
"goolord/alpha-nvim",
event = "VimEnter",
enabled = true,
init = false,
opts = function()
local dashboard = require("alpha.themes.dashboard")
local logo = [[
⠀⠀⠀⢀⣀⣤⣤⣤⣤⣄⡀⠀⠀⠀⠀
⠀⢀⣤⣾⣿⣾⣿⣿⣿⣿⣿⣿⣷⣄⠀⠀
⢠⣾⣿⢛⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡀
⣾⣯⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⡿⠻⢿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠻⢿⡵
⢸⡇⠀⠀⠉⠛⠛⣿⣿⠛⠛⠉⠀⠀⣿⡇
⢸⣿⣀⠀⢀⣠⣴⡇⠹⣦⣄⡀⠀⣠⣿⡇
⠈⠻⠿⠿⣟⣿⣿⣦⣤⣼⣿⣿⠿⠿⠟⠀
⠀⠀⠀⠀⠸⡿⣿⣿⢿⡿⢿⠇⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠈⠁⠈⠁⠀⠀⠀⠀⠀⠀
_
_ __ ___ _____ _(_)_ __ ___
| '_ \ / _ \/ _ \ \ / / | '_ ` _ \
| | | | __/ (_) \ V /| | | | | | |
|_| |_|\___|\___/ \_/ |_|_| |_| |_|
]]
dashboard.section.header.val = vim.split(logo, "\n")
-- stylua: ignore
dashboard.section.buttons.val = {
dashboard.button("f", " " .. " Find file", "<cmd> lua LazyVim.pick()() <cr>"),
dashboard.button("n", " " .. " New file", [[<cmd> ene <BAR> startinsert <cr>]]),
dashboard.button("r", " " .. " Recent files", [[<cmd> lua LazyVim.pick("oldfiles")() <cr>]]),
dashboard.button("g", " " .. " Find text", [[<cmd> lua LazyVim.pick("live_grep")() <cr>]]),
dashboard.button("c", " " .. " Config", "<cmd> lua LazyVim.pick.config_files()() <cr>"),
dashboard.button("s", " " .. " Restore Session", [[<cmd> lua require("persistence").load() <cr>]]),
dashboard.button("x", " " .. " Lazy Extras", "<cmd> LazyExtras <cr>"),
dashboard.button("l", " " .. " Lazy", "<cmd> Lazy <cr>"),
dashboard.button("q", " " .. " Quit", "<cmd> qa <cr>"),
}
for _, button in ipairs(dashboard.section.buttons.val) do
button.opts.hl = "AlphaButtons"
button.opts.hl_shortcut = "AlphaShortcut"
end
vim.cmd("hi AlphaHeader guifg=#FEBA17")
dashboard.section.header.opts.hl = "AlphaHeader"
dashboard.section.buttons.opts.hl = "AlphaButtons"
dashboard.section.footer.opts.hl = "AlphaFooter"
dashboard.opts.layout[1].val = 3
return dashboard
end,
config = function(_, dashboard)
-- close Lazy and re-open when the dashboard is ready
if vim.o.filetype == "lazy" then
vim.cmd.close()
vim.api.nvim_create_autocmd("User", {
once = true,
pattern = "AlphaReady",
callback = function()
require("lazy").show()
end,
})
end
require("alpha").setup(dashboard.opts)
vim.api.nvim_create_autocmd("User", {
once = true,
pattern = "LazyVimStarted",
callback = function()
local stats = require("lazy").stats()
local ms = (math.floor(stats.startuptime * 100 + 0.5) / 100)
dashboard.section.footer.val = "⚡ Neovim loaded "
.. stats.loaded
.. "/"
.. stats.count
.. " plugins in "
.. ms
.. "ms"
pcall(vim.cmd.AlphaRedraw)
end,
})
end,
},
}
|
Beta Was this translation helpful? Give feedback.
-
I made plugin alpha-ascii.nvim that provides custom ASCII headers for the dashboard screen. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
![]() The config: return {
{
"goolord/alpha-nvim",
dependencies = { "nvim-tree/nvim-web-devicons" },
config = function()
local alpha = require("alpha")
local dashboard = require("alpha.themes.dashboard")
dashboard.section.header.val = vim.split(
[[
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣠⣤⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣾⣿⣿⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣿⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⣿⣶⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣾⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢿⣿⣿⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⢠⣿⣷⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣷⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⢠⣿⣿⣿⣿⣄⢀⣀⣀⣀⣀⣀⣀⣀⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣿⣿⣿⣿⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣦⣀⣠⠴⠚⢛⣛⣭⣥⣽⣶⣶⣶⣶⣶⣶⣶⣶⣴⣮⣭⣛⣒⡢⢤⣄⣀⡀⠀⠀⣠⣿⣿⣿⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣿⣿⣿⣿⣿⡿⠟⣃⣀⣴⢶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡭⢟⣵⣿⣿⣿⣿⣿⣿⠇⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣿⡿⠛⣹⣶⠿⣿⣿⣷⡿⠿⢿⣿⠿⠛⠛⠛⠛⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⣻⣴⣿⣿⣿⣿⣿⣿⣿⡟⢸⣿⡿⠃⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⢲⣶⣶⣶⣶⡾⣉⣤⣾⣿⣿⣿⠿⣿⣿⣋⣙⣿⡇⢀⠀⠰⣿⡷⠀⢹⣿⠛⠛⣿⣿⣿⣿⣿⣿⣿⣿⠀⢿⣿⣿⣿⣿⣿⣿⣿⣿⠁⠟⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠹⣿⠟⣋⣵⣿⢏⣾⣿⣿⢻⣥⣶⣿⣿⣿⣿⣷⣌⣻⠷⠖⢀⣠⣿⡛⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣤⣙⠿⠿⣿⣿⠿⠿⣛⣤⣅⣤⣠⣤⣤⣤⣶⣶⡄⠀⠀
⠀⠀⠀⠀⠀⠀⢠⡾⣒⣿⡟⣡⣦⣿⣿⣿⡇⣩⣛⠿⠿⠿⠿⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⡛⢛⣛⣛⠿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣶⣾⣿⡿⣫⣵⣿⣿⣿⣿⣿⣿⠟⠋⠀⠀⠀
⠀⠀⠀⠀⠀⠀⣾⢡⣿⠿⠙⣽⡶⠿⣿⣿⣧⣛⣵⡄⢀⡀⠀⠀⠀⠈⠙⠻⠿⡿⠿⠿⠿⠟⢊⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⣙⠻⠿⠿⢿⡿⠟⠁⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⣼⠃⣿⣿⡷⢿⠟⣩⣾⣿⣿⣿⣿⣿⡇⠀⣟⡷⠀⠀⠀⠀⠀⠀⢺⡿⠃⠀⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠛⣧⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⣿⢠⣿⣿⡶⣿⣟⣿⣿⣿⣿⣿⣿⣿⠇⠀⢁⣤⣶⠞⣡⣴⣶⣶⣶⠚⣡⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⣿⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠘⡷⢸⣿⣿⣵⡿⢿⣩⣷⣿⣿⣿⣿⠟⢀⣴⣿⣿⣷⣿⣿⣿⠟⢋⣤⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⣿⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⣷⠸⣿⣯⣠⡿⠦⠿⣿⣿⣿⣿⣿⢀⣾⣿⡿⢻⣿⠻⣫⣤⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢡⡟⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⢻⡄⢿⣿⣗⢳⡶⢷⣿⣿⣿⣿⣿⣿⣶⣶⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠇⢸⠇⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠘⣇⡘⣿⣿⣞⣿⣶⢟⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⣰⡟⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⣽⣷⡌⢿⣿⣿⣻⡿⢛⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⣴⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠰⠿⠿⠿⠿⣆⠹⣿⣿⣷⣻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⣡⡶⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢶⣉⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢋⣩⣍⣉⠛⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⣡⣴⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠱⢦⡍⠛⠻⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⣄⢻⣿⣿⣿⡇⣿⣿⣿⣿⣿⣿⣿⣟⣏⣴⠿⠻⢿⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠛⠶⣬⣙⡙⠿⠿⢿⣿⣿⣿⣿⣿⣿⣿⣷⣝⢿⣿⡇⡿⢿⠟⣻⡿⠷⠚⠉⠁⠀⠀⠀⠀⠉⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠛⠒⠲⣷⣭⣭⣭⣭⣭⣭⣭⡴⢍⢠⠛⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
]],
"\n",
{}
)
-- Set menu
dashboard.section.buttons.val = {
dashboard.button("e", " > Oil", ":Oil<CR>"),
dashboard.button("p", " > Projects", ":NeovimProjectDiscover<CR>"),
dashboard.button("q", " > Quit NVIM", ":qa<CR>"),
}
-- Footer setup
local function setup_footer()
vim.api.nvim_create_autocmd("User", {
pattern = "LazyVimStarted",
callback = function()
local lazy = require("lazy").stats()
dashboard.section.footer.val = string.format(
"⚡ Loaded %d/%d plugins in %.2fms",
lazy.loaded,
lazy.count,
lazy.startuptime
)
pcall(vim.cmd.AlphaRedraw)
end,
})
end
setup_footer()
alpha.setup(dashboard.opts)
end,
},
}
Cacodemon ASCII art seems to be quite common. I found this one on reddit by Sindrets |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
share screenshots/screencasts/code of your alpha rice :-)
Beta Was this translation helpful? Give feedback.
All reactions