{"id":18564249,"url":"https://github.com/notashelf/nvf","last_synced_at":"2025-05-15T11:09:11.911Z","repository":{"id":65710384,"uuid":"596198210","full_name":"NotAShelf/nvf","owner":"NotAShelf","description":"Modular, extensible and distro-agnostic Neovim configuration framework for Nix/NixOS","archived":false,"fork":false,"pushed_at":"2025-05-10T04:57:11.000Z","size":7763,"stargazers_count":806,"open_issues_count":75,"forks_count":107,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-05-10T05:28:35.486Z","etag":null,"topics":["home-manager","neovim","neovim-flake","nix","nix-flake","nixos-module","nvim"],"latest_commit_sha":null,"homepage":"https://notashelf.github.io/nvf/","language":"Nix","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/NotAShelf.png","metadata":{"files":{"readme":".github/README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"NotAShelf"}},"created_at":"2023-02-01T17:13:58.000Z","updated_at":"2025-05-10T04:57:14.000Z","dependencies_parsed_at":"2023-09-27T10:01:19.643Z","dependency_job_id":"d07ebcf3-00d2-4ae4-8362-981074317263","html_url":"https://github.com/NotAShelf/nvf","commit_stats":null,"previous_names":["notashelf/nvf"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NotAShelf%2Fnvf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NotAShelf%2Fnvf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NotAShelf%2Fnvf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NotAShelf%2Fnvf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NotAShelf","download_url":"https://codeload.github.com/NotAShelf/nvf/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254328386,"owners_count":22052632,"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","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":["home-manager","neovim","neovim-flake","nix","nix-flake","nixos-module","nvim"],"created_at":"2024-11-06T22:14:42.071Z","updated_at":"2025-05-15T11:09:11.896Z","avatar_url":"https://github.com/NotAShelf.png","language":"Nix","funding_links":["https://github.com/sponsors/NotAShelf","https://liberapay.com/horriblename/))-"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"assets/nvf-logo-work.svg\" alt=\"nvf Logo\"  width=\"200\"\u003e\n    \u003cbr/\u003e\n    \u003ch1\u003envf\u003c/h1\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cp\u003e\n    \u003ca href=\"https://github.com/NotAShelf/nvf/releases/latest\"\u003e\n      \u003cimg alt=\"Latest release\" src=\"https://img.shields.io/github/v/release/NotAShelf/nvf?style=for-the-badge\u0026logo=nixos\u0026color=C9CBFF\u0026logoColor=D9E0EE\u0026labelColor=302D41\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/NotAShelf/nvf/pulse\"\u003e\n      \u003cimg alt=\"Last commit\" src=\"https://img.shields.io/github/last-commit/NotAShelf/nvf?style=for-the-badge\u0026logo=starship\u0026color=8bd5ca\u0026logoColor=D9E0EE\u0026labelColor=302D41\"/\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/NotAShelf/nvf/blob/main/LICENSE\"\u003e\n      \u003cimg alt=\"License\" src=\"https://img.shields.io/github/license/NotAShelf/nvf?style=for-the-badge\u0026logo=nixos\u0026color=ee999f\u0026logoColor=D9E0EE\u0026labelColor=302D41\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/NotAShelf/nvf/stargazers\"\u003e\n      \u003cimg alt=\"Stars\" src=\"https://img.shields.io/github/stars/NotAShelf/nvf?style=for-the-badge\u0026logo=nixos\u0026color=c69ff5\u0026logoColor=D9E0EE\u0026labelColor=302D41\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/NotAShelf/nvf/issues\"\u003e\n      \u003cimg alt=\"Issues\" src=\"https://img.shields.io/github/issues/NotAShelf/nvf?style=for-the-badge\u0026logo=bilibili\u0026color=F5E0DC\u0026logoColor=D9E0EE\u0026labelColor=302D41\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/NotAShelf/nvf\"\u003e\n      \u003cimg alt=\"Repo Size\" src=\"https://img.shields.io/github/repo-size/NotAShelf/nvf?color=%23DDB6F2\u0026label=SIZE\u0026logo=codesandbox\u0026style=for-the-badge\u0026logoColor=D9E0EE\u0026labelColor=302D41\" /\u003e\n    \u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://stars.medv.io/NotAShelf/nvf.svg\", title=\"stars\"/\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca\u003e\n    nvf is a highly modular, configurable, extensible and easy to use Neovim configuration\n    in Nix. Designed for flexibility and ease of use, nvf allows you to easily configure\n    your fully featured Neovim instance with a few lines of Nix.\n  \u003c/a\u003e\n\u003c/div\u003e\n\n---\n\n\u003cdiv align=\"center\"\u003e\u003cp\u003e\n\n[Features]: #features\n[Get Started]: #get-started\n[Documentation]: #documentation\n[Help]: #help\n[Contribute]: #contributing\n[FAQ]: #frequently-asked-questions\n[Credits]: #credits\n[License]: #license\n\n**[\u003ckbd\u003e\u003cbr\u003e Features \u003cbr\u003e\u003c/kbd\u003e][Features]**\n**[\u003ckbd\u003e\u003cbr\u003e Get Started \u003cbr\u003e\u003c/kbd\u003e][Get Started]**\n**[\u003ckbd\u003e\u003cbr\u003e Documentation \u003cbr\u003e\u003c/kbd\u003e][Documentation]**\n**[\u003ckbd\u003e\u003cbr\u003e Help \u003cbr\u003e\u003c/kbd\u003e][Help]**\n**[\u003ckbd\u003e\u003cbr\u003e Contribute \u003cbr\u003e\u003c/kbd\u003e][Contribute]**\n**[\u003ckbd\u003e\u003cbr\u003e FAQ \u003cbr\u003e\u003c/kbd\u003e][FAQ]** **[\u003ckbd\u003e\u003cbr\u003e Credits \u003cbr\u003e\u003c/kbd\u003e][Credits]**\n\n\u003c/p\u003e\u003c/div\u003e\n\n---\n\n## Features\n\n[standalone]: https://notashelf.github.io/nvf/index.xhtml#ch-standalone-installation\n[NixOS module]: https://notashelf.github.io/nvf/index.xhtml#ch-standalone-nixos\n[Home-Manager module]: https://notashelf.github.io/nvf/index.xhtml#ch-standalone-hm\n[release notes]: https://notashelf.github.io/nvf/release-notes.html\n[discussions tab]: https://github.com/notashelf/nvf/discussions\n[FAQ section]: #frequently-asked-questions\n[DAG]: https://en.wikipedia.org/wiki/Directed_acyclic_graph\n\n- **Simple**: One language to rule them all! Use Nix to configure everything,\n  with optional Lua support for robust configurability!\n- **Reproducible**: Your configuration will behave the same _anywhere_. No\n  surprises, promise!\n- **Portable**: nvf depends _solely_ on your Nix store, and nothing else. No\n  more global binaries! Works on all platforms, without hassle.\n  - Options to install [standalone], [NixOS module] or [Home-Manager module].\n- **Customizable**: There are _almost no defaults_ to annoy you. nvf is fully\n  customizable through the Nix module system.\n  - Not comfortable with a full-nix config or want to bring your Lua config? You\n    can do just that, no unnecessary restrictions.\n  - Lazyloading 💤? We got it! Lazyload both internal and external plugins at\n    will.\n  - nvf allows _ordering configuration bits_ using [DAG] (_Directed acyclic\n    graph_)s. It has never been easier to construct an editor configuration\n    deterministically!\n  - nvf exposes everything you need to avoid a vendor lock-in. Which means you\n    can add new modules, plugins and so on without relying on us adding a module\n    for them! Though, of course, feel free to request them.\n    - Use plugins from anywhere. Inputs, npins, nixpkgs... You name it.\n    - Add your own modules, with ease. It's all built-in!\n- **Well-documented**: Documentation is priority. You will _never_ face\n  undocumented, obscure behaviour.\n  - Changes, breaking or otherwise, will be communicated in the [release notes]\n  - Refer to the [FAQ section] for answers to common questions.\n    - Your question not there? Head to the to the [discussions tab]!\n- **Idiomatic**: nvf does things ✨ _the right way_ ✨ - the codebase is, and\n  will, remain maintainable for myself and any contributors.\n- **Community-Led**: we would like nvf to be fully capable of accomplishing what\n  you really want it to do. If you have a use case that is not made possible by\n  nvf, please open an issue (or a pull request!)\n  - Your feedback is more than welcome! Feedback is what _drives_ nvf forward.\n    If you have anything to say, or ask, please let us know.\n  - Pull requests are _always_ welcome. If you think the project can benefit\n    from something you did locally, but are not quite sure how to upstream,\n    please feel free to contact us! We'll help you get it done.\n\n## Get Started\n\n[nvf manual]: https://notashelf.github.io/nvf/\n[issue tracker]: https://github.com/NotAShelf/nvf/issues\n\nIf you are not sold on the concepts of **nvf**, and would like to try out the\ndefault configuration before even _thinking about_ installing it, you may run\nthe following in order to take **nvf** out for a spin.\n\n```bash\n# Run the default package\nnix run github:notashelf/nvf\n```\n\nThis will get you a feel for the base configuration and UI design. Though, none\nof the configuration options are final as **nvf** is designed to be modular and\nconfigurable.\n\n\u003e [!TIP]\n\u003e The flake exposes `#nix` as the default package, providing minimal language\n\u003e support and various utilities. You may also use the `#nix` or `#maximal`\n\u003e packages provided by the this flake to get try out different configurations.\n\nIt is as simple as changing the target output to get a different configuration.\nFor example, to get a configuration with large language coverage, run:\n\n```bash\n# Run the maximal package\nnix run github:notashelf/nvf#maximal\n```\n\nSimilar instructions will apply for `nix profile install`. However, you are\nrecommended to instead use the module system as described in the manual.\n\n\u003e [!NOTE]\n\u003e The `maximal` configuration is quite large, and might take a while to build.\n\u003e To get a feel for the configuration, use the default `nix` configuration.\n\u003e Should you choose to try out the `maximal` configuration, using the binary\n\u003e cache as described in the manual is _strongly_ recommended.\n\nIf you are convinced, proceed to the next section to view the installation\ninstructions.\n\n## Documentation\n\n### Installation\n\nThe _recommended_ way of installing nvf is using either the NixOS or the\nHome-Manager module, though it is completely possible and no less supported to\ninstall **nvf** as a standalone package, or a flake output.\n\nSee the rendered [nvf manual] for detailed and up-to-date installation guides,\nconfigurations, available options, release notes and more. Tips for installing\nuserspace plugins is also contained in the documentation.\n\n\u003e [!TIP]\n\u003e While using NixOS or Home-Manager modules,\n\u003e `programs.nvf.enableManpages = true;` will allow you to view option\n\u003e documentation from the comfort of your terminal via `man 5 nvf`. The more you\n\u003e know.\n\nPlease create an issue on the [issue tracker] if you find the documentation\nlacking or confusing. Any improvements to the documentation through pull\nrequests are also welcome, and appreciated.\n\n## Getting Help\n\nIf you are confused, stuck or would like to ask a simple question; you may\ncreate an issue on the [issue tracker] to ask questions or report bugs.\n\nWe are not not yet on spaces like matrix or IRC, so please use the issue tracker\nfor now.\n\n## Contributing\n\nI am always looking for new ways to help improve this flake. If you would like\nto contribute, please read the [contributing guide](CONTRIBUTING.md) before\nsubmitting a pull request. You can also create an issue on the [issue tracker]\nbefore submitting a pull request if you would like to discuss a feature or bug\nfix.\n\n## Frequently Asked Questions\n\n[issue template]: https://github.com/NotAShelf/nvf/issues/new/choose\n[list of branches]: https://github.com/NotAShelf/nvf/branches\n[list of open pull requests]: https://github.com/NotAShelf/nvf/pulls\n\n**Q**: What platforms are supported?\n\n**A**: nvf actively supports **Linux and Darwin** platforms using standalone\nNix, NixOS or Home-Manager. It has been reported that **Android** is also\nsupported through the Home-Manager module, or using standalone package. Please\ntake a look at the [nvf manual] for available installation instructions.\n\n**Q**: Can you add _X_?\n\n**A**: Maybe! It is not one of our goals to support each and every Neovim\nplugin, however, I am always open to new modules and plugin setup additions to\n**nvf**. Use the appropriate [issue template] and I will consider a module\naddition. As mentioned before, pull requests to add new features are also\nwelcome.\n\n**Q**: A plugin I need is not available in **nvf**. What to do?\n\n**A**: **nvf** exposes several APIs for you to be able to add your own plugin\nconfigurations! Please see the documentation on how you may do this.\n\n**Q**: Main branch is awfully silent, is the project dead?\n\n**A**: No! Sometimes we branch out (e.g. `v0.6`) to avoid breaking userspace and\nwork in a separate branch until we make sure the new additions are implemented\nin the most comfortable way possible for the end user. If you have not noticed\nany activity on the main branch, consider taking a look at the\n[list of branches] or the [list of open pull requests]. You may also consider\n_testing_ those release branches to get access to new features ahead of time and\nbetter prepare to breaking changes.\n\n**Q**: Will you support non-flake installations?\n\n**A**: Quite possibly. **nvf** started as \"neovim-flake\", which does mean it is\nand will remain flakes-first but we might consider non-flakes compatibility.\nThough keep in mind that **nvf** under non-flake environments would lose\ncustomizability of plugin inputs, which is one of our primary features.\n\n**Q**: I prefer working with Lua, can I use nvf as a plugin manager while I use\nan imperative path (e.g., `~/.config/nvim`) for my Neovim configuration instead\nof a configuration generated from Nix?\n\n**A**: Yes! Add `\"~/.config/nvim\"` to `vim.additionalRuntimePaths = [ ... ]` and\nany plugins you want to load to `vim.startPlugins`. This will load your\nconfiguration from `~/.config/nvim`. You may still use `vim.*` to modify\nNeovim's behaviour with Nix.\n\n## Credits\n\n### Co-Maintainers\n\nAlongside [myself](https://github.com/notashelf), nvf is developed by those\ntalented folk. nvf would not be what it is today without their invaluable\ncontributions.\n\n- [**@horriblename**](https://github.com/horriblename)\n  ([Liberapay](https://liberapay.com/horriblename/))- For actively implementing\n  planned features and quality of life updates.\n- [**@Soliprem**](https://github.com/soliprem) - For rigorously implementing\n  missing features and excellent work on new language modules.\n\nPlease do remember to extend your thanks (financially or otherwise) if this\nproject has been helpful to you.\n\n### Contributors\n\n[mnw]: https://github.com/gerg-l/mnw\n\nnvf would not be what it is today without the awesome people below. Special,\nheart-felt thanks to\n\n- [**@fufexan**](https://github.com/fufexan) - For the transition to flake-parts\n  and invaluable Nix assistance.\n- [**@FlafyDev**](https://github.com/FlafyDev) - For getting Home-Manager module\n  to work and Nix assistance.\n- [**@n3oney**](https://github.com/n3oney) - For making custom keybinds finally\n  possible, great ideas and module additions.\n- [**@Yavko**](https://github.com/Yavko) - For the amazing **nvf** logo\n- [**@FrothyMarrow**](https://github.com/FrothyMarrow) - For seeing mistakes\n  that I could not and contributing good ideas \u0026 code.\n- [**@Gerg-l**](https://github.com/gerg-l) 🐸 - For the modern Neovim wrapper,\n  [mnw], and occasional improvements to the codebase.\n- [**@Diniamo**](https://github.com/Diniamo) - For actively submitting pull\n  requests, issues and assistance with co-maintenance of nvf.\n\nand everyone who has submitted issues or pull requests!\n\n### Inspiration\n\nThis configuration borrows from, and is based on a few other configurations,\nincluding:\n\n- [@jordanisaacs's](https://github.com/jordanisaacs)\n  [**neovim-flake**](https://github.com/jordanisaacs/neovim-flake) that this\n  flake is originally based on.\n- [@wiltaylor's](https://github.com/wiltaylor)\n  [neovim-flake](https://github.com/wiltaylor/neovim-flake) for plugin and\n  design ideas.\n- [@gvolpe's](https://github.com/gvolpe)\n  [neovim-flake](https://github.com/gvolpe/neovim-flake) for plugin, design and\n  nix concepts.\n- [@sioodmy's](https://github.com/sioodmy)\n  [dotfiles](https://github.com/sioodmy/dotfiles) that inspired the design\n  choices for UI and plugin defaults.\n\nI am grateful for their previous work and inspiration, and I wholeheartedly\nrecommend checking their work out.\n\n## License\n\nFollowing the license of\n[the original neovim-flake](https://github.com/jordanisaacs/neovim-flake), nvf\nhas been made available under the [**MIT License**](LICENSE). However, all\nassets and documentation are published under the\n[**CC BY License**](https://github.com/NotAShelf/nvf/blob/main/.github/assets/LICENSE)\nunder explicit permission by the author or authors.\n\n\u003ch6 align=\"center\"\u003eYes, this includes the logo work too. Stop taking artwork that is not yours!\u003c/h6\u003e\n\n---\n\n\u003cdiv align=\"right\"\u003e\n  \u003ca href=\"#readme\"\u003eBack to the Top\u003c/a\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnotashelf%2Fnvf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnotashelf%2Fnvf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnotashelf%2Fnvf/lists"}