-
-
Notifications
You must be signed in to change notification settings - Fork 176
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Background header #408
Comments
I made a minimal implementation with some bugs: https://github.com/ChrisMGeo/dashboard-nvim/tree/background {
"ChrisMGeo/dashboard-nvim",
branch = "background",
event = "VimEnter",
opts = function()
local bg = [[_|_
|
_|_
| ]]
local logo = [[
██╗ █████╗ ███████╗██╗ ██╗██╗ ██╗██╗███╗ ███╗ Z
██║ ██╔══██╗╚══███╔╝╚██╗ ██╔╝██║ ██║██║████╗ ████║ Z
██║ ███████║ ███╔╝ ╚████╔╝ ██║ ██║██║██╔████╔██║ z
██║ ██╔══██║ ███╔╝ ╚██╔╝ ╚██╗ ██╔╝██║██║╚██╔╝██║ z
███████╗██║ ██║███████╗ ██║ ╚████╔╝ ██║██║ ╚═╝ ██║
╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═══╝ ╚═╝╚═╝ ╚═╝
]]
logo = string.rep("\n", 8) .. logo .. "\n\n"
local opts = {
theme = "doom",
hide = {
-- this is taken care of by lualine
-- enabling this messes up the actual laststatus setting after loading a file
statusline = false,
},
config = {
background = { lines = vim.split(bg, "\n"), tile = true, center = true },
header = vim.split(logo, "\n"),
-- stylua: ignore
center = {
{ action = "Telescope find_files", desc = " Find file", icon = " ", key = "f" },
{ action = "ene | startinsert", desc = " New file", icon = " ", key = "n" },
{ action = "Telescope oldfiles", desc = " Recent files", icon = " ", key = "r" },
{ action = "Telescope live_grep", desc = " Find text", icon = " ", key = "g" },
{ action = [[lua require("lazyvim.util").telescope.config_files()()]], desc = " Config", icon = " ", key = "c" },
{ action = 'lua require("persistence").load()', desc = " Restore Session", icon = " ", key = "s" },
{ action = "LazyExtras", desc = " Lazy Extras", icon = " ", key = "x" },
{ action = "Lazy", desc = " Lazy", icon = " ", key = "l" },
{ action = "qa", desc = " Quit", icon = " ", key = "q" },
},
footer = function()
local stats = require("lazy").stats()
local ms = (math.floor(stats.startuptime * 100 + 0.5) / 100)
return { "⚡ Neovim loaded " .. stats.loaded .. "/" .. stats.count .. " plugins in " .. ms .. "ms" }
end,
},
}
for _, button in ipairs(opts.config.center) do
button.desc = button.desc .. string.rep(" ", 43 - #button.desc)
button.key_format = " %s"
end
-- 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", {
pattern = "DashboardLoaded",
callback = function()
require("lazy").show()
end,
})
end
return opts
end,
} |
Nice concept but still need some work, unfortunately I'm not competent on this =( local bg = [[
]]
local logo = [[
! .-. _ _,
.---""""``"-,} : `"-.__.' \`-. _..-"/_,-""\
/_.,- \ / , _, \_.--. _.-" `.
.'.' '. / .'\/.-\ ; ""-; .' `,
':" \ .' /" `-; \ \ .' __ `.
/ .-" \ .' .' :-"""``"-: : ; / ","' \
.' .' '.' ; : / ` ' ; ; .' .--.._ `-, :
/ ; / ; /; :' ; ; ` \ : ; / / } , \_=' |
/ `\ _; : ; /| | ; ; \ ; ; __i-, /.-,-, : .' \ |
; ; / \ `,; :_; / ; ; ;\ \ \ : _T-" .-' / : _.',' / ; :
| / ; ; ;| ; ; __; ;\ ;\ J_ \ :-" .' : I. : : : ;
: : ; | `, `|T |`,(()\ `" T;());/=" : .'\ : / : / /` : / \
}| | ; \ ;; | ,"=-' `.,=' ; F' : ; __"`/ ;_/ / \ / :
|| ; ^ : `; ;. \ < / ; ; : :`; i`,; : / , : / :
|| \ ; : | , ; \ `, <= .'_.' ;: ;-' ;/ { : | / , :
:| : ; ' `, | \ _.' \ `,""`-, ,"/ / / / } | |/ ; /
!: | ;: `, :`-,\/,/ /\ \ Y==` / /; ; / .'| ;/; / .'
\ ; \ `! ,'.' : `. \ ; />`/ .'_,; \ ,' .'1" | ,' ` ; .'
\ ; ' ` .' / | _`"-, ;"`._.'_ -'" | ; F :/ ` :.' ; /
`, : : ,' / ; .' ,-' `i _//; `, /| ; ; \ :/ ; /
:\ : ; : /.'.-' /\ ; \ ( ; | | : / / ; ; /
\: : \ : ;.' / :/| \ \ ;| : \ : / / |/
:| \ \ \ | ;/ / T | \ :`: ; \ | : : ;'
!; \ \ \ | ; / : : `. |; ; \ | : ; |
; `. \ \ | /\ .' ; : : \ ;. `; ; ; /| ; ;
, `, \, \: : `.:" ; .'^ | `J ; \`, / .' : / ;/
\ \ ;`. \\ ; `@__.^-'" `. ; `, / /| ,`-, ; ;.' .' / /`
\ `! `.:\ ; "+,_.a._,-' ; ^ ;\ : ` / .' ;
`. `,`,_` `; `"` `"-,; / ) : \| :.'/ /
`-, \ `-,_`-.__ `-, / :.' : / ; /
\ `, `,`" `""--..__.....-----.._ `""\"` | /: | /
`, ; \ `. "-, `. ;' ; ; /
fsc \ :`, : `-,__ ',`. \ ` / .' /
\ : `,! `",`,`,J .'+' .'
`,! `J" `"/_.'
]] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Describe the solution you'd like
I'd like a feature that'd allow the header to be used as the background, with custom options on how to handle when the window is much larger than the ascii art (tiling etc.). You wouldn't need to resize the ascii art when the window is much smaller than the art, instead just cropping the center of the art instead.
Describe alternatives you've considered
Instead of modifying the header, we could also add a separate optional config option named background, that does the same thing, but you still have the header.
Additional context
Some images for context:
The text was updated successfully, but these errors were encountered: