From 8899ed3447d71834c161a8b0030d6fc0880a90d6 Mon Sep 17 00:00:00 2001 From: "Gustavo L de Mello (Guz)" Date: Mon, 9 Dec 2024 18:29:30 -0300 Subject: [PATCH] chore: add README.md and LICENSE --- LICENSE | 13 ++++++++ README.md | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 105 insertions(+) create mode 100644 LICENSE create mode 100644 README.md diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..5e11602 --- /dev/null +++ b/LICENSE @@ -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 + + 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. diff --git a/README.md b/README.md new file mode 100644 index 0000000..da519be --- /dev/null +++ b/README.md @@ -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 © 2024-present Gustavo "Guz" L. de Mello + +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. + +