chore: add README.md and LICENSE

This commit is contained in:
Guz
2024-12-09 18:29:30 -03:00
parent 66d8ced354
commit 8899ed3447
2 changed files with 105 additions and 0 deletions

13
LICENSE Normal file
View File

@@ -0,0 +1,13 @@
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Copyright (C) 2024-present Gustavo "Guz" L. de Mello <contact@guz.one>
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. You just DO WHAT THE FUCK YOU WANT TO.

92
README.md Normal file
View File

@@ -0,0 +1,92 @@
# Neovim
Minimal Neovim configuration, focused mostly in just coding and text editing.
## Features
- Wrapped `nvim` binary to bundle the Lua configuration (no need to use `~/.config/nvim`);
- Plugin management done via [Nix](https://nixos.org), with lazy-loading handled by [`lze`](https://github.com/BirdeeHub/lze/);
- File management done via [`lf`](https://github.com/gokcehan/lf);
- Configured Language Server Protocol (LSP) support, with all used LSPs bundled with the binary;
- Auto-formatting on save.
## Using
The configuration is mainly intended to be used with the Nix package manager. However,
due to the structured of this configuration, it may be possible to use it as a plugin.
### Nix
If you have Nix installed (with [Flakes](https://wiki.nixos.org/wiki/Flakes) enabled),
you can run the configured Neovim binary with just:
```sh
nix run git+https://forge.capytal.company/dot013/nvim
# GitHub mirror
niix run github:dot013/nvim
```
It also can be used as a NixOS or [Home-Manager](https://github.com/nix-community/home-manager)
module:
```nix
# flake.nix
{
inputs = {
dot013-neovim.url = "git+https://forge.capytal.company/dot013/nvim"
};
outputs = { ... } @ inputs: {
# your NixOS configurations ...
};
}
```
```nix
# configuration.nix
{ inputs, ... }: {
imports = [
inputs.dot013-neovim.nixosModules.nvim
];
}
```
```nix
# home.nix
{ inputs, ... }: {
imports = [
inputs.dot013-neovim.homeManagerModules.nvim
];
}
```
### Neovim Plugin
All the configuration is provided under the plugin/Lua namespace "`dot013`", so it may be possible
to install it on a conventional `~/.config/nvim` Lua config. **This is not tested or even
planned to be supported**, and all dependencies would need to be handled manually in one
way or another compatible with `lze`'s plugin loading (with is simply based on Neovim's default
plugin loading).
## Acknowledgments
This configuration was a learning experience, both on how to wrap programs using Nix and
to better understand NeoVim and it's APIs. I (@Guz013) wouldn't be able to make this config
without the help and inspiration from:
- Fernando Ayats' (@viperMl on GitHub) blog post on creating a [Neovim wrapper with Nix from scratch](https://ayats.org/blog/neovim-wrapper);
- Inspirations from [`peek.nvim`](https://github.com/toppair/peek.nvim)'s source-code to be able to
run CLI applications with the Neovim API;
- Christoph's (@chirshrb on GitHub) [`go-grip`](https://github.com/chrishrb/go-grip), used as the
Markdown previewer webserver.
## License
Copyright &copy; 2024-present Gustavo "Guz" L. de Mello <contact@guz.one>
This program is free software. It comes without any warranty, to
the extent permitted by applicable law. You can redistribute it
and/or modify it under the terms of the Do What The Fuck You Want
To Public License, Version 2, as published by Sam Hocevar. See
the [LICENSE](./LICENSE) file or http://www.wtfpl.net/ for more details.