Code Monkey home page Code Monkey logo

starter's Introduction

NvChad

Neovim Minimum Version GitHub Issues Discord Matrix Telegram

Showcase

What is it?

  • NvChad is a neovim config written in lua aiming to provide a base configuration with very beautiful UI and blazing fast startuptime (around 0.02 secs ~ 0.07 secs). We tweak UI plugins such as telescope, nvim-tree etc well to provide an aesthetic UI experience.

  • Lazy loading is done 93% of the time meaning that plugins will not be loaded by default, they will be loaded only when required also at specific commands, events etc. This lowers the startuptime and it was like 0.07~ secs tested on an old pentium machine 1.4ghz + 4gb ram & HDD.

  • NvChad is supposed to be used with its starter config, so nvchad main repo ( this repo ) can be imported as a plugin via lazy's import feature and then you can easily use this repo's modules like autocmds etc.

Theme Showcase

Images (Click to expand!)

4 themes radium 1 radium 2 radium 3

(Note: these are just 4-5 themes, NvChad has around 56 themes)

UI related plugins used

Images (Click to expand!)

Nvim-tree.lua

Fast file tree:

Telescope-nvim

A fuzzy file finder, picker, sorter, previewer and much more:

Our own statusline written from scratch

NvChad UI

Tabufline (our own pertab bufferline)

  • Here's a video that showcases it.

NvCheatsheet ( our UI Plugin )

Plugins list

History

  • I (@siduck i.e creator of NvChad) in my initial days of learning to program wanted a lightweight IDE for writing code, I had a very low end system which was like 1.4ghz pentium + 4gb ram & HDD. I was into web dev stuff so many suggested me to use vscode but that thing was very heavy on my system, It took more ram than my browser! ( minimal ungoogled chromium ) so I never tried it again, sublime text was nice but the fear of using proprietary software XD for a linux user bugged me a lot. Then I tried doom-emacs which looked pretty but it was slow and I was lost within its docs, I tried lunarvim but too lazy to read the docs. Doom-emacs and lunarvim inspired me to make a config which is the prettiest + very fast and simple.

  • I'm decent at ricing i.e customizing system and making it look pretty so I posted my neovim rice on neovim subreddit, my neovim-dotfiles github repo blew up and then I had to come up with a name, I was amazed by the chad meme lol so I put NvChad as the name, the chad word in here doesnt literally mean the chad guy but in the sense such as chad linux vs windows i.e meaning superior, best etc. NvChad was made for my personal use but it gained some popularity which inspired me to make a public config i.e config usable by many and less hassle to update as everyone's going to use the same base config (NvChad) with their custom modifications (which are gitignored so that wont mess up), without the custom config stuff users would have to keep a track of every commit and copy paste git diffs to manually update nvchad.

💝 Support

If you like NvChad and would like to support & appreciate it via donation then I'll gladly accept it.

kofi paypal buymeacoffee patreon

Credits

  • Elianiva helped me with NeoVim Lua related issues many times, helped me in my initial neovim journey!
  • @lorvethe for making the beautiful NvChad logo.

starter's People

Contributors

segyges avatar siduck avatar sullrich84 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

starter's Issues

Change LICENSE to a permissive one

First I want to clear out: I absolutely agree that the main NvChad project is under GPL or whatever license you prefer to protect your work under the open source philosophies!

But this starter configuration is intended to be a skeleton for the user configuration to make use of NvChad. Most users will have much more self written code than provided code from this repository. Therefore I think the starter config should be under a more permissive license.

I'm especially concerned about adding my self-written lua_snippets into a GPL protected configuration, because I cannot estimate how the license inheritance will affect the resulting code when I use the snippets.

For this starter configuration I would recommend a public-domain-equivalent license, e. g.:

I think something like MIT to have attribution would also be fine.

How to configure the default plugins?

NvChad has created a starter repo to make it easier to install NvChad and clearer to add other plugins, but how can I disable some default plugins or just use my setup options for these plugins?

Can't install with git in gentoo

I tried the installation process in the webpage but it don't work in my gentoo linux. All i get is that everytime

Error detected while processing /home/user/.config/nvim/init.lua:
E5113: Error while calling lua chunk: /home/user/.config/nvim/init.lua:17: module 'lazy' not found: 
        no field package.preload['lazy']
        no file './lazy.lua'
        no file '/usr/share/luajit-2.1.0-beta3/lazy.lua'
        no file '/usr/local/share/lua/5.1/lazy.lua'
        no file '/usr/local/share/lua/5.1/lazy/init.lua'
        no file '/usr/share/lua/5.1/lazy.lua'
        no file '/usr/share/lua/5.1/lazy/init.lua'
        no file './lazy.so'
        no file '/usr/local/lib/lua/5.1/lazy.so'
        no file '/usr/lib64/lua/5.1/lazy.so'
        no file '/usr/local/lib/lua/5.1/loadall.so'
stack traceback:
        [C]: in function 'require'
        /home/user/.config/nvim/init.lua:17: in main chunk

I using gentoo in rolling release with latest software

git clone https://github.com/NvChad/starter ~/.config/nvim && nvim

Error detected while processing /home/nvim/.config/nvim/init.lua:
E5113: Error while calling lua chunk: /home/nvim/.config/nvim/init.lua:17: module 'lazy' not found:
no field package.preload['lazy']
no file './lazy.lua'
no file '/__w/neovim/neovim/.deps/usr/share/luajit-2.1/lazy.lua'
no file '/usr/local/share/lua/5.1/lazy.lua'
no file '/usr/local/share/lua/5.1/lazy/init.lua'
no file '/__w/neovim/neovim/.deps/usr/share/lua/5.1/lazy.lua'
no file '/__w/neovim/neovim/.deps/usr/share/lua/5.1/lazy/init.lua'
no file './lazy.so'
no file '/usr/local/lib/lua/5.1/lazy.so'
no file '/__w/neovim/neovim/.deps/usr/lib/lua/5.1/lazy.so'
no file '/usr/local/lib/lua/5.1/loadall.so'
stack traceback:
[C]: in function 'require'
/home/nvim/.config/nvim/init.lua:17: in main chunk

Nv term padding

In NvChad v2.5, I currently don't see any left padding for it(NvTerm)

UI - statusline modules `order` config doesn't work

Hi, I'm trying to migrate my statusline settings from overriden_modules to the modules field as shown in the NvChad UI Configuration.

However when I tried to set the order of statusline modules, I simply got this error and not surprisingly it didn't work:

Screenshot 2024-04-01 at 16 40 43

My code:

  statusline = {
    -- Old
    -- overriden_modules = function(modules)
    --   -- Show column number in statusline
    --   table.insert(modules, 9, "%#St_ln_col#" .. " Ln %l, Col %c ")
    -- end,
    modules = {
      order = { "mode", "file", "git", "%=", "lsp_msg", "%=", "diagnostics", "lsp", "cursor_loc", "cwd", "cursor" },
      cursor_loc = function()
        return "%#St_ln_col#" .. " Ln %l, Col %c "
      end,
    },
  },

The doc and nvconfig.lua both implies that order is indeed an array though 🤔 :

...
  statusline = {
    -- more opts
    order = {...}, -- check stl/utils.lua file in ui repo 
    modules = {
      -- The default cursor module is override
      cursor = function()
        return "%#BruhHl#" .. " bruh " -- the highlight group here is BruhHl      end,
    }
  }
...

and nvconfig.lua:

...
  statusline = {
    theme = "default", -- default/vscode/vscode_colored/minimal
    -- default/round/block/arrow separators work only for default statusline theme
    -- round and block will work for minimal theme only
    separator_style = "default",
    order = nil,
    modules = nil,
  },

  tabufline = {
    enabled = true,
    lazyload = true,
    order = { "treeOffset", "buffers", "tabs", "btns" },
    modules = nil,
  },
...

custom install nvim-treesitter breaks theme on a .go file

If I add nvim-treesitter at ~/.config/nvim/lua/plugins/init.lua with my configs, it breaks the theme. ie everytime I have to th and select the theme.

{
    "nvim-treesitter/nvim-treesitter",
    config = function()
      require("nvim-treesitter.configs").setup {
        ensure_installed = {
          "go",
        },
      }
    end,
  },

I see that nvim-treesitter is already installed by NvChad. Is it possible to add my custom configs to the existing one?

If I add "nvim-treesitter/nvim-treesitter-textobjects" it breaks the theme as well.

I do see the theme getting updated in chardrc.lua file

M.ui = {
  theme = "ashes",

Following the instructions, this repo clones v2.0 branch of base46

Hi, maybe I'm doing something wrong, but fetching this repo and letting it all do the magic seems to clone the v2.0 branch of base46 instead of the newly released 2.5 under lazy/base46.

Trying to force the branch to v2.5 results in "module 'nvconfig' not found" error, so it looks like this starter repo is still made to work with 2.0, right?

Thanks and keep up the great work :)

Italic comment does not work

Hi, I'm trying out this new version of NvChad config. One immediate thing I noticed is that when I tried to uncomment the lines and enable italic comments in chadrc.lua, it simply did not work :x

No promot for creating custom config

I tried to install nvchad with this command

git clone https://github.com/NvChad/starter ~/.config/nvim

After installing it Lazy started installing plugins but it didn't ask for creating an example custom config.

Not possible to move plugin configs to `plugins/`?

Hi, I'm puzzled that moving plugin configs from lua/configs/ to lua/plugins/ breaks the profile and give me the error like (same error for all other plugin configs, I'm just listing one of them):

Invalid spec module: `plugins.lspconfig`                                                                                                           
Expected a `table` of specs, but a `boolean` was returned instead 

File structure after moving (basically just moving plugin configs to the same folder with plugins/init.lua:

.
├── init.lua
├── lazy-lock.json
├── LICENSE
└── lua/
   ├── chadrc.lua
   ├── configs/
   ├── mappings.lua
   ├── options.lua
   └── plugins/
      ├── cmp.lua
      ├── conform.lua
      ├── init.lua
      ├── lazy.lua
      └── lspconfig.lua

and I changed all the require statements in plugins/init.lua like this:

-- prev
require "configs.lspconfig"
-- now
require "plugins.lspconfig"

And the require statement in init.lua (but I didn't get any error about lazy.nvim's config, only specs of other plugins):

-- prev
local lazy_config = require "configs.lazy"
-- now
local lazy_config = require "plugins.lazy"

Appreciate for any information about how this may come from!

Docs never show how "how to use the nvchad repo as a plugin."

Followed the docs and I am missing how to actually use the remaining parts of this. It is appreciated, but this starter is confusing and miss directs. The docs say start and add NvChad, but never actually show how or mention how, so I am lost.

I watched a great video for this and it had you clone the main NvChad repo, but I guess those instructions are now out of date.

Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.