summary refs log tree commit diff
path: root/pkgs/applications/editors/kakoune
diff options
context:
space:
mode:
authorFlakebi <flakebi@t-online.de>2021-01-04 00:41:46 +0100
committerFlakebi <flakebi@t-online.de>2021-02-25 10:06:29 +0100
commitf8cc77fc577c79bceb35ac2f5f831519f730c67e (patch)
tree2e926be5ae2a431a5a1f3f4060ee463624df9431 /pkgs/applications/editors/kakoune
parent9ca73dd13f3771c0e32713b519f4a0ea6d2bb6d2 (diff)
downloadnixpkgs-f8cc77fc577c79bceb35ac2f5f831519f730c67e.tar
nixpkgs-f8cc77fc577c79bceb35ac2f5f831519f730c67e.tar.gz
nixpkgs-f8cc77fc577c79bceb35ac2f5f831519f730c67e.tar.bz2
nixpkgs-f8cc77fc577c79bceb35ac2f5f831519f730c67e.tar.lz
nixpkgs-f8cc77fc577c79bceb35ac2f5f831519f730c67e.tar.xz
nixpkgs-f8cc77fc577c79bceb35ac2f5f831519f730c67e.tar.zst
nixpkgs-f8cc77fc577c79bceb35ac2f5f831519f730c67e.zip
kakounePlugins: use script for most plugins
All Kakoune plugins from before are still there and updated.

Added plugins:
- alexherbo2/connect.kak
- alexherbo2/replace-mode.kak
- alexherbo2/sleuth.kak
- danr/kakoune-easymotion
- Delapouite/kakoune-registers
- enricozb/tabs.kak
- greenfork/active-window.kak
- kakoune-editor/kakoune-extra-filetypes
- listentolist/kakoune-rainbow
- occivink/kakoune-buffer-switcher
Diffstat (limited to 'pkgs/applications/editors/kakoune')
-rw-r--r--pkgs/applications/editors/kakoune/plugins/case.kak.nix27
-rw-r--r--pkgs/applications/editors/kakoune/plugins/default.nix36
-rw-r--r--pkgs/applications/editors/kakoune/plugins/generated.nix211
-rw-r--r--pkgs/applications/editors/kakoune/plugins/kak-ansi.nix32
-rw-r--r--pkgs/applications/editors/kakoune/plugins/kak-auto-pairs.nix24
-rw-r--r--pkgs/applications/editors/kakoune/plugins/kak-buffers.nix24
-rw-r--r--pkgs/applications/editors/kakoune/plugins/kak-fzf.nix39
-rw-r--r--pkgs/applications/editors/kakoune/plugins/kak-plumb.nix31
-rw-r--r--pkgs/applications/editors/kakoune/plugins/kak-powerline.nix29
-rw-r--r--pkgs/applications/editors/kakoune/plugins/kak-prelude.nix25
-rw-r--r--pkgs/applications/editors/kakoune/plugins/kak-vertical-selection.nix24
-rw-r--r--pkgs/applications/editors/kakoune/plugins/kakoune-plugin-names17
-rw-r--r--pkgs/applications/editors/kakoune/plugins/openscad.kak.nix25
-rw-r--r--pkgs/applications/editors/kakoune/plugins/overrides.nix161
-rw-r--r--pkgs/applications/editors/kakoune/plugins/quickscope.kak.nix29
15 files changed, 410 insertions, 324 deletions
diff --git a/pkgs/applications/editors/kakoune/plugins/case.kak.nix b/pkgs/applications/editors/kakoune/plugins/case.kak.nix
deleted file mode 100644
index 3fa91113bba..00000000000
--- a/pkgs/applications/editors/kakoune/plugins/case.kak.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ lib, stdenv, fetchFromGitLab }:
-
-stdenv.mkDerivation {
-  name = "case.kak";
-  version = "unstable-2020-04-06";
-
-  src = fetchFromGitLab {
-    owner = "FlyingWombat";
-    repo = "case.kak";
-    rev = "6f1511820aa3abfa118e0f856118adc8113e2185";
-    sha256 = "002njrlwgakqgp74wivbppr9qyn57dn4n5bxkr6k6nglk9qndwdp";
-  };
-
-  installPhase = ''
-    mkdir -p $out/share/kak/autoload/plugins
-    cp -r rc/case.kak $out/share/kak/autoload/plugins
-  '';
-
-  meta = with lib; {
-    description = "Case convention conversion for Kakoune";
-    homepage = "https://gitlab.com/FlyingWombat/case.kak";
-    license = licenses.unlicense;
-    maintainers = with maintainers; [ eraserhd ];
-    platform = platforms.all;
-  };
-}
-
diff --git a/pkgs/applications/editors/kakoune/plugins/default.nix b/pkgs/applications/editors/kakoune/plugins/default.nix
index 98b77338b9b..c8054aaf87b 100644
--- a/pkgs/applications/editors/kakoune/plugins/default.nix
+++ b/pkgs/applications/editors/kakoune/plugins/default.nix
@@ -1,17 +1,23 @@
-{ pkgs, parinfer-rust, rep, kak-lsp }:
+{ callPackage, kakouneUtils }:
 
-{
-  inherit parinfer-rust rep kak-lsp;
+let
 
-  case-kak = pkgs.callPackage ./case.kak.nix { };
-  kak-ansi = pkgs.callPackage ./kak-ansi.nix { };
-  kak-auto-pairs = pkgs.callPackage ./kak-auto-pairs.nix { };
-  kak-buffers = pkgs.callPackage ./kak-buffers.nix { };
-  kak-fzf = pkgs.callPackage ./kak-fzf.nix { };
-  kak-plumb = pkgs.callPackage ./kak-plumb.nix { };
-  kak-powerline = pkgs.callPackage ./kak-powerline.nix { };
-  kak-prelude = pkgs.callPackage ./kak-prelude.nix { };
-  kak-vertical-selection = pkgs.callPackage ./kak-vertical-selection.nix { };
-  openscad-kak = pkgs.callPackage ./openscad.kak.nix { };
-  quickscope-kak = pkgs.callPackage ./quickscope.kak.nix { };
-}
+  inherit (kakouneUtils.override {}) buildKakounePluginFrom2Nix;
+
+  plugins = callPackage ./generated.nix {
+    inherit buildKakounePluginFrom2Nix overrides;
+  };
+
+  # TL;DR
+  # * Add your plugin to ./kakoune-plugin-names
+  # * run ./update.py
+  #
+  # If additional modifications to the build process are required,
+  # add to ./overrides.nix.
+  overrides = callPackage ./overrides.nix {
+    inherit buildKakounePluginFrom2Nix;
+  };
+
+in
+
+plugins
diff --git a/pkgs/applications/editors/kakoune/plugins/generated.nix b/pkgs/applications/editors/kakoune/plugins/generated.nix
new file mode 100644
index 00000000000..12c231899e9
--- /dev/null
+++ b/pkgs/applications/editors/kakoune/plugins/generated.nix
@@ -0,0 +1,211 @@
+# This file has been generated by ./pkgs/applications/editors/kakoune/plugins/update.py. Do not edit!
+{ lib, buildKakounePluginFrom2Nix, fetchFromGitHub, overrides ? (self: super: {}) }:
+let
+  packages = ( self:
+{
+  active-window-kak = buildKakounePluginFrom2Nix {
+    pname = "active-window-kak";
+    version = "2020-05-13";
+    src = fetchFromGitHub {
+      owner = "greenfork";
+      repo = "active-window.kak";
+      rev = "988db69cfbb88bd741d089bb43b0be551693e7c1";
+      sha256 = "1fv1cp9q212gamf9z2papl5xcl2w31fpcmbgdzbxcxdl1pvfsqp8";
+    };
+    meta.homepage = "https://github.com/greenfork/active-window.kak/";
+  };
+
+  auto-pairs-kak = buildKakounePluginFrom2Nix {
+    pname = "auto-pairs-kak";
+    version = "2020-10-04";
+    src = fetchFromGitHub {
+      owner = "alexherbo2";
+      repo = "auto-pairs.kak";
+      rev = "fd735ec149ef0d9ca5f628a95b1e52858b5afbdc";
+      sha256 = "07795kv9njlnp6mckwv141ny2ns6wyf5r0dfjaxh9ngd105zgif1";
+    };
+    meta.homepage = "https://github.com/alexherbo2/auto-pairs.kak/";
+  };
+
+  connect-kak = buildKakounePluginFrom2Nix {
+    pname = "connect-kak";
+    version = "2020-11-25";
+    src = fetchFromGitHub {
+      owner = "alexherbo2";
+      repo = "connect.kak";
+      rev = "56fc2476e8cf126fb16654f4a08582f4f76b0d3d";
+      sha256 = "1qzb0rdwyx00b7wc7rlmc7rcgj3vd57jgcbdy56ic3dr8j70mv6v";
+    };
+    meta.homepage = "https://github.com/alexherbo2/connect.kak/";
+  };
+
+  fzf-kak = buildKakounePluginFrom2Nix {
+    pname = "fzf-kak";
+    version = "2020-07-26";
+    src = fetchFromGitHub {
+      owner = "andreyorst";
+      repo = "fzf.kak";
+      rev = "f23daa698ad95493fbd675ae153e3cac13ef34e9";
+      sha256 = "0q19ynjixy0wx9ygwj26bdm6ilkd820gy21kid73imgvkm6cgx85";
+    };
+    meta.homepage = "https://github.com/andreyorst/fzf.kak/";
+  };
+
+  kakoune-buffer-switcher = buildKakounePluginFrom2Nix {
+    pname = "kakoune-buffer-switcher";
+    version = "2020-12-27";
+    src = fetchFromGitHub {
+      owner = "occivink";
+      repo = "kakoune-buffer-switcher";
+      rev = "6a27c45db87a23070c34fab36d2f8d812cd002a6";
+      sha256 = "1rmwy317908v8p54806m721bpzm8sgygb9abri34537ka6r05y5j";
+    };
+    meta.homepage = "https://github.com/occivink/kakoune-buffer-switcher/";
+  };
+
+  kakoune-buffers = buildKakounePluginFrom2Nix {
+    pname = "kakoune-buffers";
+    version = "2020-06-11";
+    src = fetchFromGitHub {
+      owner = "Delapouite";
+      repo = "kakoune-buffers";
+      rev = "67959fbad727ba8470fe8cd6361169560f4fb532";
+      sha256 = "09prhzz4yzf6ryw0npd1gpcfp77681vgawpp1ilfvbf25xgbbz33";
+    };
+    meta.homepage = "https://github.com/Delapouite/kakoune-buffers/";
+  };
+
+  kakoune-easymotion = buildKakounePluginFrom2Nix {
+    pname = "kakoune-easymotion";
+    version = "2020-03-09";
+    src = fetchFromGitHub {
+      owner = "danr";
+      repo = "kakoune-easymotion";
+      rev = "0ca75450023a149efc70e8e383e459b571355c70";
+      sha256 = "15czvl0qj2k767pysr6xk2v31mkhvcbmv76xs2a8yrslchms70b5";
+    };
+    meta.homepage = "https://github.com/danr/kakoune-easymotion/";
+  };
+
+  kakoune-extra-filetypes = buildKakounePluginFrom2Nix {
+    pname = "kakoune-extra-filetypes";
+    version = "2020-12-08";
+    src = fetchFromGitHub {
+      owner = "kakoune-editor";
+      repo = "kakoune-extra-filetypes";
+      rev = "9cbd83b91e0a584bdf24e999f828c60dc6365b25";
+      sha256 = "12yg6k63ka8d24vn4vk7wdnxmglcd4b0yq98sghkzwg5jbp1x7vn";
+    };
+    meta.homepage = "https://github.com/kakoune-editor/kakoune-extra-filetypes/";
+  };
+
+  kakoune-rainbow = buildKakounePluginFrom2Nix {
+    pname = "kakoune-rainbow";
+    version = "2020-09-01";
+    src = fetchFromGitHub {
+      owner = "listentolist";
+      repo = "kakoune-rainbow";
+      rev = "d09103e8d268cf4621215bf162a0244c9482be3c";
+      sha256 = "1i3id7xw0j4z1a14mscr68ckpgvcwsjpl86lr864wy7w7qcmblx6";
+    };
+    meta.homepage = "https://github.com/listentolist/kakoune-rainbow/";
+  };
+
+  kakoune-registers = buildKakounePluginFrom2Nix {
+    pname = "kakoune-registers";
+    version = "2020-06-19";
+    src = fetchFromGitHub {
+      owner = "Delapouite";
+      repo = "kakoune-registers";
+      rev = "9531947baecd83c1d4c3bea0adf10f4462f1e120";
+      sha256 = "08v9ndghh7wvr8rsrqm05gksk9ai5vnwvw9gwqasbppb48cv4a8c";
+    };
+    meta.homepage = "https://github.com/Delapouite/kakoune-registers/";
+  };
+
+  kakoune-vertical-selection = buildKakounePluginFrom2Nix {
+    pname = "kakoune-vertical-selection";
+    version = "2019-04-11";
+    src = fetchFromGitHub {
+      owner = "occivink";
+      repo = "kakoune-vertical-selection";
+      rev = "c420f8b867ce47375fac303886e31623669a42b7";
+      sha256 = "13jdyd2j45wvgqvxdzw9zww14ly93bqjb6700zzxj7mkbiff6wsb";
+    };
+    meta.homepage = "https://github.com/occivink/kakoune-vertical-selection/";
+  };
+
+  openscad-kak = buildKakounePluginFrom2Nix {
+    pname = "openscad-kak";
+    version = "2020-12-10";
+    src = fetchFromGitHub {
+      owner = "mayjs";
+      repo = "openscad.kak";
+      rev = "ba51bbdcd96ccf94bb9239bef1481b6f37125849";
+      sha256 = "15dybd6dnnwla6mj8sw83nwd62para1syxzifznl6rz6kp8vqjjj";
+    };
+    meta.homepage = "https://github.com/mayjs/openscad.kak/";
+  };
+
+  powerline-kak = buildKakounePluginFrom2Nix {
+    pname = "powerline-kak";
+    version = "2020-11-28";
+    src = fetchFromGitHub {
+      owner = "jdugan6240";
+      repo = "powerline.kak";
+      rev = "1426af690048ec9c1599d18725758bb954d465d6";
+      sha256 = "1ycg5376rmglkiiz184r8kyjljvfnay8g208fs8b85ilg5xhkrk5";
+    };
+    meta.homepage = "https://github.com/jdugan6240/powerline.kak/";
+  };
+
+  prelude-kak = buildKakounePluginFrom2Nix {
+    pname = "prelude-kak";
+    version = "2020-09-06";
+    src = fetchFromGitHub {
+      owner = "alexherbo2";
+      repo = "prelude.kak";
+      rev = "f1e0f4d5cb62a36924e3f8ba6824d6aed8c19d23";
+      sha256 = "1pncr8azqvl2z9yvzhc68p1s9fld8cvak8yz88zgrp5ypx2cxl8c";
+    };
+    meta.homepage = "https://github.com/alexherbo2/prelude.kak/";
+  };
+
+  replace-mode-kak = buildKakounePluginFrom2Nix {
+    pname = "replace-mode-kak";
+    version = "2020-10-07";
+    src = fetchFromGitHub {
+      owner = "alexherbo2";
+      repo = "replace-mode.kak";
+      rev = "5f4c73cdbaf5aeb964ee35ad4b9081b233af90c0";
+      sha256 = "1cmylx99bm7jwfb4hclb69sdc4n8f29ssyy2byjiw53ni9rnc8q0";
+    };
+    meta.homepage = "https://github.com/alexherbo2/replace-mode.kak/";
+  };
+
+  sleuth-kak = buildKakounePluginFrom2Nix {
+    pname = "sleuth-kak";
+    version = "2020-11-06";
+    src = fetchFromGitHub {
+      owner = "alexherbo2";
+      repo = "sleuth.kak";
+      rev = "911db8bd208ad0d289b8fa15a2ac665ff39bd6bd";
+      sha256 = "0g41c0038fpmihqva71xl4vfbmvsp13i47gp6fnmaikajpynzc51";
+    };
+    meta.homepage = "https://github.com/alexherbo2/sleuth.kak/";
+  };
+
+  tabs-kak = buildKakounePluginFrom2Nix {
+    pname = "tabs-kak";
+    version = "2020-12-27";
+    src = fetchFromGitHub {
+      owner = "enricozb";
+      repo = "tabs.kak";
+      rev = "2775ab7a1fe3bb850c1de3bcc4111e3d4c24f5d4";
+      sha256 = "1vyg1dgbrrsh4vj5lllp9lhslv6gip4v6vmym4lg5mnqmd82jji1";
+    };
+    meta.homepage = "https://github.com/enricozb/tabs.kak/";
+  };
+
+});
+in lib.fix' (lib.extends overrides packages)
diff --git a/pkgs/applications/editors/kakoune/plugins/kak-ansi.nix b/pkgs/applications/editors/kakoune/plugins/kak-ansi.nix
deleted file mode 100644
index f34ee6d2999..00000000000
--- a/pkgs/applications/editors/kakoune/plugins/kak-ansi.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ lib, stdenv, fetchFromGitHub }:
-
-stdenv.mkDerivation rec {
-  name = "kak-ansi";
-  version = "0.2.1";
-
-  src = fetchFromGitHub {
-    owner = "eraserhd";
-    repo = "kak-ansi";
-    rev = "v${version}";
-    sha256 = "0ddjih8hfyf6s4g7y46p1355kklaw1ydzzh61141i0r45wyb2d0d";
-  };
-
-  installPhase = ''
-    mkdir -p $out/bin $out/share/kak/autoload/plugins/
-    cp kak-ansi-filter $out/bin/
-    # Hard-code path of filter and don't try to build when Kakoune boots
-    sed '
-      /^declare-option.* ansi_filter /i\
-declare-option -hidden str ansi_filter %{'"$out"'/bin/kak-ansi-filter}
-      /^declare-option.* ansi_filter /,/^}/d
-    ' rc/ansi.kak >$out/share/kak/autoload/plugins/ansi.kak
-  '';
-
-  meta = with lib; {
-    description = "Kakoune support for rendering ANSI code";
-    homepage = "https://github.com/eraserhd/kak-ansi";
-    license = licenses.unlicense;
-    maintainers = with maintainers; [ eraserhd ];
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/applications/editors/kakoune/plugins/kak-auto-pairs.nix b/pkgs/applications/editors/kakoune/plugins/kak-auto-pairs.nix
deleted file mode 100644
index 36842f999a5..00000000000
--- a/pkgs/applications/editors/kakoune/plugins/kak-auto-pairs.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ lib, stdenv, fetchFromGitHub }:
-stdenv.mkDerivation {
-  name = "kak-auto-pairs";
-  version = "2020-07-14";
-  src = fetchFromGitHub {
-    owner = "alexherbo2";
-    repo = "auto-pairs.kak";
-    rev = "5b4b3b723c34c8b7f40cee60868204974349bf9f";
-    sha256 = "1wgrv03f1lkzflbbaz8n23glij5rvfxf8pcqysd668mbx1hcrk9i";
-  };
-
-  installPhase = ''
-    mkdir -p $out/share/kak/autoload/plugins
-    cp -r rc $out/share/kak/autoload/plugins/auto-pairs
-  '';
-
-  meta = with lib;
-  { description = "Kakoune extension to enable automatic closing of pairs";
-    homepage = "https://github.com/alexherbo2/auto-pairs.kak";
-    license = licenses.unlicense;
-    maintainers = with maintainers; [ nrdxp ];
-    platform = platforms.all;
-  };
-}
diff --git a/pkgs/applications/editors/kakoune/plugins/kak-buffers.nix b/pkgs/applications/editors/kakoune/plugins/kak-buffers.nix
deleted file mode 100644
index 7075ae3ef0a..00000000000
--- a/pkgs/applications/editors/kakoune/plugins/kak-buffers.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, fetchFromGitHub, lib }:
-stdenv.mkDerivation {
-  name = "kak-buffers";
-  version = "2019-04-03";
-  src = fetchFromGitHub {
-    owner = "Delapouite";
-    repo = "kakoune-buffers";
-    rev = "3b35b23ac2be661a37c085d34dd04d066450f757";
-    sha256 = "0f3g0v1sjinii3ig9753jjj35v2km4h9bcfw9xgzwz8b10d75bax";
-  };
-
-  installPhase = ''
-    mkdir -p $out/share/kak/autoload/plugins
-    cp -r buffers.kak $out/share/kak/autoload/plugins
-  '';
-
-  meta = with lib;
-  { description = "Ease navigation between opened buffers in Kakoune";
-    homepage = "https://github.com/Delapouite/kakoune-buffers";
-    license = licenses.mit;
-    maintainers = with maintainers; [ nrdxp ];
-    platform = platforms.all;
-  };
-}
diff --git a/pkgs/applications/editors/kakoune/plugins/kak-fzf.nix b/pkgs/applications/editors/kakoune/plugins/kak-fzf.nix
deleted file mode 100644
index b52584b4456..00000000000
--- a/pkgs/applications/editors/kakoune/plugins/kak-fzf.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, fzf }:
-
-assert lib.asserts.assertOneOf "fzf" fzf.pname [ "fzf" "skim" ];
-
-stdenv.mkDerivation {
-  name = "kak-fzf";
-  version = "2020-07-26";
-
-  src = fetchFromGitHub {
-    owner = "andreyorst";
-    repo = "fzf.kak";
-    rev = "f23daa698ad95493fbd675ae153e3cac13ef34e9";
-    hash = "sha256-BfXHTJ371ThOizMI/4BAbdJoaltGSP586hz4HqX1KWA=";
-  };
-
-  configurePhase = ''
-    if [[ -x "${fzf}/bin/fzf" ]]; then
-      fzfImpl='${fzf}/bin/fzf'
-    else
-      fzfImpl='${fzf}/bin/sk'
-    fi
-
-    substituteInPlace rc/fzf.kak \
-      --replace \'fzf\' \'"$fzfImpl"\'
-  '';
-
-  installPhase = ''
-    mkdir -p $out/share/kak/autoload/plugins
-    cp -r rc $out/share/kak/autoload/plugins/fzf
-  '';
-
-  meta = with lib;
-  { description = "Kakoune plugin that brings integration with fzf";
-    homepage = "https://github.com/andreyorst/fzf.kak";
-    license = licenses.mit;
-    maintainers = with maintainers; [ nrdxp ];
-    platform = platforms.all;
-  };
-}
diff --git a/pkgs/applications/editors/kakoune/plugins/kak-plumb.nix b/pkgs/applications/editors/kakoune/plugins/kak-plumb.nix
deleted file mode 100644
index 0c59ca9a08f..00000000000
--- a/pkgs/applications/editors/kakoune/plugins/kak-plumb.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, kakoune-unwrapped, plan9port, ... }:
-
-stdenv.mkDerivation rec {
-  pname = "kak-plumb";
-  version = "0.1.1";
-
-  src = fetchFromGitHub {
-    owner = "eraserhd";
-    repo = "kak-plumb";
-    rev = "v${version}";
-    sha256 = "1rz6pr786slnf1a78m3sj09axr4d2lb5rg7sfa4mfg1zcjh06ps6";
-  };
-
-  installPhase = ''
-    mkdir -p $out/bin $out/share/kak/autoload/plugins/
-    substitute rc/plumb.kak $out/share/kak/autoload/plugins/plumb.kak \
-      --replace '9 plumb' '${plan9port}/bin/9 plumb'
-    substitute edit-client $out/bin/edit-client \
-      --replace '9 9p' '${plan9port}/bin/9 9p' \
-      --replace 'kak -p' '${kakoune-unwrapped}/bin/kak -p'
-    chmod +x $out/bin/edit-client
-  '';
-
-  meta = with lib; {
-    description = "Kakoune integration with the Plan 9 plumber";
-    homepage = "https://github.com/eraserhd/kak-plumb";
-    license = licenses.unlicense;
-    maintainers = with maintainers; [ eraserhd ];
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/applications/editors/kakoune/plugins/kak-powerline.nix b/pkgs/applications/editors/kakoune/plugins/kak-powerline.nix
deleted file mode 100644
index 318ae2958b6..00000000000
--- a/pkgs/applications/editors/kakoune/plugins/kak-powerline.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ stdenv, git, fetchFromGitHub, lib }:
-stdenv.mkDerivation {
-  name = "kak-powerline";
-  version = "2020-08-22";
-  src = fetchFromGitHub {
-    owner = "jdugan6240";
-    repo = "powerline.kak";
-    rev = "d641b2cd8024f872bcda23f9256e7aff36da02ae";
-    sha256 = "65948f5ef3ab2f46f6d186ad752665c251d887631d439949decc2654a67958a4";
-  };
-
-  configurePhase = ''
-    substituteInPlace rc/modules/git.kak \
-      --replace \'git\' \'${git}/bin/git\'
-  '';
-
-  installPhase = ''
-    mkdir -p $out/share/kak/autoload/plugins
-    cp -r rc $out/share/kak/autoload/plugins/powerline
-  '';
-
-  meta = with lib;
-  { description = "Kakoune modeline, but with passion";
-    homepage = "https://github.com/jdugan6240/powerline.kak";
-    license = licenses.mit;
-    maintainers = with maintainers; [ nrdxp ];
-    platform = platforms.all;
-  };
-}
diff --git a/pkgs/applications/editors/kakoune/plugins/kak-prelude.nix b/pkgs/applications/editors/kakoune/plugins/kak-prelude.nix
deleted file mode 100644
index e6f06f4b8e6..00000000000
--- a/pkgs/applications/editors/kakoune/plugins/kak-prelude.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ lib, stdenv, fetchFromGitHub }:
-stdenv.mkDerivation {
-  name = "kak-prelude";
-  version = "2020-06-09";
-
-  src = fetchFromGitHub {
-    owner = "alexherbo2";
-    repo = "prelude.kak";
-    rev = "f1e0f4d5cb62a36924e3f8ba6824d6aed8c19d23";
-    sha256 = "1pncr8azqvl2z9yvzhc68p1s9fld8cvak8yz88zgrp5ypx2cxl8c";
-  };
-
-  installPhase = ''
-    mkdir -p $out/share/kak/autoload/plugins
-    cp -r rc $out/share/kak/autoload/plugins/prelude
-  '';
-
-  meta = with lib;
-  { description = "Prelude of shell blocks for Kakoune.";
-    homepage = "https://github.com/alexherbo2/prelude.kak";
-    license = licenses.unlicense;
-    maintainers = with maintainers; [ buffet ];
-    platform = platforms.all;
-  };
-}
diff --git a/pkgs/applications/editors/kakoune/plugins/kak-vertical-selection.nix b/pkgs/applications/editors/kakoune/plugins/kak-vertical-selection.nix
deleted file mode 100644
index 2ef9d44854f..00000000000
--- a/pkgs/applications/editors/kakoune/plugins/kak-vertical-selection.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, fetchFromGitHub, lib }:
-stdenv.mkDerivation {
-  name = "kak-vertical-selection";
-  version = "2019-04-11";
-  src = fetchFromGitHub {
-    owner = "occivink";
-    repo = "kakoune-vertical-selection";
-    rev = "c420f8b867ce47375fac303886e31623669a42b7";
-    sha256 = "13jdyd2j45wvgqvxdzw9zww14ly93bqjb6700zzxj7mkbiff6wsb";
-  };
-
-  installPhase = ''
-    mkdir -p $out/share/kak/autoload/plugins
-    cp -r vertical-selection.kak $out/share/kak/autoload/plugins
-  '';
-
-  meta = with lib;
-  { description = "Select up and down lines that match the same pattern in Kakoune";
-    homepage = "https://github.com/occivink/kakoune-vertical-selection";
-    license = licenses.unlicense;
-    maintainers = with maintainers; [ nrdxp ];
-    platform = platforms.all;
-  };
-}
diff --git a/pkgs/applications/editors/kakoune/plugins/kakoune-plugin-names b/pkgs/applications/editors/kakoune/plugins/kakoune-plugin-names
new file mode 100644
index 00000000000..6cd856cb6c2
--- /dev/null
+++ b/pkgs/applications/editors/kakoune/plugins/kakoune-plugin-names
@@ -0,0 +1,17 @@
+alexherbo2/auto-pairs.kak
+alexherbo2/connect.kak
+alexherbo2/prelude.kak
+alexherbo2/replace-mode.kak
+alexherbo2/sleuth.kak
+andreyorst/fzf.kak
+danr/kakoune-easymotion
+Delapouite/kakoune-buffers
+Delapouite/kakoune-registers
+enricozb/tabs.kak@main
+greenfork/active-window.kak
+jdugan6240/powerline.kak
+kakoune-editor/kakoune-extra-filetypes
+listentolist/kakoune-rainbow
+mayjs/openscad.kak
+occivink/kakoune-buffer-switcher
+occivink/kakoune-vertical-selection
diff --git a/pkgs/applications/editors/kakoune/plugins/openscad.kak.nix b/pkgs/applications/editors/kakoune/plugins/openscad.kak.nix
deleted file mode 100644
index 57c1033ebbd..00000000000
--- a/pkgs/applications/editors/kakoune/plugins/openscad.kak.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ lib, stdenv, fetchFromGitHub }:
-
-stdenv.mkDerivation {
-  pname = "openscad.kak";
-  version = "unstable-2019-11-08";
-
-  src = fetchFromGitHub {
-    owner = "mayjs";
-    repo = "openscad.kak";
-    rev = "d9143d5e7834e3356b49720664d5647cab9db7cc";
-    sha256 = "0j4dqhrn56z77hdalfdxagwz8h6nwr8s9i4w0bs2644k72lsm2ix";
-  };
-
-  installPhase = ''
-    install -Dm644 rc/openscad.kak -t $out/share/kak/autoload/plugins/
-  '';
-
-  meta = with lib; {
-    description = "Syntax highlighting for OpenSCAD files";
-    homepage = "https://github.com/mayjs/openscad.kak";
-    license = licenses.unlicense;
-    maintainers = with maintainers; [ eraserhd ];
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/applications/editors/kakoune/plugins/overrides.nix b/pkgs/applications/editors/kakoune/plugins/overrides.nix
new file mode 100644
index 00000000000..d75dcc9ac90
--- /dev/null
+++ b/pkgs/applications/editors/kakoune/plugins/overrides.nix
@@ -0,0 +1,161 @@
+{ lib, stdenv, fetchFromGitHub, fetchFromGitLab, fetchgit
+, buildKakounePluginFrom2Nix
+, kak-lsp, parinfer-rust, rep
+, fzf, git, guile, kakoune-unwrapped, lua5_3, plan9port
+}:
+
+self: super: {
+  inherit kak-lsp parinfer-rust rep;
+
+  case-kak = buildKakounePluginFrom2Nix {
+    pname = "case-kak";
+    version = "2020-04-06";
+    src = fetchFromGitLab {
+      owner = "FlyingWombat";
+      repo = "case.kak";
+      rev = "6f1511820aa3abfa118e0f856118adc8113e2185";
+      sha256 = "002njrlwgakqgp74wivbppr9qyn57dn4n5bxkr6k6nglk9qndwdp";
+    };
+    meta.homepage = "https://gitlab.com/FlyingWombat/case.kak";
+  };
+
+  fzf-kak = super.fzf-kak.overrideAttrs(oldAttrs: rec {
+    preFixup = ''
+      if [[ -x "${fzf}/bin/fzf" ]]; then
+        fzfImpl='${fzf}/bin/fzf'
+      else
+        fzfImpl='${fzf}/bin/sk'
+      fi
+
+      substituteInPlace $out/share/kak/autoload/plugins/fzf-kak/rc/fzf.kak \
+        --replace \'fzf\' \'"$fzfImpl"\'
+    '';
+  });
+
+  kak-ansi = stdenv.mkDerivation rec {
+    pname = "kak-ansi";
+    version = "0.2.1";
+
+    src = fetchFromGitHub {
+      owner = "eraserhd";
+      repo = "kak-ansi";
+      rev = "v${version}";
+      sha256 = "0ddjih8hfyf6s4g7y46p1355kklaw1ydzzh61141i0r45wyb2d0d";
+    };
+
+    installPhase = ''
+      mkdir -p $out/bin $out/share/kak/autoload/plugins/
+      cp kak-ansi-filter $out/bin/
+      # Hard-code path of filter and don't try to build when Kakoune boots
+      sed '
+        /^declare-option.* ansi_filter /i\
+declare-option -hidden str ansi_filter %{'"$out"'/bin/kak-ansi-filter}
+        /^declare-option.* ansi_filter /,/^}/d
+      ' rc/ansi.kak >$out/share/kak/autoload/plugins/ansi.kak
+    '';
+
+    meta = with lib; {
+      description = "Kakoune support for rendering ANSI code";
+      homepage = "https://github.com/eraserhd/kak-ansi";
+      license = licenses.unlicense;
+      maintainers = with maintainers; [ eraserhd ];
+      platforms = platforms.all;
+    };
+  };
+
+  kak-plumb = stdenv.mkDerivation rec {
+    pname = "kak-plumb";
+    version = "0.1.1";
+
+    src = fetchFromGitHub {
+      owner = "eraserhd";
+      repo = "kak-plumb";
+      rev = "v${version}";
+      sha256 = "1rz6pr786slnf1a78m3sj09axr4d2lb5rg7sfa4mfg1zcjh06ps6";
+    };
+
+    installPhase = ''
+      mkdir -p $out/bin $out/share/kak/autoload/plugins/
+      substitute rc/plumb.kak $out/share/kak/autoload/plugins/plumb.kak \
+        --replace '9 plumb' '${plan9port}/bin/9 plumb'
+      substitute edit-client $out/bin/edit-client \
+        --replace '9 9p' '${plan9port}/bin/9 9p' \
+        --replace 'kak -p' '${kakoune-unwrapped}/bin/kak -p'
+      chmod +x $out/bin/edit-client
+    '';
+
+    meta = with lib; {
+      description = "Kakoune integration with the Plan 9 plumber";
+      homepage = "https://github.com/eraserhd/kak-plumb";
+      license = licenses.unlicense;
+      maintainers = with maintainers; [ eraserhd ];
+      platforms = platforms.all;
+    };
+  };
+
+  kakoune-rainbow = super.kakoune-rainbow.overrideAttrs(oldAttrs: rec {
+    preFixup = ''
+      mkdir -p $out/bin
+      mv $out/share/kak/autoload/plugins/kakoune-rainbow/bin/kak-rainbow.scm $out/bin
+      substituteInPlace $out/bin/kak-rainbow.scm \
+        --replace '/usr/bin/env -S guile' '${guile}/bin/guile'
+      substituteInPlace $out/share/kak/autoload/plugins/kakoune-rainbow/rainbow.kak \
+        --replace '%sh{dirname "$kak_source"}' "'$out'"
+    '';
+  });
+
+  kakoune-state-save = buildKakounePluginFrom2Nix {
+    pname = "kakoune-state-save";
+    version = "2020-02-09";
+
+    src = fetchFromGitLab {
+      owner = "Screwtapello";
+      repo = "kakoune-state-save";
+      rev = "ab7c0c765326a4a80af78857469ee8c80814c52a";
+      sha256 = "AAOCG0TY3G188NnkkwMCSbkkNe487F4gwiFWwG9Yo+A=";
+    };
+
+    meta = with lib; {
+      description = "Help Kakoune save and restore state between sessions";
+      homepage = "https://gitlab.com/Screwtapello/kakoune-state-save";
+      license = licenses.mit;
+      maintainers = with maintainers; [ Flakebi ];
+      platforms = platforms.all;
+    };
+  };
+
+  powerline-kak = super.powerline-kak.overrideAttrs(oldAttrs: rec {
+    preFixup = ''
+      substituteInPlace $out/share/kak/autoload/plugins/powerline-kak/rc/modules/git.kak \
+        --replace ' git ' ' ${git}/bin/git '
+    '';
+  });
+
+  quickscope-kak = buildKakounePluginFrom2Nix rec {
+    pname = "quickscope-kak";
+    version = "1.0.0";
+
+    src = fetchgit {
+      url = "https://git.sr.ht/~voroskoi/quickscope.kak";
+      rev = "v${version}";
+      sha256 = "0y1g3zpa2ql8l9rl5i2w84bka8a09kig9nq9zdchaff5pw660mcx";
+    };
+
+    buildInputs = [ lua5_3 ];
+
+    installPhase = ''
+      mkdir -p $out/share/kak/autoload/plugins/
+      cp quickscope.* $out/share/kak/autoload/plugins/
+      # substituteInPlace does not like the pipe
+      sed -e 's,[|] *lua,|${lua5_3}/bin/lua,' quickscope.kak >$out/share/kak/autoload/plugins/quickscope.kak
+    '';
+
+    meta = with lib; {
+      description = "Highlight f and t jump positions";
+      homepage = "https://sr.ht/~voroskoi/quickscope.kak/";
+      license = licenses.unlicense;
+      maintainers = with maintainers; [ eraserhd ];
+      platforms = platforms.all;
+    };
+  };
+}
diff --git a/pkgs/applications/editors/kakoune/plugins/quickscope.kak.nix b/pkgs/applications/editors/kakoune/plugins/quickscope.kak.nix
deleted file mode 100644
index 8e60e17e792..00000000000
--- a/pkgs/applications/editors/kakoune/plugins/quickscope.kak.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ lib, stdenv, fetchgit, lua5_3 }:
-
-stdenv.mkDerivation rec {
-  pname = "quickscope-kak";
-  version = "1.0.0";
-
-  src = fetchgit {
-    url = "https://git.sr.ht/~voroskoi/quickscope.kak";
-    rev = "v${version}";
-    sha256 = "0y1g3zpa2ql8l9rl5i2w84bka8a09kig9nq9zdchaff5pw660mcx";
-  };
-
-  buildInputs = [ lua5_3 ];
-
-  installPhase = ''
-    mkdir -p $out/share/kak/autoload/plugins/
-    cp quickscope.* $out/share/kak/autoload/plugins/
-    # substituteInPlace does not like the pipe
-    sed -e 's,[|] *lua,|${lua5_3}/bin/lua,' quickscope.kak >$out/share/kak/autoload/plugins/quickscope.kak
-  '';
-
-  meta = with lib; {
-    description = "Highlight f and t jump positions";
-    homepage = "https://sr.ht/~voroskoi/quickscope.kak/";
-    license = licenses.unlicense;
-    maintainers = with maintainers; [ eraserhd ];
-    platforms = platforms.all;
-  };
-}