Introduction
Welcome to NixCats Book
, a comprehensive guide crafted to help Neovim users transition to the Nix way of configuration. This book is designed to provide clarity and simplicity, allowing users to embrace Nix without losing control over their configurations by burying them with unmaintainable code.
NixCats (aka. nixCats-nvim) bridges the gap for Neovim users by defining practical rules and patterns for configuring Neovim using Lua, ensuring your setup remains both declarative and maintainable. The goal is to make use of the declarative and reproducible nature of Nix with neovim configuration, empowering you to make full use of the text editor without hassles. NixCats follow the idea that "You configure once and forget about it".
Whether you're new to Nix or a seasoned user looking to refine your approach, this guide will be your companion in building a reproducible, clean, and efficient Neovim configuration.
Prerequisites
Before you get started with this book, it is assumed that you have a moderate knowledge of:
If you feel like you lack knowledge in certain areas within the above mentioned, it is recommended to have a look at respective resources. A few resources are mentioned in the References Chapter for you to get started.
Additionally, the sub-chapters introduce about few concepts for beginners in lua and nix. Feel free to skip to Overview if you are well versed with these.
Terminology
-
Flakes: An experimental feature within Nix that allows users to grab resources from the web as
inputs
and can provideoutput
of the packaged application. You can read more about flakes in here -
Flake-Parts: A distributed framework for writing Nix flakes which is a direct lightweight replacement of the Nix flake schema
-
Modules (aka. Flake Modules): Flakes are configuration. The module system lets you refactor configuration into modules that can be shared.