aboutsummaryrefslogtreecommitdiffstats
path: root/sys/nixpkgs/pkgs/plgs-pkgs
diff options
context:
space:
mode:
authorSoispha <soispha@vhack.eu>2023-12-09 18:20:18 +0100
committerSoispha <soispha@vhack.eu>2023-12-09 18:20:18 +0100
commitb6302ae731f9d438f4e59f62d04903df79d4c942 (patch)
tree1b49245fe4e755d2fa4708de5e02b04ee1064605 /sys/nixpkgs/pkgs/plgs-pkgs
parentbuild(treewide): Update (diff)
downloadnixos-config-b6302ae731f9d438f4e59f62d04903df79d4c942.zip
feat(treewide): Specify nvim plugins in my flake
Diffstat (limited to '')
-rw-r--r--sys/nixpkgs/pkgs/plgs-pkgs/README.md94
-rw-r--r--sys/nixpkgs/pkgs/plgs-pkgs/check.nix37
-rw-r--r--sys/nixpkgs/pkgs/plgs-pkgs/default.nix15
-rw-r--r--sys/nixpkgs/pkgs/plgs-pkgs/overrides.nix251
-rw-r--r--sys/nixpkgs/pkgs/plgs-pkgs/plugins/.plugins.json6
-rw-r--r--sys/nixpkgs/pkgs/plgs-pkgs/plugins/blacklist.txt1
-rw-r--r--sys/nixpkgs/pkgs/plgs-pkgs/plugins/default.nix55
-rw-r--r--sys/nixpkgs/pkgs/plgs-pkgs/plugins/manifest.txt3
-rw-r--r--sys/nixpkgs/pkgs/plgs-pkgs/plugins/plugins.md7
-rw-r--r--sys/nixpkgs/pkgs/plgs-pkgs/plugins/whitelist.txt0
-rwxr-xr-xsys/nixpkgs/pkgs/plgs-pkgs/update_neovim_plugins26
11 files changed, 495 insertions, 0 deletions
diff --git a/sys/nixpkgs/pkgs/plgs-pkgs/README.md b/sys/nixpkgs/pkgs/plgs-pkgs/README.md
new file mode 100644
index 00000000..ed05f4b2
--- /dev/null
+++ b/sys/nixpkgs/pkgs/plgs-pkgs/README.md
@@ -0,0 +1,94 @@
+# Fork
+All files in this repository where forked form [here](https://github.com/NixNeovim/NixNeovimPlugins) on commit `5010b91eb03696574c3c293f072a090618227e87`.
+Below the original README. They were licensed under the MIT license.
+# All vim plugins, ready to go
+
+This repo auto generates nix packages for vim/neovim plugins.
+Packages are automatically updated twice per week using a GitHub Actions.
+Plugins are fetched from the `manifest.txt` and [awesome-neovim][0] repo.
+
+This is a fork of [this repo](https://github.com/m15a/nixpkgs-vim-extra-plugins); however, we fetch all additions from the original repo, so we will never have less plugins.
+Further, the original deletes plugins that are available in the nixpkgs. We, instead, try to assemble a list of all available plugins.
+Therefore, to access plugins you will never have to search in two places.
+
+This repo can be used as a stand-alone, by adding it to your inputs.
+However, we recommend to use [NixNeovim](https://github.com/NixNeovim/NixNeovim) modules instead, and use this only when you need a plugins, which does not have a module, yet.
+
+## Available plugins
+
+The [plugins.md](plugins.md) contains an auto-generated list of all available plugins.
+
+## Usage
+
+- We recommend using [NixNeovim](https://github.com/NixNeovim/NixNeovim), and only access the plugins directly when they do not have a module in NixNeovim.
+
+However, you can also use this repo without NixNeovim:
+To access the plugins, you need to add the overlay.
+The overlay adds extra Vim plugins to `pkgs.vimExtraPlugins`.
+First, add this repo to your inputs:
+
+```
+inputs.nixneovimplugins.url = github:jooooscha/nixpkgs-vim-extra-plugins
+```
+
+Next, apply the provided overlay:
+
+```
+nixpkgs.overlays = [
+ inputs.nixneovimplugins.overlays.default
+];
+```
+
+Finally, you can add the packages to your vim/neovim config. For example you can use [NixNeovim](https://github.com/NixNeovim/Nixneovim) or you can add the plugins directly:
+
+```
+ programs.neovim = {
+ plugins = [
+ pkgs.vimExtraPlugins.nvim-colorizer-lua
+ ];
+ }
+```
+
+More info on using neovim with nix can be found here: [NixOS Neovim](https://nixos.wiki/wiki/Neovim)
+
+[0]: https://github.com/rockerBOO/awesome-neovim
+[1]: https://nixos.org/manual/nix/stable/release-notes/rl-2.4.html?highlight=builtins.getFlake#other-features
+[2]: https://nur.nix-community.org/
+[3]: https://nur.nix-community.org/repos/m15a/
+
+
+## Contribution
+
+### How to add a new plugin
+
+#### 1. Add the plugin to manifest.txt:
+
+```
+# Examples
+
+haringsrob/nvim_context_vt
+sourcehut:henriquehbr/ataraxis.lua
+gitlab:yorickpeterse/nvim-pqf
+williamboman/mason.nvim:45b9a4da776d9fb017960b3ac7241161fb7bc578
+foo/bar::baz --> renamed to baz
+foo/bar:dev --> using dev branch
+```
+
+Supported are Github (default), SourceHut, and GitLab.
+
+#### 2. Create a Pull Request
+
+- Create a pull request with the changed manifest.txt (and blacklist.txt if neccessary).
+- A GitHub action will check your contribution and generate all neccessary nix code for your new plugin. It will also take care of sorting and cleaning the manifest.txt
+- After all checks have passed, I will merge your change.
+
+I am happy for any contribution. :)
+
+### How to remove a new plugin
+
+Copy the entry from manifest.txt to blacklist.txt and create a PR.
+The GitHub Actions will do the rest, including removing the entry from manifest.txt
+
+## Credits
+
+This is originally based on work by [m15a](https://github.com/m15a/nixpkgs-vim-extra-plugins)
diff --git a/sys/nixpkgs/pkgs/plgs-pkgs/check.nix b/sys/nixpkgs/pkgs/plgs-pkgs/check.nix
new file mode 100644
index 00000000..ad23e2c7
--- /dev/null
+++ b/sys/nixpkgs/pkgs/plgs-pkgs/check.nix
@@ -0,0 +1,37 @@
+{
+ pkgs,
+ lib,
+ ...
+}: let
+ # checks if a plugin has a license
+ hasLicense = _: pkg: let
+ warn = x: lib.warn x x;
+
+ msg =
+ if builtins.hasAttr "license" pkg.meta
+ then "${pkg.name} has license"
+ else warn "${pkg.name} has no license";
+
+ msg' = lib.replaceStrings [" "] ["-"] msg;
+ in
+ pkgs.runCommandNoCC msg' {} "echo : > $out ";
+
+ # function to check License for all packages
+ check-missing-licenses = let
+ buildInputs =
+ lib.mapAttrsToList
+ hasLicense
+ pkgs.vimExtraPlugins;
+ in
+ pkgs.runCommandNoCC
+ "check-missing-licenses"
+ {inherit buildInputs;}
+ "echo : > $out";
+in {
+ checks =
+ pkgs.vimExtraPlugins
+ // {
+ inherit check-missing-licenses;
+ inherit (pkgs) update-vim-plugins;
+ };
+}
diff --git a/sys/nixpkgs/pkgs/plgs-pkgs/default.nix b/sys/nixpkgs/pkgs/plgs-pkgs/default.nix
new file mode 100644
index 00000000..0f7cd485
--- /dev/null
+++ b/sys/nixpkgs/pkgs/plgs-pkgs/default.nix
@@ -0,0 +1,15 @@
+[
+ (final: prev:
+ prev.lib.composeManyExtensions [
+ (self: super: let
+ origin = import ./plugins {
+ inherit (super.vimUtils) buildVimPlugin;
+ inherit (super) lib fetchurl fetchgit;
+ };
+ in {
+ vimExtraPlugins = super.lib.makeExtensible (_: super.lib.recurseIntoAttrs origin);
+ })
+ ]
+ final
+ prev)
+]
diff --git a/sys/nixpkgs/pkgs/plgs-pkgs/overrides.nix b/sys/nixpkgs/pkgs/plgs-pkgs/overrides.nix
new file mode 100644
index 00000000..c4a32026
--- /dev/null
+++ b/sys/nixpkgs/pkgs/plgs-pkgs/overrides.nix
@@ -0,0 +1,251 @@
+final: prev: let
+ inherit (final) lib;
+
+ /*
+ * Mark broken packages here.
+ */
+ markBrokenPackages = self: super:
+ lib.mapAttrs (attrName: broken:
+ super.${attrName}.overrideAttrs (old: {
+ meta = old.meta // {inherit broken;};
+ }))
+ {
+ go-nvim = true;
+
+ highlight-current-n-nvim = true;
+
+ snippet-converter-nvim = true;
+
+ vacuumline-nvim = true;
+
+ vgit-nvim = true;
+
+ unruly-worker = true;
+ };
+
+ /*
+ * Add licenses if missing or incorrect in generated ./pkgs/vim-plugins.nix.
+ */
+ fixLicenses = self: super:
+ lib.mapAttrs (attrName: license:
+ super.${attrName}.overrideAttrs (old: {
+ meta = old.meta // {inherit license;};
+ })) (with lib.licenses; {
+ ariake-vim-colors = [mit];
+
+ bats-vim = [vim];
+
+ christmas-vim = [mit];
+
+ coc-tailwind-intellisense = [mit];
+
+ distant-nvim = [asl20 mit];
+
+ goimpl-nvim = [mit];
+
+ null-ls-nvim = [publicDomain];
+
+ nvim-base16-lua = [mit];
+
+ nvim-cartographer = [gpl3Plus];
+
+ nvim-deus = [gpl3Plus];
+
+ nvim-pqf = [mpl20];
+
+ nvim-remote-containers = [
+ rec {
+ shortName = fullName;
+ fullName = "jamestthompson3's modified MIT License";
+ url = "https://github.com/jamestthompson3/nvim-remote-containers/blob/master/LICENSE";
+ free = true;
+ redistributable = true;
+ deprecated = false;
+ }
+ ];
+
+ nvim-revJ-lua = [vim];
+
+ nvim-srcerite = [gpl3Plus];
+
+ nvim-window = [mpl20];
+
+ osc-nvim = [mit];
+
+ vim-emacscommandline = [vim];
+
+ vim-hy = [vim];
+
+ vim-textobj-indent = [mit];
+
+ vim-textobj-parameter = [mit];
+ });
+
+ # /*
+ # * Add dependencies to vim plugins if missing or incorrect in generated ./pkgs/vim-plugins.nix.
+ # */
+ # fixDependencies = self: super:
+ # lib.mapAttrs (attrName: dependencies: super.${attrName}.overrideAttrs (_: {
+ # inherit dependencies;
+ # })) (with final.vimPlugins;
+ # {
+ # apprentice-nvim = [ lush-nvim ];
+
+ # auto-pandoc-nvim = [ plenary-nvim ];
+
+ # code-runner-nvim = [ plenary-nvim ];
+
+ # codeschool-nvim = [ lush-nvim ];
+
+ # express-line-nvim = [ plenary-nvim ];
+
+ # follow-md-links-nvim = [ nvim-treesitter ];
+
+ # fuzzy-nvim = [ plenary-nvim ];
+
+ # github-colors = [ nvim-treesitter ];
+
+ # gloombuddy = [ colorbuddy-nvim ];
+
+ # go-nvim = [ nvim-treesitter ];
+
+ # goimpl-nvim = [ nvim-treesitter telescope-nvim ];
+
+ # gruvbuddy-nvim = [ colorbuddy-nvim ];
+
+ # gruvy = [ lush-nvim ];
+
+ # jester = [ nvim-treesitter ];
+
+ # lspactions = [ plenary-nvim popup-nvim ];
+
+ # lspactions-nvim06-compatible = [ plenary-nvim popup-nvim self.astronauta-nvim ];
+
+ # navigator-lua = [ nvim-lspconfig self.guihua-lua ];
+
+ # neogen = [ nvim-treesitter ];
+
+ # nlsp-settings-nvim = [ nvim-lspconfig ];
+
+ # nvim-comment-frame = [ nvim-treesitter ];
+
+ # nvim-go = [ plenary-nvim popup-nvim ];
+
+ # nvim-lsp-basics = [ nvim-lspconfig ];
+
+ # nvim-lspfuzzy = [ fzfWrapper ];
+
+ # nvim-lsp-installer = [ nvim-lspconfig ];
+
+ # nvim-lspupdate = [ nvim-lspconfig ];
+
+ # nvim-magic = [ plenary-nvim nui-nvim ];
+
+ # nvim-rdark = [ colorbuddy-nvim ];
+
+ # nvim-revJ-lua = [ self.vim-textobj-parameter ];
+
+ # nvim-spectre = [ plenary-nvim ];
+
+ # nvim-treesitter-textsubjects = [ nvim-treesitter ];
+
+ # nvim-treehopper = [ nvim-treesitter ];
+
+ # nvim-ts-context-commentstring = [ nvim-treesitter ];
+
+ # one-small-step-for-vimkind = [ nvim-dap ];
+
+ # onebuddy = [ colorbuddy-nvim ];
+
+ # reaper-nvim = [ self.osc-nvim ];
+
+ # sqls-nvim = [ nvim-lspconfig ];
+
+ # startup-nvim = [ telescope-nvim ];
+
+ # tabline-framework-nvim = [ nvim-web-devicons ];
+
+ # tabout-nvim = [ nvim-treesitter ];
+
+ # telescope-bibtex-nvim = [ telescope-nvim ];
+
+ # telescope-command-palette-nvim = [ telescope-nvim ];
+
+ # telescope-heading-nvim = [ telescope-nvim ];
+
+ # telescope-tmuxinator-nvim = [ telescope-nvim ];
+
+ # vacuumline-nvim = [ galaxyline-nvim ];
+
+ # vgit-nvim = [ plenary-nvim ];
+
+ # vim-textobj-parameter = [ vim-textobj-user ];
+
+ # virtual-types-nvim = [ nvim-lspconfig ];
+
+ # yabs-nvim = [ plenary-nvim ];
+
+ # zenbones-nvim = [ lush-nvim ];
+ # });
+
+ /*
+ * Add other overrides here.
+ */
+ otherOverrides = self: super: {
+ feline-nvim = super.feline-nvim.overrideAttrs (old: {
+ patches =
+ (old.patches or [])
+ ++ lib.optionals (lib.versionOlder old.version "2021-12-19") [
+ # https://github.com/famiu/feline.nvim/pull/179
+ (final.fetchpatch {
+ url = "https://github.com/zbirenbaum/feline.nvim/commit/d62d9ec923fe76da27f5ac7000b2a506b035740d.patch";
+ sha256 = "sha256-fLa6za0Srm/gnVPlPgs11+2cxhj7hitgUhlHu2jc2+s=";
+ })
+ ];
+ });
+
+ glow-nvim = super.glow-nvim.overrideAttrs (old: {
+ patches =
+ (old.patches or [])
+ ++ [
+ # https://github.com/ellisonleao/glow.nvim/pull/80
+ (final.fetchpatch {
+ url = "https://github.com/ellisonleao/glow.nvim/pull/80/commits/16a348ffa8022945f735caf708c2bd601b08272c.patch";
+ sha256 = "sha256-fljlBTHcoPjnavF37yoIs3zrZ3+iOX6oQ0e20AKtNI8=";
+ })
+ ];
+ });
+
+ guihua-lua = super.guihua-lua.overrideAttrs (old: {
+ buildPhase = ''
+ (
+ cd lua/fzy
+ make
+ )
+ '';
+ });
+
+ mdeval-nvim = super.mdeval-nvim.overrideAttrs (old: {
+ postPatch =
+ (old.postPatch or "")
+ + ''
+ sed -Ei lua/mdeval.lua \
+ -e 's@(get_command\(string\.format\(")mkdir@\1${final.coreutils}/bin/mkdir@' \
+ -e 's@(get_command\(string\.format\(")rm@\1${final.coreutils}/bin/rm@' \
+ -e 's@(2>&1; )echo@\1${final.coreutils}/bin/echo@'
+ '';
+ });
+
+ nvim-papadark = self.themer-lua;
+
+ feline-nvim-develop = self.feline-nvim;
+ };
+in {
+ vimExtraPlugins = prev.vimExtraPlugins.extend (lib.composeManyExtensions [
+ markBrokenPackages
+ fixLicenses
+ fixDependencies
+ # onceHereButNowOfficiallyMaintainedPlugins
+ otherOverrides
+ ]);
+}
diff --git a/sys/nixpkgs/pkgs/plgs-pkgs/plugins/.plugins.json b/sys/nixpkgs/pkgs/plgs-pkgs/plugins/.plugins.json
new file mode 100644
index 00000000..46df05f9
--- /dev/null
+++ b/sys/nixpkgs/pkgs/plgs-pkgs/plugins/.plugins.json
@@ -0,0 +1,6 @@
+{
+ "akinsho/toggleterm.nvim": "{\"description\": \"A neovim lua plugin to help easily manage multiple terminal windows\", \"homepage\": \"https://github.com/akinsho/toggleterm.nvim\", \"license\": {\"py/reduce\": [{\"py/type\": \"update_vim_plugins.nix.License\"}, {\"py/tuple\": [\"gpl3Only\"]}]}, \"name\": \"toggleterm-nvim\", \"owner\": \"akinsho\", \"py/object\": \"update_vim_plugins.plugin.GitHubPlugin\", \"source\": {\"py/object\": \"update_vim_plugins.nix.UrlSource\", \"sha256\": \"0nx69q9597vy7lzvvh58fnjyin23ns6apmyp532sgf547bw7mld6\", \"url\": \"https://github.com/akinsho/toggleterm.nvim/archive/cbd041d91b90cd3c02df03fe6133208888f8e008.tar.gz\"}, \"source_line\": \"akinsho/toggleterm.nvim\", \"version\": {\"__reduce__\": [{\"py/type\": \"datetime.date\"}, [\"B+cMBg==\"]], \"py/object\": \"datetime.date\"}}",
+ "andrewferrier/debugprint.nvim": "{\"description\": \"Debugging in NeoVim the print() way!\", \"homepage\": \"https://github.com/andrewferrier/debugprint.nvim\", \"license\": {\"py/reduce\": [{\"py/type\": \"update_vim_plugins.nix.License\"}, {\"py/tuple\": [\"\"]}]}, \"name\": \"debugprint-nvim\", \"owner\": \"andrewferrier\", \"py/object\": \"update_vim_plugins.plugin.GitHubPlugin\", \"source\": {\"py/object\": \"update_vim_plugins.nix.UrlSource\", \"sha256\": \"12xp4ziray4piynjgwbgdbylday20sdfxslq24h0c3ihdy8wf7ij\", \"url\": \"https://github.com/andrewferrier/debugprint.nvim/archive/8a6d66bd6162e9c49804e9286a7d4ceba60355d5.tar.gz\"}, \"source_line\": \"andrewferrier/debugprint.nvim\", \"version\": {\"__reduce__\": [{\"py/type\": \"datetime.date\"}, [\"B+cLHA==\"]], \"py/object\": \"datetime.date\"}}",
+ "lmburns/lf.nvim": "{\"description\": \"Lf file manager for Neovim (in Lua)\", \"homepage\": \"https://github.com/lmburns/lf.nvim\", \"license\": {\"py/reduce\": [{\"py/type\": \"update_vim_plugins.nix.License\"}, {\"py/tuple\": [\"mit\"]}]}, \"name\": \"lf-nvim\", \"owner\": \"lmburns\", \"py/object\": \"update_vim_plugins.plugin.GitHubPlugin\", \"source\": {\"py/object\": \"update_vim_plugins.nix.UrlSource\", \"sha256\": \"1nwf90bnzqhlgs007gg6xpx0vf4r1d19586nld78ipi1ch7nz4px\", \"url\": \"https://github.com/lmburns/lf.nvim/archive/69ab1efcffee6928bf68ac9bd0c016464d9b2c8b.tar.gz\"}, \"source_line\": \"lmburns/lf.nvim\", \"version\": {\"__reduce__\": [{\"py/type\": \"datetime.date\"}, [\"B+cKAw==\"]], \"py/object\": \"datetime.date\"}}",
+ "nvim-telescope/telescope-bibtex.nvim": "{\"description\": \"A telescope.nvim extension to search and paste bibtex entries into your TeX files.\", \"homepage\": \"https://github.com/nvim-telescope/telescope-bibtex.nvim\", \"license\": {\"py/reduce\": [{\"py/type\": \"update_vim_plugins.nix.License\"}, {\"py/tuple\": [\"mit\"]}]}, \"name\": \"telescope-bibtex-nvim\", \"owner\": \"nvim-telescope\", \"py/object\": \"update_vim_plugins.plugin.GitHubPlugin\", \"source\": {\"py/object\": \"update_vim_plugins.nix.UrlSource\", \"sha256\": \"1vllzdh9ammsfr76mg3brl540b3i6197v8bbgi0lj7s95qy9mj5y\", \"url\": \"https://github.com/nvim-telescope/telescope-bibtex.nvim/archive/b10ec78df938a1e06217f965b32fb1b960681cff.tar.gz\"}, \"source_line\": \"nvim-telescope/telescope-bibtex.nvim\", \"version\": {\"__reduce__\": [{\"py/type\": \"datetime.date\"}, [\"B+cLFA==\"]], \"py/object\": \"datetime.date\"}}"
+} \ No newline at end of file
diff --git a/sys/nixpkgs/pkgs/plgs-pkgs/plugins/blacklist.txt b/sys/nixpkgs/pkgs/plgs-pkgs/plugins/blacklist.txt
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/sys/nixpkgs/pkgs/plgs-pkgs/plugins/blacklist.txt
@@ -0,0 +1 @@
+
diff --git a/sys/nixpkgs/pkgs/plgs-pkgs/plugins/default.nix b/sys/nixpkgs/pkgs/plgs-pkgs/plugins/default.nix
new file mode 100644
index 00000000..0d798d3e
--- /dev/null
+++ b/sys/nixpkgs/pkgs/plgs-pkgs/plugins/default.nix
@@ -0,0 +1,55 @@
+{
+ lib,
+ buildVimPlugin,
+ fetchurl,
+ fetchgit,
+}: {
+ /*
+ Generated from: andrewferrier/debugprint.nvim
+ */
+ debugprint-nvim = buildVimPlugin {
+ pname = "debugprint-nvim";
+ version = "2023-11-28";
+ src = fetchurl {
+ url = "https://github.com/andrewferrier/debugprint.nvim/archive/8a6d66bd6162e9c49804e9286a7d4ceba60355d5.tar.gz";
+ sha256 = "12xp4ziray4piynjgwbgdbylday20sdfxslq24h0c3ihdy8wf7ij";
+ };
+ meta = with lib; {
+ description = "Debugging in NeoVim the print() way!";
+ homepage = "https://github.com/andrewferrier/debugprint.nvim";
+ license = with licenses; [];
+ };
+ };
+ /*
+ Generated from: lmburns/lf.nvim
+ */
+ lf-nvim = buildVimPlugin {
+ pname = "lf-nvim";
+ version = "2023-10-03";
+ src = fetchurl {
+ url = "https://github.com/lmburns/lf.nvim/archive/69ab1efcffee6928bf68ac9bd0c016464d9b2c8b.tar.gz";
+ sha256 = "1nwf90bnzqhlgs007gg6xpx0vf4r1d19586nld78ipi1ch7nz4px";
+ };
+ meta = with lib; {
+ description = "Lf file manager for Neovim (in Lua)";
+ homepage = "https://github.com/lmburns/lf.nvim";
+ license = with licenses; [mit];
+ };
+ };
+ /*
+ Generated from: nvim-telescope/telescope-bibtex.nvim
+ */
+ telescope-bibtex-nvim = buildVimPlugin {
+ pname = "telescope-bibtex-nvim";
+ version = "2023-11-20";
+ src = fetchurl {
+ url = "https://github.com/nvim-telescope/telescope-bibtex.nvim/archive/b10ec78df938a1e06217f965b32fb1b960681cff.tar.gz";
+ sha256 = "1vllzdh9ammsfr76mg3brl540b3i6197v8bbgi0lj7s95qy9mj5y";
+ };
+ meta = with lib; {
+ description = "A telescope.nvim extension to search and paste bibtex entries into your TeX files.";
+ homepage = "https://github.com/nvim-telescope/telescope-bibtex.nvim";
+ license = with licenses; [mit];
+ };
+ };
+}
diff --git a/sys/nixpkgs/pkgs/plgs-pkgs/plugins/manifest.txt b/sys/nixpkgs/pkgs/plgs-pkgs/plugins/manifest.txt
new file mode 100644
index 00000000..86df059f
--- /dev/null
+++ b/sys/nixpkgs/pkgs/plgs-pkgs/plugins/manifest.txt
@@ -0,0 +1,3 @@
+andrewferrier/debugprint.nvim
+lmburns/lf.nvim
+nvim-telescope/telescope-bibtex.nvim
diff --git a/sys/nixpkgs/pkgs/plgs-pkgs/plugins/plugins.md b/sys/nixpkgs/pkgs/plgs-pkgs/plugins/plugins.md
new file mode 100644
index 00000000..73653272
--- /dev/null
+++ b/sys/nixpkgs/pkgs/plgs-pkgs/plugins/plugins.md
@@ -0,0 +1,7 @@
+ - Plugin count: 3
+
+| Repo | Last Update | Nix package name | Last checked |
+|:---|:---|:---|:---|
+| [andrewferrier/debugprint.nvim](https://github.com/andrewferrier/debugprint.nvim) | 2023-11-28 | `debugprint-nvim` | 2023-12-09 |
+| [lmburns/lf.nvim](https://github.com/lmburns/lf.nvim) | 2023-10-03 | `lf-nvim` | 2023-12-09 |
+| [nvim-telescope/telescope-bibtex.nvim](https://github.com/nvim-telescope/telescope-bibtex.nvim) | 2023-11-20 | `telescope-bibtex-nvim` | 2023-12-09 |
diff --git a/sys/nixpkgs/pkgs/plgs-pkgs/plugins/whitelist.txt b/sys/nixpkgs/pkgs/plgs-pkgs/plugins/whitelist.txt
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/sys/nixpkgs/pkgs/plgs-pkgs/plugins/whitelist.txt
diff --git a/sys/nixpkgs/pkgs/plgs-pkgs/update_neovim_plugins b/sys/nixpkgs/pkgs/plgs-pkgs/update_neovim_plugins
new file mode 100755
index 00000000..ea71c6fa
--- /dev/null
+++ b/sys/nixpkgs/pkgs/plgs-pkgs/update_neovim_plugins
@@ -0,0 +1,26 @@
+#!/usr/bin/env sh
+
+BASE_DIR="$(readlink -f "$(dirname "$0")/plugins")"
+
+# Fetch plugins
+cd "$BASE_DIR" || (echo "BUG: No '$BASE_DIR'" && exit 1)
+
+# Cleanup manifest
+sort -o "$BASE_DIR/manifest.txt" "$BASE_DIR/manifest.txt"
+sort -o "$BASE_DIR/blacklist.txt" "$BASE_DIR/blacklist.txt"
+## Remove all plugins, which are on the blacklist
+echo "$(comm -23 "$BASE_DIR/manifest.txt" "$BASE_DIR/blacklist.txt")" > "$BASE_DIR/manifest.txt"
+
+# Backup vim-plugins.nix
+mv "$BASE_DIR/default.nix" "$BASE_DIR/default.nix.bak"
+echo "{...} : {}" > "$BASE_DIR/default.nix"
+
+# Generate derivations for new plugins (this binary is provided by the dev-environment)
+update-vim-plugins cleanup "$BASE_DIR"
+
+# Restore vim-plugins.nix
+mv "$BASE_DIR/default.nix.bak" "$BASE_DIR/default.nix"
+
+
+# Update new plugins
+update-vim-plugins update "$BASE_DIR" --all