Skip to content
forked from willothy/veil.nvim

A blazingly fast, animated, and infinitely customizeable startup / dashboard plugin

Notifications You must be signed in to change notification settings

luxus/veil.nvim

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

veil.nvim

A blazingly fast, animated, and infinitely customizeable startup / dashboard plugin

Warning
Work in progress, there may be some bugs :)

Features

  • Animated sections rendered with virtual text
  • Builtin "standard library"
    • Buttons builtin
    • Ascii frame anim builtin
    • Vertical padding builtin
  • Static text sections
  • Dynamic text sections
    • Per-section state
  • Simple and extensible API
  • Interactible components (use buttons with <CR>)
    • Cursor 'hover' events
    • Lock cursor to menus
  • Highlighting
  • Shortcut mappings
  • Startup in <1ms
  • Mouse events
  • API for advanced rendering / terminal graphics
    • Bundle drawille (temporary, in progress)
    • Custom rendering API (to eventually replace drawille dependency)

Demo (default config)

VeilNewDemo.mp4

Installation

Using lazy.nvim
{
    'willothy/veil.nvim',
    config = true,
    lazy = true,
    event = 'VimEnter',
    dependencies = {
		-- All optional, only required for the default setup.
		-- If you customize your config, these aren't necessary.
		"nvim-telescope/telescope.nvim",
		"nvim-lua/plenary.nvim",
		"nvim-telescope/telescope-file-browser.nvim"
	}
    -- or configure with:
    -- opts = { ... }
}

Configuration

Veil comes with the following defaults

The defaults assume you have Telescope installed because... you probably do.

local builtin = require("veil.builtin")

local default = {
	sections = {
		builtin.sections.animated(builtin.headers.frames_nvim, {
			hl = { fg = "#5de4c7" },
		}),
		builtin.sections.padding(2),
		builtin.sections.buttons({
			{
				icon = "",
				text = "Find Files",
				shortcut = "f",
				callback = function()
					require("telescope.builtin").find_files()
				end,
			},
			{
				icon = "",
				text = "Find Word",
				shortcut = "w",
				callback = function()
					require("telescope.builtin").live_grep()
				end,
			},
			{
				icon = "",
				text = "Buffers",
				shortcut = "b",
				callback = function()
					require("telescope.builtin").buffers()
				end,
			},
			{
				icon = "",
				text = "Config",
				shortcut = "c",
				callback = function()
					require("telescope").extensions.file_browser.file_browser({
						path = vim.fn.stdpath("config"),
					})
				end,
			},
		}),
		builtin.sections.padding(3),
	},
	mappings = {},
	startup = true,
}

About

A blazingly fast, animated, and infinitely customizeable startup / dashboard plugin

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Lua 100.0%