neovim-flake/docs/manual/installation/standalone/home-manager.md

56 lines
1.8 KiB
Markdown
Raw Normal View History

# Standalone Installation on Home-Manager {#ch-standalone-hm}
2024-04-20 05:57:11 +02:00
Your built Neovim configuration can be exposed as a flake output to make it
easier to share across machines, repositories and so on. Or it can be added to
your system packages to make it available across your system.
The following is an example installation of `nvf` as a standalone package with
the default theme enabled. You may use other options inside `config.vim` in
`configModule`, but this example will not cover that extensively.
2024-04-20 05:57:11 +02:00
```nix
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
home-manager.url = "github:nix-community/home-manager";
nvf.url = "github:notashelf/nvf";
2024-04-20 05:57:11 +02:00
};
outputs = {nixpkgs, home-manager, nvf, ...}: let
2024-04-20 05:57:11 +02:00
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
configModule = {
# Add any custom options (and do feel free to upstream them!)
# options = { ... };
2024-04-20 05:57:11 +02:00
config.vim = {
theme.enable = true;
# and more options as you see fit...
2024-04-20 05:57:11 +02:00
};
};
customNeovim = nvf.lib.neovimConfiguration {
2024-04-20 05:57:11 +02:00
inherit pkgs;
modules = [configModule];
2024-04-20 05:57:11 +02:00
};
in {
# This will make the package available as a flake output under 'packages'
packages.${system}.my-neovim = customNeovim.neovim;
# Example Home-Manager configuration using the configured Neovim package
2024-04-20 05:57:11 +02:00
homeConfigurations = {
"your-username@your-hostname" = home-manager.lib.homeManagerConfiguration {
# ...
modules = [
# This will make Neovim available to users using the Home-Manager
# configuration. To make the package available to all users, prefer
# environment.systemPackages in your NixOS configuration.
{home.packages = [customNeovim.neovim];}
];
# ...
2024-04-20 05:57:11 +02:00
};
};
};
}
```