lixim
is my personal Neovim configuration based on Nix and LazyVim.
It features a pre-configured neovim
program, accessible as a Nix package, or configured through Nix modules.
It's usable in four variants:
lazyvim
includes all LazyVim extras which are implemented- useful for debugging and development purposes, such as comparing the
checkhealth
output - when not choosing
lazyvim
than LazyVim extras includes depends oncore, balance, max
value
- useful for debugging and development purposes, such as comparing the
core
includes most important plugins and configurationsbalance
includes more features but nothing too heavymax
includes all plugins
Each option builds upon the previous one, so selecting max
includes all configurations.
All variants are pre-configured, to try out the core
variant, run XDG_CONFIG_HOME=$(mktemp -d) nix run github:arminfro/lixim#core
.
The default package is the max
variant.
Most of the configuration is achieved by setting enableLvl
to one of the following options: lazyvim, core, balance, max
.
Example configuration using the homeManagerModule
:
{ inputs, ... }:
{
imports = [ inputs.lixim.homeManagerModules.default ];
programs.neovim = {
enable = true;
defaultEditor = true;
viAlias = true;
vimAlias = true;
lixim = {
enable = true;
enableLvl = "max";
# optionals:
useNeovimNightly = true;
useLatestLazyVim = false;
# set by env `SNIPPETS_PATH` or else `vim.fn.stdpath("config") .. "/snippets"`
snippetsPath = /home/user/Workspace/nix/lixim/config/snippets;
# set command to read OpenAi API Key, otherwise OPENAI_API_KEY is tried
openAiApiPasswordCommand = "pass Ai/open-ai/api-key";
# set by env `ZK_NOTEBOOK_DIR`, integration for zk-org.github.io/zk
zkNotebookPath = /home/user/Documents/zk-notes;
lang = {
astro.enable = true;
css.enable = true;
docker.enable = true;
git.enable = true;
html.enable = true;
json.enable = true;
markdown.enable = true;
nix.enable = true;
nushell.enable = true;
react.enable = true;
rust.enable = true;
sql.enable = true;
svelte.enable = true;
tailwind.enable = true;
toml.enable = true;
typescript.enable = true;
typst.enable = true;
yaml.enable = true;
};
};
};
}
To use the above configuration add lixim
input in flake.nix
file:
{
inputs = {
lixim = {
url = "github:arminfro/lixim";
inputs.nixpkgs.follows = "nixpkgs";
};
};
}
Sources of inspiration:
- Detached fork of: lazyvim-nix
- LazyVim-Module