Skip to content

coopikoop/veil.nvim

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 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
    • Oldfiles builtin
    • Current dir builtin
    • Floating widget builtin
    • Ascii frame anim builtin
    • Vertical padding builtin
  • Static text sections
  • Dynamic text sections
    • Per-section state
  • Simple and extensible API
    • Rendering / API V2 (in progress)
  • 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

Demo (default config)

2023-03-29.06-25-07.mp4

Installation

Using lazy.nvim
{
  'willothy/veil.nvim',
  lazy = true,
  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"
  }
  config = true,
  -- 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")

-- if you want to have the days of the week display, uncomment the following line
-- local current_day = os.date("%A")
-- then change "builtin.headers.frames_nvim" to "builtin.headers.frames_days_of_week[current_day]"

local default = {
  sections = {
    builtin.sections.animated(builtin.headers.frames_nvim, {
      hl = { fg = "#5de4c7" },
    }),
    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.oldfiles(),
  mappings = {},
  startup = true,
  listed = false
}

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Lua 100.0%