Skip to content

Elbtalkessel/nixvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

neovim-flake Logo

Nixvim config

Important

My Neovim config using nixvim

You may have previously seen this repo with a different structure/configuration.
The thing is: I wasn't satisfied with it.
So I rewrote it from scratch with minimal dependencies.
If you want the old configuration, check out the old branch.

Note

The colorscheme in these screenshots is rose pine

nvim

Configuring

To start configuring, just add or modify the nix files in ./config. Every folder in the plugins directory will be imported automatically.

Current plugins

Warning

Some of them might be disabled, this is every plugins defined and configured in the repo.

List of plugins
  • avante: Cursor AI at home
  • copilot-cmp: Completion support for GitHub copilot
  • gitlinker: Generate shareable file permalinks
  • conform: Formatter plugin
  • lint: Linting plugin
  • lsp: LSP configs
  • none-ls: null-ls replacement. Use nvim as LSP
  • snacks: A list of utilities
    • Currently using:
      • git
      • indent
      • picker
      • lazygit
      • notifier
  • treesitter: Parser generator tool to build a syntax tree of the current buffer
  • bufferline: VSCode like buffer line
  • noice: Better nvim UI
  • mini: Cool neovim utilities
    • currently using
      • ai
      • clue
      • diff
      • files
  • ufo: Folding plugin

Testing your new configuration

To test your configuration simply run the following command

nix run .

If you have nix installed, you can directly run my config from anywhere

You can try running mine with:

nix run 'github:elythh/nixvim'

Installing into NixOS configuration

This nixvim flake will output a derivation that you can easily include in either home.packages for home-manager, or environment.systemPackages for NixOS. Or whatever happens with darwin?

You can add my nixvim configuration as an input to your NixOS configuration like:

{
 inputs = {
    nixvim.url = "github:elythh/nixvim";
 };
}

Direct installation

With the input added you can reference it directly.

{ inputs, system, ... }:
{
  # NixOS
  environment.systemPackages = [ inputs.nixvim.packages.${pkgs.system}.default ];
  # home-manager
  home.packages = [ inputs.nixvim.packages.${pkgs.system}.default ];
}

The binary built by nixvim is already named as nvim so you can call it just like you normally would.

Installing as an overlay

Another method is to overlay your custom build over neovim from nixpkgs.

This method is less straight-forward but allows you to install neovim like you normally would. With this method you would just install neovim in your configuration (home.packages = with pkgs; [ neovim ]), but you replace neovim in pkgs with your derivation from nixvim.

{
  pkgs = import inputs.nixpkgs {
    overlays = [
      (final: prev: {
        neovim = inputs.nixvim.packages.${pkgs.system}.default;
      })
    ];
  }
}

Bonus lazy method

You can just straight up alias something like nix run 'github:elythh/nixvim' to nvim.

Credits

  • yavko for the logo
  • nixvim and all their maintainers/contributors

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages