OXY2DEV / intro.nvim

MIT License
24 stars 2 forks source link

[!IMPORTANT] This plugin will not be updated(most likely). Making this plugin, I have understood the limitations of myself and neovim. The whole plugin was basically kept together with duct tape for the most part. Even though I tried my best, I couldn't make the plugin as good as I wanted. The animation system is very primitive. The plugin isn't fast. The plugin can randomly crash on update(when lazy.nvim is used). Plus the code is basically spaghetti.

So, I will go learn new things, experiment a lot and hopefully make a better version in the future.


https://github.com/OXY2DEV/intro.nvim/assets/122956967/b2ffb4ca-d543-46f6-8d7c-c4dbd42caa56

Intro.nvim

Animated :intro for Neovim

Installation | Documentation | Presets | Showcase

🏝️ Introduction

[!NOTE] This plugin was made entirely inside termux. So, I may or may not be able to reproduce your issue due to hardware limitations. So, It would really help me debug the issues if you add extra details to your issues(e.g. explaining what happens instead of the plugin starting, attaching a video of the bug, what machine you are using etc.).

[!WARNING] This plugin was meant to be used inside termux so some things may be a little bit off when used somewhere else.

In my experience, after installing a new start screen plugin I will most likely end up writing helper functions for myself to better customise the plugin. This was a problem as I would have to change the helper functions every time I eventually needed to switch to a different plugin(either due to lack of features or not providing more customisation).

Some of the plugins are easy to set up but comes at the cost of you can't really change it much. Other have more customisation but don't have an easy way to set up.

I also couldn't find any plugin which provided a way to add gradients to the texts which I really wanted.

Key features of this plugin.

💻 Installation

💤 Lazy

[!WARNING] Do not lazy load the plugin.

The plugin should run before other plugins so by setting lazy = false the plugin won't get the chance to load.

-- plugins.lua
{
  "OXY2DEV/intro.nvim",
  -- For file icons
  dependencies= {
    "nvim-tree/nvim-web-devicons"
  },
  config = function ()
    require("intro").setup();
  end
}
-- plugins/intro.lua
return {
  "OXY2DEV/intro.nvim",
  dependencies = {
    "nvim-tree/nvim-web-devicons"
  },
  config = function ()
    require("intro").setup();
  end
}

🧰 Mini.deps

-- depe.lua
require("mini.deps").add({
  source = "OXY2DEV/intro.nvim",
  depends = {
    "nvim-tree/nvim-web-devicons"
  }
})

require("intro").setup();

🧩 Presets

If you want to quickly set up the plugin and don't want any of the hassle of customisation then this section is for you.

Presets are applied like this.

require("intro").setup({
  preset = {
    name = "",  -- Name of the preset
    opts = {}   -- Options of the preset to use
  }
})

-- If you don't want customisation you can use this
require("intro").setup({
  preset = ""   -- Name of the preset
})

The presets are available in the /lua/intro/presets.lua file in the plugin.

[!TIP] Items that have a • in front of them are the preset name and the items that are numbered are the options for that preset.

[!NOTE] The order in the opts matters. Some options have the ability to overwrite the values set by other options. This becomes more apparent in case there are options that add components to the screen. In this case, the option that came first in the list will have it components added first.

As such it is recommended you follow the order of options when using them. So, an option whose list number is less should be added first.

Currently available presets are,

More presets are going to be added in the future. If you want a specific type of preset you can open an issue for it.

🌌 Plugin showcase

Images

[!NOTE] The images were taken on my phone so they can be a bit blurry.

Screenshot_1

Screenshot_1_L

Screenshot_2_L

Screenshot_3_L

Screenshot_4_L

Screenshot_5_L

Videos

https://github.com/OXY2DEV/intro.nvim/assets/122956967/2d4b230a-328a-4b80-90c4-55f9b6d26dab

https://github.com/OXY2DEV/intro.nvim/assets/122956967/b415931b-aa95-48e6-9133-847af7d222e2

https://github.com/OXY2DEV/intro.nvim/assets/122956967/9e9ed7b7-86b1-4412-8328-82b9071e8c65