Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

607 Commits

Repository files navigation

Fancy and Blazing Fast start screen plugin of neovim

HyperDoom

Feature

  • Low memory usage. dashboard does not store the all user configs in memory like header etc these string will take some memory. now it will be clean after you open a file. you can still use dashboard command to open a new one , then dashboard will read the config from cache.
  • Blazing fast

Install

  • Lazy.nvim
{
'nvimdev/dashboard-nvim',
event='VimEnter',
config=function()
require('dashboard').setup {
-- config
}
end,
dependencies= { {'nvim-tree/nvim-web-devicons'}}
}
  • Packer
use {
'nvimdev/dashboard-nvim',
event='VimEnter',
config=function()
require('dashboard').setup {
-- config
}
end,
requires= {'nvim-tree/nvim-web-devicons'}
}

Configuration

Options

theme='hyper' -- theme is doom and hyper default is hyperdisable_move-- default is false disable move keymap for hypershortcut_type-- shortcut type 'letter' or 'number'shuffle_letter-- default is false, shortcut 'letter' will be randomize, set to false to have ordered letterletter_list-- default is a-z, excluding j and kchange_to_vcs_root-- default is false,for open file in hyper mru. it will change to the root of vcsconfig= {}, -- config used for themehide= {
statusline-- hide statusline default is truetabline-- hide the tablinewinbar-- hide winbar
},
preview= {
command-- preview commandfile_path-- preview file pathfile_height-- preview file heightfile_width-- preview file width
},

Theme config

the config field is used for theme. general field

config= {
header-- type is table defweek_header= {
enable--boolean use a week headerconcat--concat string after time string lineappend--table append after time string line
},
disable_move-- boolean default is false disable move key
}

Hyper

when use hyper theme the available options in config is

config= {
shortcut= {
-- action can be a function type
{ desc=string, group='highlight group', key='shortcut key', action='action when you press key' },
},
packages= { enable=true }, -- show how many plugins neovim loaded-- limit how many projects list, action when you press key or enter it will run this action.-- action can be a function type, e.g.-- action = func(path) vim.cmd('Telescope find_files cwd=' .. path) endproject= { enable=true, limit=8, icon='your icon', label='', action='Telescope find_files cwd=' },
mru= { enable=true, limit=10, icon='your icon', label='', cwd_only=false },
footer= {}, -- footer
}

Doom

when use doom theme the available options in config is

config= {
center= {
{
icon='',
icon_hl='group',
desc='description',
desc_hl='group',
key='shortcut key in dashboard buffer not keymap !!',
key_hl='group',
key_format=' [%s]', -- `%s` will be substituted with value of `key`action='',
},
},
footer= {},
vertical_center=false, -- Center the Dashboard on the vertical (from top to bottom)
}

notice if you don't link config every highlight group. you can ignore this key. dashboard will use default highlight group like DashboardKey/Icon/Desc instead

Commands

  • Dashboard open dashboard
  • DbProjectDelete count delete project in cache works for hyper theme. count is number
  • DashboardUpdateFooter updates the content of the Footer

Highlight

all highlight groups

-- General
DashboardHeader DashboardFooter
-- Hyper theme
DashboardProjectTitle DashboardProjectTitleIcon DashboardProjectIcon
DashboardMruTitle DashboardMruIcon DashboardFiles DashboardShortCutIcon
-- Doom theme
DashboardDesc DashboardKey DashboardIcon DashboardShortCut

Example config

example config of screenshot

Hyper
db.setup({
theme='hyper',
config= {
week_header= {
enable=true,
},
shortcut= {
{ desc='󰊳 Update', group='@property', action='Lazy update', key='u' },
{
icon='',
icon_hl='@variable',
desc='Files',
group='Label',
action='Telescope find_files',
key='f',
},
{
desc=' Apps',
group='DiagnosticHint',
action='Telescope app',
key='a',
},
{
desc=' dotfiles',
group='Number',
action='Telescope dotfiles',
key='d',
},
},
},
})
Doom
db.setup({
theme='doom',
config= {
header= {}, --your headercenter= {
{
icon='',
icon_hl='Title',
desc='Find File ',
desc_hl='String',
key='b',
keymap='SPC f f',
key_hl='Number',
key_format=' %s', -- remove default surrounding `[]`action='lua print(2)'
},
{
icon='',
desc='Find Dotfiles',
key='f',
keymap='SPC f d',
key_format=' %s', -- remove default surrounding `[]`action='lua print(3)'
},
},
footer= {} --your footer
}
})
Changed
  • Removed Session as a start screen plugin speed is first.if you want use session you can take a look at glepnir/dbsession.nvim
  • Removed Ueberzug script, as the Ueberzug author has deleted the repository.

TODO

  • I will write a plugin to implement some popular terminal evaluators image protocol then I think can make it work with dashboard

Backers

@RakerZh

Donate

If you'd like to support my work financially, buy me a drink through Github Sponsor or

LICENSE

MIT

Releases

Sponsor this project

Packages

Used by

Contributors

Languages