nvimdev / dashboard-nvim

vim dashboard
MIT License
2.19k stars 177 forks source link
dashboard neovim neovim-plugin vim vim-plugin vim-startify

Fancy and Blazing Fast start screen plugin of neovim

Hyper
Doom

Feature

Install

{
  'nvimdev/dashboard-nvim',
  event = 'VimEnter',
  config = function()
    require('dashboard').setup {
      -- config
    }
  end,
  dependencies = { {'nvim-tree/nvim-web-devicons'}}
}
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 hyper
disable_move    --  default is false disable move keymap for hyper
shortcut_type   --  shorcut type 'letter' or 'number'
shuffle_letter  --  default is true, shortcut 'letter' will be randomize, set to false to have ordered letter.
change_to_vcs_root -- default is false,for open file in hyper mru. it will change to the root of vcs
config = {},    --  config used for theme
hide = {
  statusline    -- hide statusline default is true
  tabline       -- hide the tabline
  winbar        -- hide winbar
},
preview = {
  command       -- preview command
  file_path     -- preview file path
  file_height   -- preview file height
  file_width    -- preview file width
},

Theme config

the config field is used for theme. general field

config = {
  header -- type is table def
  week_header = {
    enable  --boolean use a week header
    concat  --concat string after time string line
    append  --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 functino type, e.g.
  -- action = func(path) vim.cmd('Telescope find_files cwd=' .. path) end
  project = { enable = true, limit = 8, icon = 'your icon', label = '', action = 'Telescope find_files cwd=' },
  mru = { 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 = {},
}

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

Highlight

all highlight groups

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

Example config

example config of screenshot

Hyper ```lua 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 ```lua db.setup({ theme = 'doom', config = { header = {}, --your header center = { { 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 } }) ```