2023-07-16 10:15:32 +00:00
|
|
|
|
<div align="center">
|
2024-04-27 17:39:28 +00:00
|
|
|
|
<img src="assets/nvf-logo-work.svg" alt="nvf Logo" width="200">
|
2024-05-03 09:56:57 +00:00
|
|
|
|
<br/>
|
|
|
|
|
<h1>nvf</h1>
|
2023-07-16 10:15:32 +00:00
|
|
|
|
</div>
|
2024-04-28 18:00:57 +00:00
|
|
|
|
|
2023-02-16 19:27:57 +00:00
|
|
|
|
<div align="center">
|
2024-04-28 18:00:57 +00:00
|
|
|
|
<p>
|
2024-04-27 13:04:09 +00:00
|
|
|
|
<a href="https://github.com/NotAShelf/nvf/releases/latest">
|
|
|
|
|
<img alt="Latest release" src="https://img.shields.io/github/v/release/NotAShelf/nvf?style=for-the-badge&logo=nixos&color=C9CBFF&logoColor=D9E0EE&labelColor=302D41" />
|
2023-02-06 02:27:15 +00:00
|
|
|
|
</a>
|
2024-04-27 13:04:09 +00:00
|
|
|
|
<a href="https://github.com/NotAShelf/nvf/pulse">
|
|
|
|
|
<img alt="Last commit" src="https://img.shields.io/github/last-commit/NotAShelf/nvf?style=for-the-badge&logo=starship&color=8bd5ca&logoColor=D9E0EE&labelColor=302D41"/>
|
2023-02-06 05:14:28 +00:00
|
|
|
|
</a>
|
2024-04-27 13:04:09 +00:00
|
|
|
|
<a href="https://github.com/NotAShelf/nvf/blob/main/LICENSE">
|
|
|
|
|
<img alt="License" src="https://img.shields.io/github/license/NotAShelf/nvf?style=for-the-badge&logo=nixos&color=ee999f&logoColor=D9E0EE&labelColor=302D41" />
|
2023-02-06 02:27:15 +00:00
|
|
|
|
</a>
|
2024-04-27 13:04:09 +00:00
|
|
|
|
<a href="https://github.com/NotAShelf/nvf/stargazers">
|
|
|
|
|
<img alt="Stars" src="https://img.shields.io/github/stars/NotAShelf/nvf?style=for-the-badge&logo=nixos&color=c69ff5&logoColor=D9E0EE&labelColor=302D41" />
|
2023-02-06 02:27:15 +00:00
|
|
|
|
</a>
|
2024-04-27 13:04:09 +00:00
|
|
|
|
<a href="https://github.com/NotAShelf/nvf/issues">
|
|
|
|
|
<img alt="Issues" src="https://img.shields.io/github/issues/NotAShelf/nvf?style=for-the-badge&logo=bilibili&color=F5E0DC&logoColor=D9E0EE&labelColor=302D41" />
|
2023-02-06 02:27:15 +00:00
|
|
|
|
</a>
|
2024-04-27 13:04:09 +00:00
|
|
|
|
<a href="https://github.com/NotAShelf/nvf">
|
|
|
|
|
<img alt="Repo Size" src="https://img.shields.io/github/repo-size/NotAShelf/nvf?color=%23DDB6F2&label=SIZE&logo=codesandbox&style=for-the-badge&logoColor=D9E0EE&labelColor=302D41" />
|
2023-02-06 02:27:15 +00:00
|
|
|
|
</a>
|
2024-04-28 18:00:57 +00:00
|
|
|
|
</p>
|
|
|
|
|
</div>
|
2023-10-01 13:09:01 +00:00
|
|
|
|
|
|
|
|
|
<p align="center">
|
2024-04-27 13:04:09 +00:00
|
|
|
|
<img src="https://stars.medv.io/NotAShelf/nvf.svg", title="stars"/>
|
2023-10-01 13:09:01 +00:00
|
|
|
|
</p>
|
|
|
|
|
|
2023-02-15 15:24:43 +00:00
|
|
|
|
<div align="center">
|
|
|
|
|
<a>
|
2024-09-28 20:36:07 +00:00
|
|
|
|
nvf is a highly modular, configurable, extensible and easy to use Neovim configuration
|
|
|
|
|
in Nix. Designed for flexibility and ease of use, nvf allows you to easily configure
|
|
|
|
|
your fully featured Neovim instance with a few lines of Nix.
|
2023-02-15 15:24:43 +00:00
|
|
|
|
</a>
|
|
|
|
|
</div>
|
|
|
|
|
|
2023-02-06 02:27:15 +00:00
|
|
|
|
---
|
|
|
|
|
|
2023-02-06 02:44:55 +00:00
|
|
|
|
<div align="center"><p>
|
|
|
|
|
|
2024-09-28 20:36:07 +00:00
|
|
|
|
[Features]: #features
|
2024-04-28 18:00:57 +00:00
|
|
|
|
[Get Started]: #get-started
|
|
|
|
|
[Documentation]: #documentation
|
|
|
|
|
[Help]: #help
|
|
|
|
|
[Contribute]: #contributing
|
2024-11-04 14:23:18 +00:00
|
|
|
|
[FAQ]: #frequently-asked-questions
|
2024-04-28 18:00:57 +00:00
|
|
|
|
[Credits]: #credits
|
|
|
|
|
|
2024-09-28 20:36:07 +00:00
|
|
|
|
**[<kbd><br> Features <br></kbd>][Features]**
|
|
|
|
|
**[<kbd><br> Get Started <br></kbd>][Get Started]**
|
|
|
|
|
**[<kbd><br> Documentation <br></kbd>][Documentation]**
|
|
|
|
|
**[<kbd><br> Help <br></kbd>][Help]**
|
|
|
|
|
**[<kbd><br> Contribute <br></kbd>][Contribute]**
|
2024-11-04 14:23:18 +00:00
|
|
|
|
**[<kbd><br> FAQ <br></kbd>][FAQ]** **[<kbd><br> Credits <br></kbd>][Credits]**
|
2023-02-06 02:27:15 +00:00
|
|
|
|
|
2023-02-06 02:44:55 +00:00
|
|
|
|
</p></div>
|
|
|
|
|
|
2023-02-06 02:27:15 +00:00
|
|
|
|
---
|
|
|
|
|
|
2024-09-28 20:36:07 +00:00
|
|
|
|
## Features
|
|
|
|
|
|
2024-11-04 14:23:18 +00:00
|
|
|
|
[standalone]: https://notashelf.github.io/nvf/index.xhtml#ch-standalone-installation
|
|
|
|
|
[NixOS module]: https://notashelf.github.io/nvf/index.xhtml#ch-standalone-nixos
|
|
|
|
|
[Home-Manager module]: https://notashelf.github.io/nvf/index.xhtml#ch-standalone-hm
|
|
|
|
|
|
|
|
|
|
- **Simple**: One language to rule them all! Use Nix to configure everything,
|
2024-12-10 20:21:00 +00:00
|
|
|
|
with optional Lua support for robust configurability!
|
2024-09-28 20:43:15 +00:00
|
|
|
|
- **Reproducible**: Your configuration will behave the same _anywhere_. No
|
2024-09-28 20:36:07 +00:00
|
|
|
|
surprises, promise!
|
|
|
|
|
- **Portable**: nvf depends _solely_ on your Nix store, and nothing else. No
|
|
|
|
|
more global binaries! Works on all platforms, without hassle.
|
2024-11-04 14:23:18 +00:00
|
|
|
|
- Options to install [standalone], [NixOS module] or [Home-Manager module].
|
2024-09-28 20:36:07 +00:00
|
|
|
|
- **Customizable**: There are _almost no defaults_ to annoy you. nvf is fully
|
|
|
|
|
customizable through the Nix module system.
|
2024-12-10 20:21:00 +00:00
|
|
|
|
- Not comfortable with a full-nix config or want to bring your Lua config? You
|
|
|
|
|
can do just that, no unnecessary restrictions.
|
|
|
|
|
- Lazyloading? We got it! Lazyload both internal and external plugins at will.
|
2024-09-28 20:43:15 +00:00
|
|
|
|
- **Well-documented**: Documentation is priority. You will _never_ face
|
2024-09-28 20:36:07 +00:00
|
|
|
|
undocumented, obscure behaviour.
|
2024-09-28 20:43:15 +00:00
|
|
|
|
- **Idiomatic**: nvf does things ✨ _the right way_ ✨ - the codebase is, and
|
|
|
|
|
will, remain maintainable for myself and any contributors.
|
2023-02-06 02:27:15 +00:00
|
|
|
|
|
2024-09-28 20:36:07 +00:00
|
|
|
|
## Get Started
|
2023-02-06 02:27:15 +00:00
|
|
|
|
|
2024-09-28 20:43:15 +00:00
|
|
|
|
[nvf manual]: https://notashelf.github.io/nvf/
|
|
|
|
|
[issue tracker]: https://github.com/NotAShelf/nvf/issues
|
|
|
|
|
|
2024-09-28 20:36:07 +00:00
|
|
|
|
If you are not sold on the concepts of **nvf**, and would like to try out the
|
|
|
|
|
default configuration before even _thinking about_ installing it, you may run
|
|
|
|
|
the following in order to take **nvf** out for a spin.
|
2023-02-06 02:27:15 +00:00
|
|
|
|
|
2024-09-28 20:36:07 +00:00
|
|
|
|
```bash
|
2024-09-28 20:43:15 +00:00
|
|
|
|
# Run the default package
|
2024-04-27 13:04:09 +00:00
|
|
|
|
nix run github:notashelf/nvf
|
2023-02-06 02:27:15 +00:00
|
|
|
|
```
|
2023-02-06 02:32:13 +00:00
|
|
|
|
|
2024-09-28 20:36:07 +00:00
|
|
|
|
This will get you a feel for the base configuration and UI design. Though, none
|
|
|
|
|
of the configuration options are final as **nvf** is designed to be modular and
|
|
|
|
|
configurable.
|
2023-02-06 02:27:15 +00:00
|
|
|
|
|
2024-09-28 20:36:07 +00:00
|
|
|
|
> [!TIP]
|
|
|
|
|
> The flake exposes `#nix` as the default package, providing minimal language
|
|
|
|
|
> support and various utilities. You may also use the `#nix` or `#maximal`
|
|
|
|
|
> packages provided by the this flake to get try out different configurations.
|
2023-02-06 02:27:15 +00:00
|
|
|
|
|
2024-09-28 20:36:07 +00:00
|
|
|
|
It is as simple as changing the target output to get a different configuration.
|
|
|
|
|
For example, to get a configuration with large language coverage, run:
|
|
|
|
|
|
|
|
|
|
```bash
|
2024-09-28 20:43:15 +00:00
|
|
|
|
# Run the maximal package
|
2024-09-28 20:36:07 +00:00
|
|
|
|
nix run github:notashelf/nvf#maximal
|
2023-02-06 02:27:15 +00:00
|
|
|
|
```
|
|
|
|
|
|
2024-03-09 02:41:50 +00:00
|
|
|
|
Similar instructions will apply for `nix profile install`. However, you are
|
|
|
|
|
recommended to instead use the module system as described in the manual.
|
2023-02-06 02:27:15 +00:00
|
|
|
|
|
2024-09-28 20:36:07 +00:00
|
|
|
|
> [!NOTE]
|
2024-09-28 20:43:15 +00:00
|
|
|
|
> The `maximal` configuration is quite large, and might take a while to build.
|
|
|
|
|
> To get a feel for the configuration, use the default `nix` configuration.
|
|
|
|
|
> Should you choose to try out the `maximal` configuration, using the binary
|
|
|
|
|
> cache as described in the manual is _strongly_ recommended.
|
2024-09-28 20:36:07 +00:00
|
|
|
|
|
|
|
|
|
If you are convinced, proceed to the next section to view the installation
|
|
|
|
|
instructions.
|
2023-10-23 14:57:41 +00:00
|
|
|
|
|
2023-02-01 19:11:37 +00:00
|
|
|
|
## Documentation
|
|
|
|
|
|
2024-11-04 14:23:18 +00:00
|
|
|
|
### Installation
|
|
|
|
|
|
|
|
|
|
The _recommended_ way of installing nvf is using either the NixOS or the
|
2024-09-28 20:36:07 +00:00
|
|
|
|
Home-Manager module, though it is completely possible and no less supported to
|
|
|
|
|
install **nvf** as a standalone package, or a flake output.
|
2023-02-01 19:11:37 +00:00
|
|
|
|
|
2024-10-01 05:12:06 +00:00
|
|
|
|
See the rendered [nvf manual] for detailed and up-to-date installation guides,
|
2024-09-28 20:36:07 +00:00
|
|
|
|
configurations, available options, release notes and more. Tips for installing
|
|
|
|
|
userspace plugins is also contained in the documentation.
|
2023-02-01 19:11:37 +00:00
|
|
|
|
|
2024-10-01 05:12:06 +00:00
|
|
|
|
> [!TIP]
|
|
|
|
|
> While using NixOS or Home-Manager modules,
|
|
|
|
|
> `programs.nvf.enableManpages = true;` will allow you to view option
|
|
|
|
|
> documentation from the comfort of your terminal via `man 5 nvf`. The more you
|
|
|
|
|
> know.
|
|
|
|
|
|
2024-09-28 20:36:07 +00:00
|
|
|
|
Please create an issue on the [issue tracker] if you find the documentation
|
|
|
|
|
lacking or confusing. Any improvements to the documentation through pull
|
|
|
|
|
requests are also welcome, and appreciated.
|
2023-02-04 01:16:26 +00:00
|
|
|
|
|
2024-11-04 14:23:18 +00:00
|
|
|
|
## Getting Help
|
2023-02-01 19:11:37 +00:00
|
|
|
|
|
2024-11-04 14:23:18 +00:00
|
|
|
|
If you are confused, stuck or would like to ask a simple question; you may
|
|
|
|
|
create an issue on the [issue tracker] to ask questions or report bugs.
|
|
|
|
|
|
|
|
|
|
We are not not yet on spaces like matrix or IRC, so please use the issue tracker
|
|
|
|
|
for now.
|
2023-02-01 19:11:37 +00:00
|
|
|
|
|
2023-02-15 15:22:59 +00:00
|
|
|
|
## Contributing
|
|
|
|
|
|
2024-03-09 02:41:50 +00:00
|
|
|
|
I am always looking for new ways to help improve this flake. If you would like
|
|
|
|
|
to contribute, please read the [contributing guide](CONTRIBUTING.md) before
|
2024-09-28 20:36:07 +00:00
|
|
|
|
submitting a pull request. You can also create an issue on the [issue tracker]
|
|
|
|
|
before submitting a pull request if you would like to discuss a feature or bug
|
|
|
|
|
fix.
|
2023-02-15 15:22:59 +00:00
|
|
|
|
|
2024-11-04 14:23:18 +00:00
|
|
|
|
## Frequently Asked Questions
|
2023-02-06 02:27:15 +00:00
|
|
|
|
|
2024-12-10 20:56:46 +00:00
|
|
|
|
[issue template]: https://github.com/NotAShelf/nvf/issues/new/choose
|
2024-09-28 20:43:15 +00:00
|
|
|
|
[list of branches]: https://github.com/NotAShelf/nvf/branches
|
|
|
|
|
[list of open pull requests]: https://github.com/NotAShelf/nvf/pulls
|
2024-09-28 20:36:07 +00:00
|
|
|
|
|
|
|
|
|
**Q**: What platforms are supported?
|
2024-12-10 20:56:46 +00:00
|
|
|
|
<br/> **A**: nvf actively supports **Linux and Darwin** platforms using
|
|
|
|
|
standalone Nix, NixOS or Home-Manager. Please take a look at the [nvf manual]
|
|
|
|
|
for available installation instructions.
|
2024-09-28 20:36:07 +00:00
|
|
|
|
|
2024-04-27 13:04:09 +00:00
|
|
|
|
**Q**: Can you add _X_?
|
2024-09-28 20:36:07 +00:00
|
|
|
|
<br/> **A**: Maybe! It is not one of our goals to support each and every Neovim
|
|
|
|
|
plugin, however, I am always open to new modules and plugin setup additions to
|
2024-12-10 20:56:46 +00:00
|
|
|
|
**nvf**. Use the appropriate [issue template] and I will consider a module
|
2024-11-04 14:23:18 +00:00
|
|
|
|
addition. As mentioned before, pull requests to add new features are also
|
|
|
|
|
welcome.
|
2023-02-06 02:27:15 +00:00
|
|
|
|
|
2024-04-27 13:04:09 +00:00
|
|
|
|
**Q**: A plugin I need is not available in **nvf**. What to do?
|
2024-09-28 20:36:07 +00:00
|
|
|
|
<br/> **A**: **nvf** exposes several APIs for you to be able to add your own
|
|
|
|
|
plugin configurations! Please see the documentation on how you may do this.
|
2023-02-15 14:41:46 +00:00
|
|
|
|
|
2024-04-28 17:41:54 +00:00
|
|
|
|
**Q**: Main branch is awfully silent, is the project dead?
|
2024-09-28 20:43:15 +00:00
|
|
|
|
<br/> **A**: No! Sometimes we branch out (e.g. `v0.6`) to avoid breaking
|
|
|
|
|
userspace and work in a separate branch until we make sure the new additions are
|
|
|
|
|
implemented in the most comfortable way possible for the end user. If you have
|
2024-09-28 20:36:07 +00:00
|
|
|
|
not noticed any activity on the main branch, consider taking a look at the
|
2024-09-28 20:43:15 +00:00
|
|
|
|
[list of branches] or the [list of open pull requests]. You may also consider
|
|
|
|
|
_testing_ those release branches to get access to new features ahead of time and
|
|
|
|
|
better prepare to breaking changes.
|
2024-04-28 17:41:54 +00:00
|
|
|
|
|
2024-12-10 20:56:46 +00:00
|
|
|
|
**Q**: Will you support non-flake installations?
|
|
|
|
|
<br/> **A**: Quite possibly. **nvf** started as "neovim-flake", which does mean
|
|
|
|
|
it is and will remain flakes-first but we might consider non-flakes
|
|
|
|
|
compatibility. Though keep in mind that **nvf** under non-flake environments
|
|
|
|
|
would lose customizability of plugin inputs, which is one of our primary
|
|
|
|
|
features.
|
|
|
|
|
|
2023-02-15 15:22:59 +00:00
|
|
|
|
## Credits
|
|
|
|
|
|
|
|
|
|
### Contributors
|
|
|
|
|
|
2024-11-04 14:23:18 +00:00
|
|
|
|
[mnw]: https://github.com/gerg-l/mnw
|
|
|
|
|
|
|
|
|
|
nvf would not be what it is today without the awesome people below. Special,
|
|
|
|
|
heart-felt thanks to
|
2023-04-15 08:33:14 +00:00
|
|
|
|
|
2024-11-04 14:23:18 +00:00
|
|
|
|
- [@fufexan](https://github.com/fufexan) - For the transition to flake-parts and
|
|
|
|
|
invaluable Nix assistance.
|
|
|
|
|
- [@FlafyDev](https://github.com/FlafyDev) - For getting home-manager module to
|
|
|
|
|
work and Nix assistance.
|
2024-09-28 20:36:07 +00:00
|
|
|
|
- [@n3oney](https://github.com/n3oney) - For making custom keybinds finally
|
2024-11-04 14:23:18 +00:00
|
|
|
|
possible, and other module additions.
|
2024-09-28 20:36:07 +00:00
|
|
|
|
- [@horriblename](https://github.com/horriblename) - For actively implementing
|
2024-11-04 14:23:18 +00:00
|
|
|
|
planned features and quality of life updates.
|
2024-04-27 13:04:09 +00:00
|
|
|
|
- [@Yavko](https://github.com/Yavko) - For the amazing **nvf** logo
|
2024-09-28 20:36:07 +00:00
|
|
|
|
- [@FrothyMarrow](https://github.com/FrothyMarrow) - For seeing mistakes that I
|
2024-11-04 14:23:18 +00:00
|
|
|
|
could not.
|
|
|
|
|
- [@Diniamo](https://github.com/Diniamo) - For actively submitting pull
|
|
|
|
|
requests, issues and assistance with maintenance of nvf.
|
|
|
|
|
- [@Gerg-l](https://github.com/gerg-l) - For the modern Neovim wrapper, [mnw],
|
|
|
|
|
and occasional code improvements.
|
2023-02-15 15:22:59 +00:00
|
|
|
|
|
2023-04-15 08:33:14 +00:00
|
|
|
|
and everyone who has submitted issues or pull requests!
|
|
|
|
|
|
2023-02-15 15:22:59 +00:00
|
|
|
|
### Inspiration
|
|
|
|
|
|
2024-03-09 02:41:50 +00:00
|
|
|
|
This configuration borrows from and is based on a few other configurations,
|
|
|
|
|
including:
|
2023-02-15 15:22:59 +00:00
|
|
|
|
|
2024-09-28 20:36:07 +00:00
|
|
|
|
- [@jordanisaacs's](https://github.com/jordanisaacs)
|
|
|
|
|
[neovim-flake](https://github.com/jordanisaacs/neovim-flake) that this flake
|
|
|
|
|
is originally based on.
|
|
|
|
|
- [@sioodmy's](https://github.com/sioodmy)
|
|
|
|
|
[dotfiles](https://github.com/sioodmy/dotfiles) that inspired the design
|
2024-11-04 14:23:18 +00:00
|
|
|
|
choices for UI and plugin defaults.
|
2024-09-28 20:36:07 +00:00
|
|
|
|
- [@wiltaylor's](https://github.com/wiltaylor)
|
|
|
|
|
[neovim-flake](https://github.com/wiltaylor/neovim-flake) for plugin and
|
|
|
|
|
design ideas.
|
|
|
|
|
- [@gvolpe's](https://github.com/gvolpe)
|
|
|
|
|
[neovim-flake](https://github.com/gvolpe/neovim-flake) for plugin, design and
|
|
|
|
|
nix concepts.
|
2023-02-15 15:22:59 +00:00
|
|
|
|
|
2024-03-09 02:41:50 +00:00
|
|
|
|
I am grateful for their previous work and inspiration, and I wholeheartedly
|
|
|
|
|
recommend checking their work out.
|
2023-02-15 14:47:40 +00:00
|
|
|
|
<br/>
|
|
|
|
|
|
2024-04-27 13:04:09 +00:00
|
|
|
|
## License
|
|
|
|
|
|
2024-09-28 20:36:07 +00:00
|
|
|
|
Following the license of the
|
2024-11-04 14:23:18 +00:00
|
|
|
|
[original neovim-flake](https://github.com/jordanisaacs/neovim-flake), nvf has
|
|
|
|
|
been made available under the [**MIT License**](LICENSE). However, all assets
|
|
|
|
|
and documentation are published under the
|
|
|
|
|
[**CC BY License**](https://github.com/NotAShelf/nvf/blob/main/.github/assets/LICENSE)
|
|
|
|
|
under explicit permission by the artist.
|
2024-04-27 13:04:09 +00:00
|
|
|
|
|
2024-09-28 20:43:15 +00:00
|
|
|
|
<h6 align="center">Yes, this includes the logo work too. Stop taking artwork that is not yours!</h6>
|
2024-09-28 20:36:07 +00:00
|
|
|
|
|
2023-02-06 02:27:15 +00:00
|
|
|
|
---
|
2024-04-08 01:35:35 +00:00
|
|
|
|
|
|
|
|
|
<div align="right">
|
|
|
|
|
<a href="#readme">Back to the Top</a>
|
|
|
|
|
</div>
|