{"id":20332736,"url":"https://github.com/aorith/neovim-flake","last_synced_at":"2025-08-22T05:05:52.393Z","repository":{"id":157550235,"uuid":"623108106","full_name":"aorith/neovim-flake","owner":"aorith","description":"Neovim configuration using a nix flake","archived":false,"fork":false,"pushed_at":"2025-08-10T11:09:39.000Z","size":288,"stargazers_count":9,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-17T10:43:21.884Z","etag":null,"topics":["neovim","nix","nix-flakes","nixos","nixos-flake","nvim","vim"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aorith.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-04-03T17:58:46.000Z","updated_at":"2025-08-10T11:11:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"da1786d8-5420-46e0-bf2c-cd84f2f3e8d5","html_url":"https://github.com/aorith/neovim-flake","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aorith/neovim-flake","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aorith%2Fneovim-flake","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aorith%2Fneovim-flake/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aorith%2Fneovim-flake/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aorith%2Fneovim-flake/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aorith","download_url":"https://codeload.github.com/aorith/neovim-flake/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aorith%2Fneovim-flake/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271588743,"owners_count":24785751,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-22T02:00:08.480Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["neovim","nix","nix-flakes","nixos","nixos-flake","nvim","vim"],"created_at":"2024-11-14T20:28:01.716Z","updated_at":"2025-08-22T05:05:52.385Z","avatar_url":"https://github.com/aorith.png","language":"Lua","readme":"# Aorith's Neovim Flake\n\nThis flake packages Neovim with my custom configuration, including tools, linters, and LSP binaries using [Nix/nixpkgs](https://nixos.org/).\nIt does also work without Nix, since I use it on machines that do not have or cannot install Nix.\nThe Nix wrapper sets an environment variable (`NVIM_NIX=1`). If this variable is present, the Nix-specific Lua configuration is loaded.\n\nIt does not manage all the plugins with Nix, only the ones that break on NixOS are installed with it, like treesitter and its parsers, everything else is managed using [mini.deps](https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-deps.md).\n\n## With Nix\n\nIt has two flavours, both of them set the variable `NVIM_APPNAME` to `nvim-nix` (the nvim wrapper does):\n\n- `#default`: configuration is copied over to the nix-store, and you can run it on any machine with Nix without symlinking it to `~/.config`\n- `#nvim-without-config`: the configuration is loaded from `~/.config/$NVIM_APPNAME`, this is what I usually use as it allows modifying the config on the fly, so I execute `./link.sh` as part of the bootstrap to link the config on a new machine\n\n### Folder Structure\n\n- `nvim/`: Contains the standard Neovim configuration files, similar to what you would find in `~/.config/nvim`.\n- `nix/neovim.nix`: Builds the actual package and sets the required environment vars so Neovim can find the tools/linters and plugins.\n- `nix/plugins.nix`: Plugins to be included in the configuration, either from `nixpkgs` or as flake inputs.\n- `nix/packages.nix`: Extra packages that will be made available in Neovim's `$PATH`.\n\n### Execution options\n\n```sh\n# One shot\nnix run github:aorith/neovim-flake#default\nnix run github:aorith/neovim-flake#nvim-without-config\n\n# Development\nnix run /path/to/your/local/neovim-flake#default\nnix run /path/to/your/local/neovim-flake#nvim-without-config\n```\n\n### Installation\n\n#### Nix Profile\n\n```sh\n# Remote install\nnix profile install github:aorith/neovim-flake#default\nnix profile install github:aorith/neovim-flake#nvim-without-config\n\n# Or install it using a local clone of this repository\nnix profile install /path/to/neovim-flake/#default\nnix profile install /path/to/neovim-flake/#nvim-without-config\n```\n\nTo update, first find the profile number associated with it using `nix profile list`, and then use `nix profile upgrade` with the profile number:\n\n```sh\nnix profile list # Find the name for this flake\n# Assuming the name is 'nvim-without-config'\nnix profile upgrade 'nvim-without-config'\n# Or upgrade everything\nnix profile upgrade --all\n```\n\n#### NixOS\n\nAdd the flake and the package to `environment.systemPackages`. Either `default` or `nvim-without-config`, here's an example:\n\n```nix\n{\n  inputs = {\n    nixpkgs.url = \"github:NixOS/nixpkgs/nixos-unstable\";\n    neovim-flake.url = \"github:aorith/neovim-flake\";\n    # ...\n  };\n\n  outputs = inputs: {\n    nixosConfigurations = {\n      trantor = inputs.nixpkgs.lib.nixosSystem\n      # ...\n        {\n          # ...\n          modules = [\n            ({inputs, ...}: {environment.systemPackages = [inputs.neovim-flake.packages.${system}.default];})\n          ];\n        };\n    };\n  };\n}\n```\n\n#### Home Manager\n\nSame thing as with NixOS but under `home.packages`:\n\n```nix\nhome.packages = [ inputs.neovim-flake.packages.${pkgs.system}.default ];\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faorith%2Fneovim-flake","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faorith%2Fneovim-flake","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faorith%2Fneovim-flake/lists"}