Neovim configuration build using nixvim with stripped off LazyVim features that only matters to me.
Probably not using this for full time, until lazy loading is implemented and the issue can be found here 👉🏼 Lazy loading #421. In my opinion, everything i need can be configured within nixvim, but the startup time is still something concerning me.
- cmp
- codeium (vim version)
- catppuccin
- comment-nvim
- conform
- fidget
- gitsigns
- harpoon
- inc-rename
- lint
- lsp
- lualine
- luasnip
- neogen
- neotree
- nvim-cmp
- surround
- telescope
- tmux-navigator
- treesitter-context
- treesitter-textobjects
- treesitter
- trouble
- ts-autotag
- ts-context-commentstring
- undotree
- which-key
- yanky
- biome (auto detect biome.json or use prettierd for formatting)
- eslint
- jsonls
- lua-ls
- marksman
- nil_ls
- prismals
- tailwindcss
- tsserver
- yamlls
- markdownlint-cli
- yamllint
- prettierd
- nixfmt
- nixpkgs-fmt
- luajitPackages.luacheck
- stylua
- codespell
- beautysh
- shellcheck
You can run this directly from the command line with:
nix run github:y3owk1n/k92-nvim
You can also plug this into a flake to include it into a system configuration.
{
inputs = {
k92.url = "github:y3owk1n/k92-nvim";
};
}
This input can then be used as an overlay to replace the default neovim.
{ k92-nvim, ... }:
{
overlays = (final: prev: {
neovim = k92-nvim.packages.${prev.system}.default;
});
}
# flake.nix
{
...
inputs = {
...other inputs (e.g. nixpkgs, home-manager, darwin, ...)
k92-nvim.url = "github:y3owk1n/k92-nvim"; <- import this flake
};
outputs = inputs@{ nixpkgs, home-manager, darwin, k92-nvim, ... }:
...rest of outputs configuration
}
I'm using this with darwin configuration.
# modules/darwin.nix
{ pkgs, username, system, inputs, ... }: {
...imports
environment.systemPackages = [ inputs.k92-nvim.packages.${system}.default ]; <- add it to system packages
}