about summary refs log tree commit diff
path: root/pkgs/misc
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/misc')
-rw-r--r--pkgs/misc/cups/drivers/canon/default.nix329
-rw-r--r--pkgs/misc/cups/drivers/canon/preload.c81
-rw-r--r--pkgs/misc/drivers/epson-201401w/default.nix67
-rw-r--r--pkgs/misc/drivers/epson-201401w/fixbuild.patch101
-rw-r--r--pkgs/misc/drivers/hplip/3.16.11.nix192
-rw-r--r--pkgs/misc/emulators/cdemu/analyzer.nix2
-rw-r--r--pkgs/misc/emulators/cdemu/base.nix11
-rw-r--r--pkgs/misc/emulators/cdemu/client.nix2
-rw-r--r--pkgs/misc/emulators/cdemu/daemon.nix2
-rw-r--r--pkgs/misc/emulators/cdemu/gui.nix2
-rw-r--r--pkgs/misc/emulators/cdemu/libmirage.nix2
-rw-r--r--pkgs/misc/emulators/fceux/default.nix4
-rw-r--r--pkgs/misc/emulators/resim/default.nix3
-rw-r--r--pkgs/misc/emulators/retroarch/cores.nix30
-rw-r--r--pkgs/misc/emulators/retroarch/default.nix46
-rw-r--r--pkgs/misc/emulators/retroarch/hashes.json333
-rwxr-xr-xpkgs/misc/emulators/retroarch/update.py22
-rw-r--r--pkgs/misc/emulators/retroarch/wrapper.nix8
-rw-r--r--pkgs/misc/emulators/retrofe/default.nix4
-rw-r--r--pkgs/misc/emulators/ryujinx/default.nix8
-rw-r--r--pkgs/misc/emulators/wine/cert-path-6.21.patch15
-rw-r--r--pkgs/misc/emulators/wine/cert-path.patch14
-rw-r--r--pkgs/misc/emulators/wine/sources.nix32
-rw-r--r--pkgs/misc/emulators/wine/winetricks.nix3
-rw-r--r--pkgs/misc/emulators/wxmupen64plus/default.nix4
-rw-r--r--pkgs/misc/emulators/yuzu/default.nix4
-rw-r--r--pkgs/misc/gnuk/generic.nix4
-rw-r--r--pkgs/misc/jitsi-meet-prosody/default.nix4
-rw-r--r--pkgs/misc/opensbi/default.nix40
-rw-r--r--pkgs/misc/screensavers/alock/default.nix4
-rw-r--r--pkgs/misc/screensavers/xssproxy/default.nix9
-rw-r--r--pkgs/misc/screensavers/xtrlock-pam/default.nix4
-rw-r--r--pkgs/misc/uboot/default.nix7
-rw-r--r--pkgs/misc/vim-plugins/generated.nix1020
-rw-r--r--pkgs/misc/vim-plugins/overrides.nix12
-rwxr-xr-xpkgs/misc/vim-plugins/update.py27
-rw-r--r--pkgs/misc/vim-plugins/vim-plugin-names14
-rw-r--r--pkgs/misc/vscode-extensions/default.nix98
-rw-r--r--pkgs/misc/vscode-extensions/language-packs.nix89
-rw-r--r--pkgs/misc/vscode-extensions/terraform/default.nix4
-rw-r--r--pkgs/misc/vscode-extensions/vscode-utils.nix4
41 files changed, 1406 insertions, 1255 deletions
diff --git a/pkgs/misc/cups/drivers/canon/default.nix b/pkgs/misc/cups/drivers/canon/default.nix
index 93bc1f79e2503..5a01a0295a8ac 100644
--- a/pkgs/misc/cups/drivers/canon/default.nix
+++ b/pkgs/misc/cups/drivers/canon/default.nix
@@ -1,13 +1,28 @@
 { lib
 , stdenv
+, stdenv_32bit
 , fetchurl
 , unzip
 , autoconf
 , automake
-, libtool
+, libtool_1_5
 , makeWrapper
 , cups
+, jbigkit
+, glib
+, gtk3
+, gdk-pixbuf
+, pango
+, cairo
+, coreutils
+, atk
+, pkg-config
+, gnome2
+, libxml2
+, runtimeShell
+, proot
 , ghostscript
+, pkgs
 , pkgsi686Linux
 , zlib
 }:
@@ -15,211 +30,175 @@
 let
 
   i686_NIX_GCC = pkgsi686Linux.callPackage ({ gcc }: gcc) { };
-  i686_libxml2 = pkgsi686Linux.callPackage ({ libxml2 }: libxml2) { };
+  ld32 =
+    if stdenv.hostPlatform.system == "x86_64-linux" then "${stdenv.cc}/nix-support/dynamic-linker-m32"
+    else if stdenv.hostPlatform.system == "i686-linux" then "${stdenv.cc}/nix-support/dynamic-linker"
+    else throw "Unsupported platform for Canon UFR2 Drivers: ${stdenv.hostPlatform.system}";
+  ld64 = "${stdenv.cc}/nix-support/dynamic-linker";
+  libs = pkgs: lib.makeLibraryPath buildInputs;
 
-  commonVer = "4.10";
-  version = "3.70";
-  dl = "4/0100010264/01";
+  version = "5.40";
+  dl = "6/0100009236/10";
 
   versionNoDots = builtins.replaceStrings [ "." ] [ "" ] version;
   src_canon = fetchurl {
-    url = "http://gdlp01.c-wss.com/gds/${dl}/linux-UFRII-drv-v${versionNoDots}-uken-07.tar.gz";
-    sha256 = "01nxpg3h1c64p5skxv904fg5c4sblmif486vkij2v62wwn6l65pz";
+    url = "http://gdlp01.c-wss.com/gds/${dl}/linux-UFRII-drv-v${versionNoDots}-usen-20.tar.gz";
+    sha256 = "sha256:069z6ijmql62mcdyxnzc9mf0dxa6z1107cd0ab4i1adk8kr3d75k";
   };
 
+  buildInputs = [ cups zlib jbigkit glib gtk3 pkg-config gnome2.libglade libxml2 gdk-pixbuf pango cairo atk ];
+
 in
 
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "canon-cups-ufr2";
   inherit version;
   src = src_canon;
 
   postUnpack = ''
-    (cd $sourceRoot; tar -xzf Sources/cndrvcups-common-${commonVer}-1.tar.gz)
-    (cd $sourceRoot; tar -xzf Sources/cndrvcups-lb-${version}-1.tar.gz)
+    (cd $sourceRoot; tar -xzf Sources/cnrdrvcups-lb-${version}-1.tar.gz)
+    (cd $sourceRoot; sed -ie "s@_prefix=/usr@_prefix=$out@" cnrdrvcups-common-${version}/allgen.sh)
+    (cd $sourceRoot; sed -ie "s@_libdir=/usr/lib@_libdir=$out/lib@" cnrdrvcups-common-${version}/allgen.sh)
+    (cd $sourceRoot; sed -ie "s@_bindir=/usr/bin@_libdir=$out/bin@" cnrdrvcups-common-${version}/allgen.sh)
+    (cd $sourceRoot; sed -ie "s@etc/cngplp@$out/etc/cngplp@" cnrdrvcups-common-${version}/cngplp/Makefile.am)
+    (cd $sourceRoot; sed -ie "s@usr/share/cngplp@$out/usr/share/cngplp@" cnrdrvcups-common-${version}/cngplp/src/Makefile.am)
+    (cd $sourceRoot; patchShebangs cnrdrvcups-common-${version})
+
+    (cd $sourceRoot; sed -ie "s@_prefix=/usr@_prefix=$out@" cnrdrvcups-lb-${version}/allgen.sh)
+    (cd $sourceRoot; sed -ie "s@_libdir=/usr/lib@_libdir=$out/lib@" cnrdrvcups-lb-${version}/allgen.sh)
+    (cd $sourceRoot; sed -ie "s@_bindir=/usr/bin@_libdir=$out/bin@" cnrdrvcups-lb-${version}/allgen.sh)
+    (cd $sourceRoot; sed -ie '/^cd \.\.\/cngplp/,/^cd files/{/^cd files/!{d}}' cnrdrvcups-lb-${version}/allgen.sh)
+    (cd $sourceRoot; sed -ie "s@cd \.\./pdftocpca@cd pdftocpca@" cnrdrvcups-lb-${version}/allgen.sh)
+    (cd $sourceRoot; sed -i "/CNGPLPDIR/d" cnrdrvcups-lb-${version}/Makefile)
+    (cd $sourceRoot; patchShebangs cnrdrvcups-lb-${version})
   '';
 
-  nativeBuildInputs = [ makeWrapper unzip autoconf automake libtool ];
+  nativeBuildInputs = [ makeWrapper unzip autoconf automake libtool_1_5 ];
 
-  buildInputs = [ cups zlib ];
+  inherit buildInputs;
 
   installPhase = ''
     runHook preInstall
 
-    ##
-    ## cndrvcups-common buildPhase
-    ##
-    ( cd cndrvcups-common-${commonVer}/buftool
-      autoreconf -fi
-      ./autogen.sh --prefix=$out --enable-progpath=$out/bin --libdir=$out/lib --disable-shared --enable-static
-      make
-    )
-
-    ( cd cndrvcups-common-${commonVer}/backend
-      ./autogen.sh --prefix=$out --libdir=$out/lib
-      make
-    )
-
-    ( cd cndrvcups-common-${commonVer}/c3plmod_ipc
-      make
-    )
-
-    ##
-    ## cndrvcups-common installPhase
-    ##
-
-    ( cd cndrvcups-common-${commonVer}/buftool
-      make install
-    )
-
-    ( cd cndrvcups-common-${commonVer}/backend
+    (
+      cd cnrdrvcups-common-${version}
+      ./allgen.sh
       make install
     )
-
-    ( cd cndrvcups-common-${commonVer}/c3plmod_ipc
-      make install DESTDIR=$out/lib
-    )
-
-    ( cd cndrvcups-common-${commonVer}/libs
-      chmod 755 *
-      mkdir -p $out/lib32
-      mkdir -p $out/bin
-      cp libcaiowrap.so.1.0.0 $out/lib32
-      cp libcaiousb.so.1.0.0 $out/lib32
-      cp libc3pl.so.0.0.1 $out/lib32
-      cp libcaepcm.so.1.0 $out/lib32
-      cp libColorGear.so.0.0.0 $out/lib32
-      cp libColorGearC.so.1.0.0 $out/lib32
-      cp libcanon_slim.so.1.0.0 $out/lib32
-      cp c3pldrv $out/bin
-    )
-
-    (cd cndrvcups-common-${commonVer}/Rule
+    (
+      cd cnrdrvcups-common-${version}/Rule
       mkdir -p $out/share/usb
-      chmod 644 *.usb-quirks $out/share/usb
-    )
-
-    (cd cndrvcups-common-${commonVer}/data
-      chmod 644 *.ICC
-      mkdir -p $out/share/caepcm
-      cp *.ICC $out/share/caepcm
-      cp *.icc $out/share/caepcm
-      cp *.PRF $out/share/caepcm
-    )
-
-    (cd $out/lib32
-      ln -sf libc3pl.so.0.0.1 libc3pl.so.0
-      ln -sf libc3pl.so.0.0.1 libc3pl.so
-      ln -sf libcaepcm.so.1.0 libcaepcm.so.1
-      ln -sf libcaepcm.so.1.0 libcaepcm.so
-      ln -sf libcaiowrap.so.1.0.0 libcaiowrap.so.1
-      ln -sf libcaiowrap.so.1.0.0 libcaiowrap.so
-      ln -sf libcaiousb.so.1.0.0 libcaiousb.so.1
-      ln -sf libcaiousb.so.1.0.0 libcaiousb.so
-      ln -sf libcanon_slim.so.1.0.0 libcanon_slim.so.1
-      ln -sf libcanon_slim.so.1.0.0 libcanon_slim.so
-      ln -sf libColorGear.so.0.0.0 libColorGear.so.0
-      ln -sf libColorGear.so.0.0.0 libColorGear.so
-      ln -sf libColorGearC.so.1.0.0 libColorGearC.so.1
-      ln -sf libColorGearC.so.1.0.0 libColorGearC.so
-    )
-
-    (cd $out/lib
-      ln -sf libcanonc3pl.so.1.0.0 libcanonc3pl.so
-      ln -sf libcanonc3pl.so.1.0.0 libcanonc3pl.so.1
-    )
-
-    patchelf --set-rpath "$(cat ${i686_NIX_GCC}/nix-support/orig-cc)/lib" $out/lib32/libColorGear.so.0.0.0
-    patchelf --set-rpath "$(cat ${i686_NIX_GCC}/nix-support/orig-cc)/lib" $out/lib32/libColorGearC.so.1.0.0
-
-    patchelf --interpreter "$(cat ${i686_NIX_GCC}/nix-support/dynamic-linker)" --set-rpath "$out/lib32" $out/bin/c3pldrv
-
-    # c3pldrv is programmed with fixed paths that point to "/usr/{bin,lib.share}/..."
-    # preload32 wrappes all necessary function calls to redirect the fixed paths
-    # into $out.
-    mkdir -p $out/libexec
-    preload32=$out/libexec/libpreload32.so
-    ${i686_NIX_GCC}/bin/gcc -shared ${./preload.c} -o $preload32 -ldl -DOUT=\"$out\" -fPIC
-    wrapProgram "$out/bin/c3pldrv" \
-      --set PRELOAD_DEBUG 1 \
-      --set LD_PRELOAD $preload32 \
-      --prefix LD_LIBRARY_PATH : "$out/lib32"
-
-
-
-    ##
-    ## cndrvcups-lb buildPhase
-    ##
-
-    ( cd cndrvcups-lb-${version}/buftool
-      ./autogen.sh --prefix=$out --libdir=$out/lib --enable-progpath=$out/bin --enable-static
-      make
+      install -m 644 *.usb-quirks $out/share/usb
     )
-
-    ( cd cndrvcups-lb-${version}/pstoufr2cpca
-      ./autogen.sh --prefix=$out --libdir=$out/lib
-      make
-    )
-
-    ##
-    ## cndrvcups-lb installPhase
-    ##
-
-    ( cd cndrvcups-lb-${version}/pstoufr2cpca
+    (
+      cd cnrdrvcups-lb-${version}
+      ./allgen.sh
       make install
-    )
-
-    ( cd cndrvcups-lb-${version}/libs
-      chmod 755 *
-      mkdir -p $out/lib32
-      mkdir -p $out/bin
-      cp libcanonufr2.la $out/lib32
-      cp libcanonufr2.so.1.0.0 $out/lib32
-      cp libufr2filter.so.1.0.0 $out/lib32
-      cp libEnoJBIG.so.1.0.0 $out/lib32
-      cp libEnoJPEG.so.1.0.0 $out/lib32
-      cp libcaiocnpkbidi.so.1.0.0 $out/lib32
-      cp libcnlbcm.so.1.0 $out/lib32
-
-      cp cnpkmoduleufr2 $out/bin #maybe needs setuid 4755
-      cp cnpkbidi $out/bin
-    )
 
-    ( cd $out/lib32
-      ln -sf libcanonufr2.so.1.0.0 libcanonufr2.so
-      ln -sf libcanonufr2.so.1.0.0 libcanonufr2.so.1
-      ln -sf libufr2filter.so.1.0.0 libufr2filter.so
-      ln -sf libufr2filter.so.1.0.0 libufr2filter.so.1
-      ln -sf libEnoJBIG.so.1.0.0 libEnoJBIG.so
-      ln -sf libEnoJBIG.so.1.0.0 libEnoJBIG.so.1
-      ln -sf libEnoJPEG.so.1.0.0 libEnoJPEG.so
-      ln -sf libEnoJPEG.so.1.0.0 libEnoJPEG.so.1
-      ln -sf libcaiocnpkbidi.so.1.0.0 libcaiocnpkbidi.so
-      ln -sf libcaiocnpkbidi.so.1.0.0 libcaiocnpkbidi.so.1
-      ln -sf libcnlbcm.so.1.0 libcnlbcm.so.1
-      ln -sf libcnlbcm.so.1.0 libcnlbcm.so
+      mkdir -p $out/share/cups/model
+      install -m 644 ppd/*.ppd $out/share/cups/model/
     )
+    (
+      cd lib
+      mkdir -p $out/lib32
+      install -m 755 libs32/intel/libColorGearCufr2.so.2.0.0 $out/lib32
+      install -m 755 libs32/intel/libcaepcmufr2.so.1.0 $out/lib32
+      install -m 755 libs32/intel/libcaiocnpkbidir.so.1.0.0 $out/lib32
+      install -m 755 libs32/intel/libcaiousb.so.1.0.0 $out/lib32
+      install -m 755 libs32/intel/libcaiowrapufr2.so.1.0.0 $out/lib32
+      install -m 755 libs32/intel/libcanon_slimufr2.so.1.0.0 $out/lib32
+      install -m 755 libs32/intel/libcanonufr2r.so.1.0.0 $out/lib32
+      install -m 755 libs32/intel/libcnaccm.so.1.0 $out/lib32
+      install -m 755 libs32/intel/libcnlbcmr.so.1.0 $out/lib32
+      install -m 755 libs32/intel/libcnncapcmr.so.1.0 $out/lib32
+      install -m 755 libs32/intel/libufr2filterr.so.1.0.0 $out/lib32
+
+      mkdir -p $out/lib
+      install -m 755 libs64/intel/libColorGearCufr2.so.2.0.0 $out/lib
+      install -m 755 libs64/intel/libcaepcmufr2.so.1.0 $out/lib
+      install -m 755 libs64/intel/libcaiocnpkbidir.so.1.0.0 $out/lib
+      install -m 755 libs64/intel/libcaiousb.so.1.0.0 $out/lib
+      install -m 755 libs64/intel/libcaiowrapufr2.so.1.0.0 $out/lib
+      install -m 755 libs64/intel/libcanon_slimufr2.so.1.0.0 $out/lib
+      install -m 755 libs64/intel/libcanonufr2r.so.1.0.0 $out/lib
+      install -m 755 libs64/intel/libcnaccm.so.1.0 $out/lib
+      install -m 755 libs64/intel/libcnlbcmr.so.1.0 $out/lib
+      install -m 755 libs64/intel/libcnncapcmr.so.1.0 $out/lib
+      install -m 755 libs64/intel/libufr2filterr.so.1.0.0 $out/lib
+
+      install -m 755 libs64/intel/cnpdfdrv $out/bin
+      install -m 755 libs64/intel/cnpkbidir $out/bin
+      install -m 755 libs64/intel/cnpkmoduleufr2r $out/bin
+      install -m 755 libs64/intel/cnrsdrvufr2 $out/bin
+      install -m 755 libs64/intel/cnsetuputil2 $out/bin/cnsetuputil2
+
+      mkdir -p $out/share/cnpkbidir
+      install -m 644 libs64/intel/cnpkbidir_info* $out/share/cnpkbidir
 
-    ( cd cndrvcups-lb-${version}
-      chmod 644 data/CnLB*
-      chmod 644 libs/cnpkbidi_info*
-      chmod 644 libs/ThLB*
-      mkdir -p $out/share/caepcm
-      mkdir -p $out/share/cnpkbidi
       mkdir -p $out/share/ufr2filter
-      cp data/CnLB* $out/share/caepcm
-      cp libs/cnpkbidi_info* $out/share/cnpkbidi
-      cp libs/ThLB* $out/share/ufr2filter
+      install -m 644 libs64/intel/ThLB* $out/share/ufr2filter
+    )
+
+    (
+      cd $out/lib32
+      ln -sf libcaepcmufr2.so.1.0 libcaepcmufr2.so
+      ln -sf libcaepcmufr2.so.1.0 libcaepcmufr2.so.1
+      ln -sf libcaiowrapufr2.so.1.0.0 libcaiowrapufr2.so
+      ln -sf libcaiowrapufr2.so.1.0.0 libcaiowrapufr2.so.1
+      ln -sf libcanon_slimufr2.so.1.0.0 libcanon_slimufr2.so
+      ln -sf libcanon_slimufr2.so.1.0.0 libcanon_slimufr2.so.1
+      ln -sf libufr2filterr.so.1.0.0 libufr2filterr.so
+      ln -sf libufr2filterr.so.1.0.0 libufr2filterr.so.1
+
+      patchelf --set-rpath "$(cat ${i686_NIX_GCC}/nix-support/orig-cc)/lib:${libs pkgsi686Linux}:${stdenv_32bit.glibc.out}/lib:${pkgsi686Linux.libxml2.out}/lib:$out/lib32" libcanonufr2r.so.1.0.0
+      patchelf --set-rpath "$(cat ${i686_NIX_GCC}/nix-support/orig-cc)/lib:${libs pkgsi686Linux}:${stdenv_32bit.glibc.out}/lib" libcaepcmufr2.so.1.0
+      patchelf --set-rpath "$(cat ${i686_NIX_GCC}/nix-support/orig-cc)/lib:${libs pkgsi686Linux}:${stdenv_32bit.glibc.out}/lib" libColorGearCufr2.so.2.0.0
+    )
+
+    (
+      cd $out/lib
+      ln -sf libcaepcmufr2.so.1.0 libcaepcmufr2.so
+      ln -sf libcaepcmufr2.so.1.0 libcaepcmufr2.so.1
+      ln -sf libcaiowrapufr2.so.1.0.0 libcaiowrapufr2.so
+      ln -sf libcaiowrapufr2.so.1.0.0 libcaiowrapufr2.so.1
+      ln -sf libcanon_slimufr2.so.1.0.0 libcanon_slimufr2.so
+      ln -sf libcanon_slimufr2.so.1.0.0 libcanon_slimufr2.so.1
+      ln -sf libufr2filterr.so.1.0.0 libufr2filterr.so
+      ln -sf libufr2filterr.so.1.0.0 libufr2filterr.so.1
+
+      patchelf --set-rpath "$(cat $NIX_CC/nix-support/orig-cc)/lib:${libs pkgs}:${stdenv.cc.cc.lib}/lib64:${stdenv.glibc.out}/lib64:$out/lib" libcanonufr2r.so.1.0.0
+      patchelf --set-rpath "$(cat $NIX_CC/nix-support/orig-cc)/lib:${libs pkgs}:${stdenv.cc.cc.lib}/lib64:${stdenv.glibc.out}/lib64" libcaepcmufr2.so.1.0
+      patchelf --set-rpath "$(cat $NIX_CC/nix-support/orig-cc)/lib:${libs pkgs}:${stdenv.cc.cc.lib}/lib64:${stdenv.glibc.out}/lib64" libColorGearCufr2.so.2.0.0
+    )
+
+    (
+      cd $out/bin
+      patchelf --set-interpreter "$(cat ${ld64})" --set-rpath "${lib.makeLibraryPath buildInputs}:${stdenv.cc.cc.lib}/lib64:${stdenv.glibc.out}/lib64" cnsetuputil2
+      patchelf --set-interpreter "$(cat ${ld64})" --set-rpath "${lib.makeLibraryPath buildInputs}:${stdenv.cc.cc.lib}/lib64:${stdenv.glibc.out}/lib64" cnpdfdrv
+      patchelf --set-interpreter "$(cat ${ld64})" --set-rpath "${lib.makeLibraryPath buildInputs}:${stdenv.cc.cc.lib}/lib64:${stdenv.glibc.out}/lib64:$out/lib" cnpkbidir
+      patchelf --set-interpreter "$(cat ${ld64})" --set-rpath "${lib.makeLibraryPath buildInputs}:${stdenv.cc.cc.lib}/lib64:${stdenv.glibc.out}/lib64:$out/lib" cnrsdrvufr2
+
+      mv cnsetuputil2 cnsetuputil2.wrapped
+      echo "#!${runtimeShell} -e" > cnsetuputil2
+      echo "exec ${proot}/bin/proot -b $out/usr/share/cnsetuputil2:/usr/share/cnsetuputil2 -b ${coreutils}/bin/ls:/bin/ls -b ${cups}/share:/usr/share/cups $out/bin/cnsetuputil2.wrapped" > cnsetuputil2
+      chmod +x cnsetuputil2
+    )
+
+    (
+      cd lib/data/ufr2
+      mkdir -p $out/share/caepcm
+      install -m 644 *.ICC $out/share/caepcm
+      install -m 644 *.icc $out/share/caepcm
+      install -m 644 *.PRF $out/share/caepcm
+      install -m 644 CnLB* $out/share/caepcm
     )
 
-    mkdir -p $out/share/cups/model
-    install -c -m 644 cndrvcups-lb-${version}/ppd/CN*.ppd $out/share/cups/model/
-
-    patchelf --set-rpath "$out/lib32:${i686_libxml2.out}/lib" $out/lib32/libcanonufr2.so.1.0.0
-
-    patchelf --interpreter "$(cat ${i686_NIX_GCC}/nix-support/dynamic-linker)" --set-rpath "$out/lib32" $out/bin/cnpkmoduleufr2
-    patchelf --interpreter "$(cat ${i686_NIX_GCC}/nix-support/dynamic-linker)" --set-rpath "$out/lib32:${i686_libxml2.out}/lib" $out/bin/cnpkbidi
+    (
+      cd cnrdrvcups-utility-${version}/data
+      mkdir -p $out/usr/share/cnsetuputil2
+      install -m 644 cnsetuputil* $out/usr/share/cnsetuputil2
+    )
 
     makeWrapper "${ghostscript}/bin/gs" "$out/bin/gs" \
       --prefix LD_LIBRARY_PATH ":" "$out/lib" \
@@ -233,7 +212,7 @@ stdenv.mkDerivation {
     homepage = "http://www.canon.com/";
     license = licenses.unfree;
     maintainers = with maintainers; [
-      kylesferrazza
+      # please consider maintaining if you are updating this package
     ];
   };
 }
diff --git a/pkgs/misc/cups/drivers/canon/preload.c b/pkgs/misc/cups/drivers/canon/preload.c
deleted file mode 100644
index f3a30063a6e37..0000000000000
--- a/pkgs/misc/cups/drivers/canon/preload.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * LD_PRELOAD trick to make c3pldrv handle the absolute path to /usr/{bin,lib,share)}.
- * As c3pldrv is a 32 bit executable, /lib will be rewritten to /lib32.
- *
- * Usage:
- *   gcc -shared -fPIC -DOUT="$out" preload.c -o preload.so -ldl
- *   LD_PRELOAD=$PWD/preload.so ./c3pldrv
- */
-
-#define _GNU_SOURCE
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <dlfcn.h>
-#include <limits.h>
-
-#ifndef OUT
-#error Missing OUT define - path to the installation directory.
-#endif
-
-typedef void *(*dlopen_func_t)(const char *filename, int flag);
-typedef int (*open_func_t)(const char *pathname, int flags, ...);
-typedef int (*execv_func_t)(const char *path, char *const argv[]);
-
-
-void *dlopen(const char *filename, int flag)
-{
-	dlopen_func_t orig_dlopen;
-	const char *new_filename;
-	char buffer[PATH_MAX];
-
-	orig_dlopen = (dlopen_func_t)dlsym(RTLD_NEXT, "dlopen");
-
-	new_filename = filename;
-	if (strncmp("/usr/lib", filename, 8) == 0) {
-		snprintf(buffer, PATH_MAX, OUT "/lib32%s", filename+8);
-		buffer[PATH_MAX-1] = '\0';
-		new_filename = buffer;
-	}
-	
-	return orig_dlopen(new_filename, flag);
-}
-
-int open(const char *pathname, int flags, ...)
-{
-	open_func_t orig_open;
-	const char *new_pathname;
-	char buffer[PATH_MAX];
-
-	orig_open = (open_func_t)dlsym(RTLD_NEXT, "open");
-
-	new_pathname = pathname;
-	if (strncmp("/usr/share", pathname, 10) == 0) {
-		snprintf(buffer, PATH_MAX, OUT "%s", pathname+4);
-		buffer[PATH_MAX-1] = '\0';
-		new_pathname = buffer;
-	}
-	
-	return orig_open(new_pathname, flags);
-}
-
-int execv(const char *path, char *const argv[])
-{
-	execv_func_t orig_execv;
-	const char *new_path;
-	char buffer[PATH_MAX];
-
-	orig_execv = (execv_func_t)dlsym(RTLD_NEXT, "execv");
-
-	new_path = path;
-	if (strncmp("/usr/bin", path, 8) == 0) {
-		snprintf(buffer, PATH_MAX, OUT "%s", path+4);
-		buffer[PATH_MAX-1] = '\0';
-		new_path = buffer;
-	}
-	
-	return orig_execv(new_path, argv);
-}
-
diff --git a/pkgs/misc/drivers/epson-201401w/default.nix b/pkgs/misc/drivers/epson-201401w/default.nix
new file mode 100644
index 0000000000000..cffa631cfe33a
--- /dev/null
+++ b/pkgs/misc/drivers/epson-201401w/default.nix
@@ -0,0 +1,67 @@
+{ lib, stdenv, fetchurl, rpmextract, autoreconfHook, file, libjpeg, cups }:
+
+let
+  version = "1.0.0";
+  filterVersion = "1.0.0";
+in stdenv.mkDerivation {
+  pname = "epson-201401w";
+  inherit version;
+
+  src = fetchurl {
+    # NOTE: Don't forget to update the webarchive link too!
+    urls = [
+      "https://download3.ebz.epson.net/dsc/f/03/00/03/45/41/92e9c9254f0ee4230a069545ba27ec2858a2c457/epson-inkjet-printer-201401w-1.0.0-1lsb3.2.src.rpm"
+      "https://web.archive.org/web/20200725175832/https://download3.ebz.epson.net/dsc/f/03/00/03/45/41/92e9c9254f0ee4230a069545ba27ec2858a2c457/epson-inkjet-printer-201401w-1.0.0-1lsb3.2.src.rpm"
+    ];
+    sha256 = "0c60m1sd59s4sda38dc5nniwa7dh1b0kv1maajr0x9d38gqlyk3x";
+  };
+  patches = [ ./fixbuild.patch ];
+
+  nativeBuildInputs = [ rpmextract autoreconfHook file ];
+
+  buildInputs = [ libjpeg cups ];
+
+  unpackPhase = ''
+    rpmextract $src
+    tar -zxf epson-inkjet-printer-201401w-${version}.tar.gz
+    tar -zxf epson-inkjet-printer-filter-${filterVersion}.tar.gz
+    for ppd in epson-inkjet-printer-201401w-${version}/ppds/*; do
+      substituteInPlace $ppd --replace "/opt/epson-inkjet-printer-201401w" "$out"
+      substituteInPlace $ppd --replace "/cups/lib" "/lib/cups"
+    done
+    cd epson-inkjet-printer-filter-${filterVersion}
+  '';
+
+  preConfigure = ''
+    chmod +x configure
+  '';
+
+  postInstall = ''
+    cd ../epson-inkjet-printer-201401w-${version}
+    cp -a lib64 resource watermark $out
+    mkdir -p $out/share/cups/model/epson-inkjet-printer-201401w
+    cp -a ppds $out/share/cups/model/epson-inkjet-printer-201401w/
+    cp -a Manual.txt $out/doc/
+    cp -a README $out/doc/README.driver
+  '';
+
+  meta = with lib; {
+    homepage = "https://www.openprinting.org/driver/epson-201401w";
+    description =
+      "Epson printer driver (L456, L455, L366, L365, L362, L360, L312, L310, L222, L220, L132, L130)";
+    longDescription = ''
+      This software is a filter program used with the Common UNIX Printing
+      System (CUPS) under Linux. It supplies high quality printing with
+      Seiko Epson Color Ink Jet Printers.
+
+      To use the driver adjust your configuration.nix file:
+        services.printing = {
+          enable = true;
+          drivers = [ pkgs.epson-201401w ];
+        };
+    '';
+    license = with licenses; [ lgpl21 epson ];
+    platforms = platforms.linux;
+    maintainers = [ maintainers.lunarequest ];
+  };
+}
diff --git a/pkgs/misc/drivers/epson-201401w/fixbuild.patch b/pkgs/misc/drivers/epson-201401w/fixbuild.patch
new file mode 100644
index 0000000000000..4baa029a57396
--- /dev/null
+++ b/pkgs/misc/drivers/epson-201401w/fixbuild.patch
@@ -0,0 +1,101 @@
+diff --git a/src/pagemanager/pagemanager.c b/src/pagemanager/pagemanager.c
+index 029e6d3..3c1f450 100644
+--- a/src/pagemanager/pagemanager.c
++++ b/src/pagemanager/pagemanager.c
+@@ -22,7 +22,7 @@
+ #include "epcgdef.h"
+ #include "debuglog.h"
+ #include "memory.h"
+-#include "raster.h"
++#include "raster-helper.h"
+ #include "pagemanager.h"
+
+ extern int JobCanceled;
+@@ -45,7 +45,7 @@ fetchRaster(EpsPageManager *pageManager)
+ 	int error = 0;
+ 	int did_fetch = 0;
+ 	int read_bytes = 0;
+-	int nraster;
++	size_t nraster;
+
+ 	while (error == 0 && did_fetch == 0 && JobCanceled == 0) {
+ 		eps_raster_fetch(privateData->raster_h, NULL, 0, 0, &status);
+@@ -212,7 +212,7 @@ int pageManagerGetPageRegion(EpsPageManager *pageManager, EpsPageRegion *pageReg
+ 	return EPS_OK;
+ }
+
+-int pageManagerGetRaster(EpsPageManager *pageManager, char *buf, int bufSize)
++size_t pageManagerGetRaster(EpsPageManager *pageManager, char *buf, int bufSize)
+ {
+ 	PageManagerPrivateData  *privateData = NULL;
+ 	int error = EPS_OK;
+diff --git a/src/pagemanager/pagemanager.h b/src/pagemanager/pagemanager.h
+index 87fbbd5..c9743fb 100644
+--- a/src/pagemanager/pagemanager.h
++++ b/src/pagemanager/pagemanager.h
+@@ -31,7 +31,7 @@ extern "C"
+ #define	EPS_ERROR	-1
+ #define	EPS_OK		0
+
+-typedef int (*EpsRasterSource)(char *buf, int bufSize);
++typedef size_t (*EpsRasterSource)(char *buf, int bufSize);
+
+ typedef struct {
+ 	EpsRasterSource		rasterSource;
+@@ -47,7 +47,7 @@ typedef struct {
+ EpsPageManager* pageManagerCreate(EpsPageRegion pageRegion, EpsFilterPrintOption filterPrintOption, EpsRasterSource rasterSource);
+ void pageManagerDestroy(EpsPageManager *pageManager);
+ int pageManagerGetPageRegion(EpsPageManager *pageManager, EpsPageRegion *pageRegion);
+-int pageManagerGetRaster(EpsPageManager *pageManager, char *buf, int bufSize);
++size_t pageManagerGetRaster(EpsPageManager *pageManager, char *buf, int bufSize);
+ int pageManagerIsNextPage(EpsPageManager *pageManager);
+
+ #ifdef __cplusplus
+diff --git a/src/raster/raster.c b/src/raster/raster.c
+index 7e4946b..dd5aef6 100644
+--- a/src/raster/raster.c
++++ b/src/raster/raster.c
+@@ -218,7 +218,7 @@ eps_raster_init (RASTER * handle, EpsRasterOpt * data, EpsRasterPipeline * pipel
+
+ /* if raster_p equals NULL means that it is need to flush a page. */
+ int
+-eps_raster_print (RASTER handle, char * raster_p, int raster_bytes, int pixel_num, int * outraster)
++eps_raster_print (RASTER handle, char * raster_p, int raster_bytes, int pixel_num, size_t * outraster)
+ {
+ 	EpsRaster * raster = (EpsRaster *) handle;
+ 	EpsRasterPipeline * pipeline = NULL;
+diff --git a/src/raster/raster.h b/src/raster/raster.h
+index 9be0977..cc5054d 100644
+--- a/src/raster/raster.h
++++ b/src/raster/raster.h
+@@ -143,7 +143,7 @@ typedef enum {
+ } EpsRasterFetchStatus;
+
+ int eps_raster_init (RASTER *, EpsRasterOpt *, EpsRasterPipeline *);
+-int eps_raster_print (RASTER, char *, int, int, int *);
++int eps_raster_print (RASTER, char *, int, int, size_t *);
+ int eps_raster_fetch (RASTER, char *, int, int, EpsRasterFetchStatus *);
+ int eps_raster_free (RASTER);
+
+diff --git a/src/raster_to_epson.c b/src/raster_to_epson.c
+index 6e621c8..a0811d6 100644
+--- a/src/raster_to_epson.c
++++ b/src/raster_to_epson.c
+@@ -33,7 +33,7 @@
+ #include <cups/ppd.h>
+ #include <cups/raster.h>
+
+-#include "raster.h"
++#include "raster-helper.h"
+ #include "memory.h"
+ #include "raster_to_epson.h"
+ #include "pagemanager.h"
+@@ -75,7 +75,7 @@ static int page_no = 0;
+ static int pageHeight = 0;
+ #endif
+
+-int rasterSource(char *buf, int bufSize)
++size_t rasterSource(char *buf, int bufSize)
+ {
+ 	int readBytes = 0;
+ 	if (JobCanceled == 0) {
diff --git a/pkgs/misc/drivers/hplip/3.16.11.nix b/pkgs/misc/drivers/hplip/3.16.11.nix
deleted file mode 100644
index 07a9f807772b8..0000000000000
--- a/pkgs/misc/drivers/hplip/3.16.11.nix
+++ /dev/null
@@ -1,192 +0,0 @@
-{ lib, stdenv, fetchurl, substituteAll
-, pkg-config
-, cups, libjpeg, libusb1, python2Packages, sane-backends, dbus, usbutils
-, net-snmp, openssl, nettools
-, bash, util-linux
-, qtSupport ? true
-, withPlugin ? false
-}:
-
-let
-
-  name = "hplip-${version}";
-  version = "3.16.11";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/hplip/${name}.tar.gz";
-    sha256 = "094vkyr0rjng72m13dgr824cdl7q20x23qjxzih4w7l9njn0rqpn";
-  };
-
-  plugin = fetchurl {
-    url = "http://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/${name}-plugin.run";
-    sha256 = "1y3wdax2wb6kdd8bi40wl7v9s8ffyjz95bz42sjcpzzddmlhcaxg";
-  };
-
-  hplipState = substituteAll {
-    inherit version;
-    src = ./hplip.state;
-  };
-
-  hplipPlatforms = {
-    i686-linux    = "x86_32";
-    x86_64-linux  = "x86_64";
-    armv6l-linux  = "arm32";
-    armv7l-linux  = "arm32";
-    aarch64-linux = "arm64";
-  };
-
-  hplipArch = hplipPlatforms.${stdenv.hostPlatform.system}
-    or (throw "HPLIP not supported on ${stdenv.hostPlatform.system}");
-
-  pluginArches = [ "x86_32" "x86_64" "arm32" "arm64" ];
-
-in
-
-assert withPlugin -> builtins.elem hplipArch pluginArches
-  || throw "HPLIP plugin not supported on ${stdenv.hostPlatform.system}";
-
-python2Packages.buildPythonApplication {
-  inherit name src;
-  format = "other";
-
-  buildInputs = [
-    libjpeg
-    cups
-    libusb1
-    sane-backends
-    dbus
-    net-snmp
-    openssl
-  ];
-
-  nativeBuildInputs = [
-    pkg-config
-  ];
-
-  pythonPath = with python2Packages; [
-    dbus
-    pillow
-    pygobject2
-    reportlab
-    usbutils
-  ] ++ lib.optionals qtSupport [
-    pyqt4
-  ];
-
-  makeWrapperArgs = [ "--prefix" "PATH" ":" "${nettools}/bin" ];
-
-  prePatch = ''
-    # HPLIP hardcodes absolute paths everywhere. Nuke from orbit.
-    find . -type f -exec sed -i \
-      -e s,/etc/hp,$out/etc/hp, \
-      -e s,/etc/sane.d,$out/etc/sane.d, \
-      -e s,/usr/include/libusb-1.0,${libusb1.dev}/include/libusb-1.0, \
-      -e s,/usr/share/hal/fdi/preprobe/10osvendor,$out/share/hal/fdi/preprobe/10osvendor, \
-      -e s,/usr/lib/systemd/system,$out/lib/systemd/system, \
-      -e s,/var/lib/hp,$out/var/lib/hp, \
-      {} +
-  '';
-
-  preConfigure = ''
-    export configureFlags="$configureFlags
-      --with-hpppddir=$out/share/cups/model/HP
-      --with-cupsfilterdir=$out/lib/cups/filter
-      --with-cupsbackenddir=$out/lib/cups/backend
-      --with-icondir=$out/share/applications
-      --with-systraydir=$out/xdg/autostart
-      --with-mimedir=$out/etc/cups
-      --enable-policykit
-    "
-
-    export makeFlags="
-      halpredir=$out/share/hal/fdi/preprobe/10osvendor
-      rulesdir=$out/etc/udev/rules.d
-      policykit_dir=$out/share/polkit-1/actions
-      policykit_dbus_etcdir=$out/etc/dbus-1/system.d
-      policykit_dbus_sharedir=$out/share/dbus-1/system-services
-      hplip_confdir=$out/etc/hp
-      hplip_statedir=$out/var/lib/hp
-    "
-  '';
-
-  enableParallelBuilding = true;
-
-  postInstall = lib.optionalString withPlugin ''
-    sh ${plugin} --noexec --keep
-    cd plugin_tmp
-
-    cp plugin.spec $out/share/hplip/
-
-    mkdir -p $out/share/hplip/data/firmware
-    cp *.fw.gz $out/share/hplip/data/firmware
-
-    mkdir -p $out/share/hplip/data/plugins
-    cp license.txt $out/share/hplip/data/plugins
-
-    mkdir -p $out/share/hplip/prnt/plugins
-    for plugin in lj hbpl1; do
-      cp $plugin-${hplipArch}.so $out/share/hplip/prnt/plugins
-      ln -s $out/share/hplip/prnt/plugins/$plugin-${hplipArch}.so \
-        $out/share/hplip/prnt/plugins/$plugin.so
-    done
-
-    mkdir -p $out/share/hplip/scan/plugins
-    for plugin in bb_soap bb_marvell bb_soapht fax_marvell; do
-      cp $plugin-${hplipArch}.so $out/share/hplip/scan/plugins
-      ln -s $out/share/hplip/scan/plugins/$plugin-${hplipArch}.so \
-        $out/share/hplip/scan/plugins/$plugin.so
-    done
-
-    mkdir -p $out/var/lib/hp
-    cp ${hplipState} $out/var/lib/hp/hplip.state
-
-    mkdir -p $out/etc/sane.d/dll.d
-    mv $out/etc/sane.d/dll.conf $out/etc/sane.d/dll.d/hpaio.conf
-  '';
-
-  # The installed executables are just symlinks into $out/share/hplip,
-  # but wrapPythonPrograms ignores symlinks. We cannot replace the Python
-  # modules in $out/share/hplip with wrapper scripts because they import
-  # each other as libraries. Instead, we emulate wrapPythonPrograms by
-  # 1. Calling patchPythonProgram on the original script in $out/share/hplip
-  # 2. Making our own wrapper pointing directly to the original script.
-  dontWrapPythonPrograms = true;
-  preFixup = ''
-    buildPythonPath "$out $pythonPath"
-
-    for bin in $out/bin/*; do
-      py=$(readlink -m $bin)
-      rm $bin
-      echo "patching \`$py'..."
-      patchPythonScript "$py"
-      echo "wrapping \`$bin'..."
-      makeWrapper "$py" "$bin" \
-          --prefix PATH ':' "$program_PATH" \
-          --set PYTHONNOUSERSITE "true" \
-          $makeWrapperArgs
-    done
-  '';
-
-  postFixup = ''
-    substituteInPlace $out/etc/hp/hplip.conf --replace /usr $out
-    # Patch udev rules:
-    # with plugin, they upload firmware to printers,
-    # without plugin, they complain about the missing plugin.
-    substituteInPlace $out/etc/udev/rules.d/56-hpmud.rules \
-      --replace {,${bash}}/bin/sh \
-      --replace /usr/bin/nohup "" \
-      --replace {,${util-linux}/bin/}logger \
-      --replace {/usr,$out}/bin
-  '';
-
-  meta = with lib; {
-    description = "Print, scan and fax HP drivers for Linux";
-    homepage = "http://hplipopensource.com/";
-    downloadPage = "https://sourceforge.net/projects/hplip/files/hplip/";
-    license = if withPlugin
-      then licenses.unfree
-      else with licenses; [ mit bsd2 gpl2Plus ];
-    platforms = [ "i686-linux" "x86_64-linux" "armv6l-linux" "armv7l-linux" "aarch64-linux" ];
-    maintainers = with maintainers; [ ttuegel ];
-  };
-}
diff --git a/pkgs/misc/emulators/cdemu/analyzer.nix b/pkgs/misc/emulators/cdemu/analyzer.nix
index 21ec032f5cca7..338c64a24b81a 100644
--- a/pkgs/misc/emulators/cdemu/analyzer.nix
+++ b/pkgs/misc/emulators/cdemu/analyzer.nix
@@ -2,7 +2,7 @@
 , python3Packages, gtk3, glib, libxml2, gnuplot, gnome, gdk-pixbuf, librsvg, intltool, libmirage }:
 let pkg = import ./base.nix {
   version = "3.2.5";
-  pkgName = "image-analyzer";
+  pname = "image-analyzer";
   pkgSha256 = "00906lky0z1m0bdqnjmzxgcb19dzvljhddhh42lixyr53sjp94cc";
 };
 in callPackage pkg {
diff --git a/pkgs/misc/emulators/cdemu/base.nix b/pkgs/misc/emulators/cdemu/base.nix
index 1754f2ad4bbcf..9464bde70bf71 100644
--- a/pkgs/misc/emulators/cdemu/base.nix
+++ b/pkgs/misc/emulators/cdemu/base.nix
@@ -1,10 +1,9 @@
-{ pkgName, version, pkgSha256 }:
+{ pname, version, pkgSha256 }:
 { lib, stdenv, fetchurl, cmake, pkg-config, buildInputs, drvParams ? {} }:
-let name = "${pkgName}-${version}";
-in stdenv.mkDerivation ({
-  inherit name buildInputs;
+stdenv.mkDerivation ( rec {
+  inherit pname version buildInputs;
   src = fetchurl {
-    url = "mirror://sourceforge/cdemu/${name}.tar.xz";
+    url = "mirror://sourceforge/cdemu/${pname}-${version}.tar.xz";
     sha256 = pkgSha256;
   };
   nativeBuildInputs = [ pkg-config cmake ];
@@ -14,7 +13,7 @@ in stdenv.mkDerivation ({
     sourceRoot="`pwd`"
   '';
   configurePhase = ''
-    cmake ../${name} -DCMAKE_INSTALL_PREFIX=$out -DCMAKE_BUILD_TYPE=Release -DCMAKE_SKIP_RPATH=ON
+    cmake ../${pname}-${version} -DCMAKE_INSTALL_PREFIX=$out -DCMAKE_BUILD_TYPE=Release -DCMAKE_SKIP_RPATH=ON
   '';
   meta = with lib; {
     description = "A suite of tools for emulating optical drives and discs";
diff --git a/pkgs/misc/emulators/cdemu/client.nix b/pkgs/misc/emulators/cdemu/client.nix
index 0572dda595468..06604e3eae997 100644
--- a/pkgs/misc/emulators/cdemu/client.nix
+++ b/pkgs/misc/emulators/cdemu/client.nix
@@ -1,7 +1,7 @@
 { callPackage, python3Packages, intltool, makeWrapper }:
 let pkg = import ./base.nix {
   version = "3.2.5";
-  pkgName = "cdemu-client";
+  pname = "cdemu-client";
   pkgSha256 = "1prrdhv0ia0axc6b73crszqzh802wlkihz6d100yvg7wbgmqabd7";
 };
 in callPackage pkg {
diff --git a/pkgs/misc/emulators/cdemu/daemon.nix b/pkgs/misc/emulators/cdemu/daemon.nix
index 4fc3ea211993b..3df9e4ad5437f 100644
--- a/pkgs/misc/emulators/cdemu/daemon.nix
+++ b/pkgs/misc/emulators/cdemu/daemon.nix
@@ -1,7 +1,7 @@
 { callPackage, glib, libao, intltool, libmirage }:
 let pkg = import ./base.nix {
   version = "3.2.5";
-  pkgName = "cdemu-daemon";
+  pname = "cdemu-daemon";
   pkgSha256 = "16g6fv1lxkdmbsy6zh5sj54dvgwvm900fd18aq609yg8jnqm644d";
 };
 in callPackage pkg {
diff --git a/pkgs/misc/emulators/cdemu/gui.nix b/pkgs/misc/emulators/cdemu/gui.nix
index 6f5313c4cca7b..15e595a617299 100644
--- a/pkgs/misc/emulators/cdemu/gui.nix
+++ b/pkgs/misc/emulators/cdemu/gui.nix
@@ -3,7 +3,7 @@
 let
   pkg = import ./base.nix {
     version = "3.2.5";
-    pkgName = "gcdemu";
+    pname = "gcdemu";
     pkgSha256 = "1nvpbq4mz8caw91q5ny9gf206g9bypavxws9nxyfcanfkc4zfkl4";
   };
   inherit (python3Packages) python pygobject3;
diff --git a/pkgs/misc/emulators/cdemu/libmirage.nix b/pkgs/misc/emulators/cdemu/libmirage.nix
index 0025226d20872..7016a42d247b5 100644
--- a/pkgs/misc/emulators/cdemu/libmirage.nix
+++ b/pkgs/misc/emulators/cdemu/libmirage.nix
@@ -4,7 +4,7 @@
 
 let pkg = import ./base.nix {
   version = "3.2.5";
-  pkgName = "libmirage";
+  pname = "libmirage";
   pkgSha256 = "0f8i2ha44rykkk3ac2q8zsw3y1zckw6qnf6zvkyrj3qqbzhrf3fm";
 };
 in callPackage pkg {
diff --git a/pkgs/misc/emulators/fceux/default.nix b/pkgs/misc/emulators/fceux/default.nix
index c2ff8ebdadaad..3552a4a8d04ba 100644
--- a/pkgs/misc/emulators/fceux/default.nix
+++ b/pkgs/misc/emulators/fceux/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fceux";
-  version = "2.6.0";
+  version = "2.6.1";
 
   src = fetchFromGitHub {
     owner = "TASEmulators";
     repo = pname;
     rev = "${pname}-${version}";
-    sha256 = "sha256-FNcybq0EFN0tWgWxzwEJQMpsnpvdRxDYnIWDXW2fXkw=";
+    sha256 = "sha256-LlGM6sOjcpyHApUvSr5etKIqwDoheuiW53DSHs19W6Q=";
   };
 
   nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
diff --git a/pkgs/misc/emulators/resim/default.nix b/pkgs/misc/emulators/resim/default.nix
index 6e759bd755222..49d7721174f5f 100644
--- a/pkgs/misc/emulators/resim/default.nix
+++ b/pkgs/misc/emulators/resim/default.nix
@@ -1,7 +1,8 @@
 { fetchFromGitHub, lib, stdenv, cmake, qt4 }:
 
 stdenv.mkDerivation {
-  name = "resim";
+  pname = "resim";
+  version = "unstable-2016-11-11";
   src = fetchFromGitHub {
     owner = "itszor";
     repo = "resim";
diff --git a/pkgs/misc/emulators/retroarch/cores.nix b/pkgs/misc/emulators/retroarch/cores.nix
index 4bbe12cbd2987..e0045a3827d18 100644
--- a/pkgs/misc/emulators/retroarch/cores.nix
+++ b/pkgs/misc/emulators/retroarch/cores.nix
@@ -8,7 +8,6 @@
 , cmake
 , curl
 , fetchFromGitHub
-, fetchpatch
 , ffmpeg
 , fluidsynth
 , gettext
@@ -56,7 +55,7 @@ let
     , license
     , src ? (getCoreSrc core)
     , broken ? false
-    , version ? "unstable-2021-12-06"
+    , version ? "unstable-2022-01-21"
     , platforms ? retroarch.meta.platforms
       # The resulting core file is based on core name
       # Setting `normalizeCore` to `true` will convert `-` to `_` on the core filename
@@ -245,14 +244,6 @@ in
     description = "Port of bsnes to libretro";
     license = lib.licenses.gpl3Only;
     makefile = "Makefile";
-    # https://github.com/libretro/bsnes-libretro/issues/10
-    patches = [
-      (fetchpatch {
-        name = "added-missing-GB_VERSION-define.patch";
-        url = "https://github.com/nE0sIghT/bsnes-libretro/commit/97fd8b486f9a9046277a580b238b6673a98f7f72.patch";
-        sha256 = "sha256-gCiy6sqc9sixT6Appr5ZCfHyBE2jYhPb0KvI63nfmEc=";
-      })
-    ];
   };
 
   bsnes-hd =
@@ -322,6 +313,24 @@ in
     postBuild = "cd src/citra_libretro";
   };
 
+  citra-canary = mkLibRetroCore {
+    core = "citra-canary";
+    description = "Port of Citra Canary/Experimental to libretro";
+    license = lib.licenses.gpl2Plus;
+    extraNativeBuildInputs = [ cmake pkg-config ];
+    extraBuildInputs = [ libGLU libGL boost ];
+    makefile = "Makefile";
+    cmakeFlags = [
+      "-DENABLE_LIBRETRO=ON"
+      "-DENABLE_QT=OFF"
+      "-DENABLE_SDL2=OFF"
+      "-DENABLE_WEB_SERVICE=OFF"
+      "-DENABLE_DISCORD_PRESENCE=OFF"
+    ];
+    preConfigure = "sed -e '77d' -i externals/cmake-modules/GetGitRevisionDescription.cmake";
+    postBuild = "cd src/citra_libretro";
+  };
+
   desmume = mkLibRetroCore {
     core = "desmume";
     description = "libretro wrapper for desmume NDS emulator";
@@ -865,6 +874,7 @@ in
       "-DBUILD_SDL=OFF"
       "-DBUILD_SOKOL=OFF"
     ];
+    preConfigure = "cd core";
     postBuild = "cd lib";
   };
 
diff --git a/pkgs/misc/emulators/retroarch/default.nix b/pkgs/misc/emulators/retroarch/default.nix
index 861fa6a47f6f8..f0dba9058d107 100644
--- a/pkgs/misc/emulators/retroarch/default.nix
+++ b/pkgs/misc/emulators/retroarch/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , enableNvidiaCgToolkit ? false
+, withGamemode ? stdenv.isLinux
 , withVulkan ? stdenv.isLinux
 , alsa-lib
 , AppKit
@@ -8,6 +9,7 @@
 , ffmpeg
 , Foundation
 , freetype
+, gamemode
 , libdrm
 , libGL
 , libGLU
@@ -26,23 +28,22 @@
 , pkg-config
 , python3
 , SDL2
-, substituteAll
 , udev
 , vulkan-loader
 , wayland
 , which
 }:
 
-with lib;
-
 let
-  version = "1.9.14";
-  libretroSuperSrc = fetchFromGitHub {
+  version = "1.10.0";
+  libretroCoreInfo = fetchFromGitHub {
     owner = "libretro";
     repo = "libretro-core-info";
-    sha256 = "sha256-C2PiBcN5r9NDxFWFE1pytSGR1zq9E5aVt6QUf5aJ7I0=";
+    sha256 = "sha256-3j7fvcfbgyk71MmbUUKYi+/0cpQFNbYXO+DMDUjDqkQ=";
     rev = "v${version}";
   };
+  runtimeLibs = lib.optional withVulkan vulkan-loader
+    ++ lib.optional withGamemode gamemode.lib;
 in
 stdenv.mkDerivation rec {
   pname = "retroarch-bare";
@@ -51,7 +52,7 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "libretro";
     repo = "RetroArch";
-    sha256 = "sha256-H2fCA1sM8FZfVnLxBjnKe7RjHJNAn/Antxlos5oFFSY=";
+    sha256 = "sha256-bpTSzODVRKRs1OW6JafjbU3e/AqdQeGzWcg1lb9SIyo=";
     rev = "v${version}";
   };
 
@@ -70,46 +71,49 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [ pkg-config ] ++
-    optional stdenv.isLinux wayland ++
-    optional withVulkan makeWrapper;
+    lib.optional stdenv.isLinux wayland ++
+    lib.optional (runtimeLibs != [ ]) makeWrapper;
 
   buildInputs = [ ffmpeg freetype libxml2 libGLU libGL python3 SDL2 which ] ++
-    optional enableNvidiaCgToolkit nvidia_cg_toolkit ++
-    optional withVulkan vulkan-loader ++
-    optionals stdenv.isDarwin [ libobjc AppKit Foundation ] ++
-    optionals stdenv.isLinux [
+    lib.optional enableNvidiaCgToolkit nvidia_cg_toolkit ++
+    lib.optional withVulkan vulkan-loader ++
+    lib.optionals stdenv.isDarwin [ libobjc AppKit Foundation ] ++
+    lib.optionals stdenv.isLinux [
       alsa-lib
-      libdrm
-      libpulseaudio
-      libv4l
       libX11
       libXdmcp
       libXext
       libXxf86vm
+      libdrm
+      libpulseaudio
+      libv4l
+      libxkbcommon
       mesa
       udev
       wayland
-      libxkbcommon
     ];
 
   enableParallelBuilding = true;
 
   configureFlags = lib.optionals stdenv.isLinux [ "--enable-kms" "--enable-egl" ];
 
-  postInstall = optionalString withVulkan ''
+  postInstall = ''
     mkdir -p $out/share/libretro/info
     # TODO: ideally each core should have its own core information
-    cp -r ${libretroSuperSrc}/* $out/share/libretro/info
-    wrapProgram $out/bin/retroarch --prefix LD_LIBRARY_PATH ':' ${vulkan-loader}/lib
+    cp -r ${libretroCoreInfo}/* $out/share/libretro/info
+  '' + lib.optionalString (runtimeLibs != [ ]) ''
+    wrapProgram $out/bin/retroarch \
+      --prefix LD_LIBRARY_PATH ':' ${lib.makeLibraryPath runtimeLibs}
   '';
 
   preFixup = "rm $out/bin/retroarch-cg2glsl";
 
-  meta = {
+  meta = with lib; {
     homepage = "https://libretro.com";
     description = "Multi-platform emulator frontend for libretro cores";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
+    changelog = "https://github.com/libretro/RetroArch/blob/v${version}/CHANGES.md";
     maintainers = with maintainers; [ MP2E edwtjo matthewbauer kolbycrouch thiagokokada ];
     # FIXME: exits with error on macOS:
     # No Info.plist file in application bundle or no NSPrincipalClass in the Info.plist file, exiting
diff --git a/pkgs/misc/emulators/retroarch/hashes.json b/pkgs/misc/emulators/retroarch/hashes.json
index 4f01bcf8b470b..1280f25047d89 100644
--- a/pkgs/misc/emulators/retroarch/hashes.json
+++ b/pkgs/misc/emulators/retroarch/hashes.json
@@ -3,120 +3,103 @@
         "owner": "libretro",
         "repo": "libretro-atari800",
         "rev": "478a8ec99a7f8436a39d5ac193c5fe313233ee7b",
-        "sha256": "LJpRegJVR2+sS1UmTTpVest0rMrNDBMXmj/jRFVglWI=",
-        "fetchSubmodules": false
+        "sha256": "LJpRegJVR2+sS1UmTTpVest0rMrNDBMXmj/jRFVglWI="
     },
     "beetle-gba": {
         "owner": "libretro",
         "repo": "beetle-gba-libretro",
         "rev": "38182572571a48cb58057cde64b915237c4e2d58",
-        "sha256": "4xnXWswozlcXBNI1lbGSNW/gAdIeLLO9Bf1SxOFLhSo=",
-        "fetchSubmodules": false
+        "sha256": "4xnXWswozlcXBNI1lbGSNW/gAdIeLLO9Bf1SxOFLhSo="
     },
     "beetle-lynx": {
         "owner": "libretro",
         "repo": "beetle-lynx-libretro",
-        "rev": "24ca629d50de752861684a83cc9bcee96313f9e1",
-        "sha256": "LPt3JT0lyKK73yNIxvR1eUuzOkLKa8IkRA4cchhfljA=",
-        "fetchSubmodules": false
+        "rev": "8930e88a4342945c023cbf713031a65de11a8e75",
+        "sha256": "bg/a+9ZJNTUIuEHKrFIss8sia3JWMWXIXbxha5qKVeI="
     },
     "beetle-ngp": {
         "owner": "libretro",
         "repo": "beetle-ngp-libretro",
         "rev": "f7c393184e5228c3d3807ee74c951c4c549107d8",
-        "sha256": "7vki8VkwOzxwMZcUxekg1DFSskV7VNQ1SRaU3M1xHZ0=",
-        "fetchSubmodules": false
+        "sha256": "7vki8VkwOzxwMZcUxekg1DFSskV7VNQ1SRaU3M1xHZ0="
     },
     "beetle-pce-fast": {
         "owner": "libretro",
         "repo": "beetle-pce-fast-libretro",
-        "rev": "6f63eab86abab335c1e337d4e8c1582bceda5708",
-        "sha256": "QRw7FDd7rOTsTW4qGr2isvFHmobz7GgXUt84q0x2S/c=",
-        "fetchSubmodules": false
+        "rev": "0f43fd4dc406e7da6bbdc13b6eb1c105d6072f8a",
+        "sha256": "u1lOgXEYuGAF4sOLdsBzcA4/A5Yz1b82TjFBiM57yE4="
     },
     "beetle-pcfx": {
         "owner": "libretro",
         "repo": "beetle-pcfx-libretro",
         "rev": "6d2b11e17ad5a95907c983e7c8a70e75508c2d41",
-        "sha256": "WG2YpCYdL/MxW5EbiP2+1VtAjbX7yYDIcLXhb+YySI4=",
-        "fetchSubmodules": false
+        "sha256": "WG2YpCYdL/MxW5EbiP2+1VtAjbX7yYDIcLXhb+YySI4="
     },
     "beetle-psx": {
         "owner": "libretro",
         "repo": "beetle-psx-libretro",
-        "rev": "39be47bc9958258cf3b6f3c68d9485ea99971cf8",
-        "sha256": "q6aKSfG1A2AV2MppZFujDwqqZu26R7b0t9KyAETQTyU=",
-        "fetchSubmodules": false
+        "rev": "297970e4ff080ea80a5670209aeea4fde8059020",
+        "sha256": "6kZher3/+5ywXyC3n9R9JVA4IVLZBaSfAcWEKp2SsDE="
     },
     "beetle-saturn": {
         "owner": "libretro",
         "repo": "beetle-saturn-libretro",
         "rev": "e6ba71f8bcc647b646d94dec812b24d00c41cf3f",
-        "sha256": "tDbV+CsDr4bowBbJ/C8J9scfCryTAXxz58pGaUHU5yU=",
-        "fetchSubmodules": false
+        "sha256": "tDbV+CsDr4bowBbJ/C8J9scfCryTAXxz58pGaUHU5yU="
     },
     "beetle-snes": {
         "owner": "libretro",
         "repo": "beetle-bsnes-libretro",
         "rev": "bc867656d7438aaffc6818b3b92350587bc78a47",
-        "sha256": "TyUCRGK+uyXowDjXW9/4m+zL8Vh/3GGsX1eznrTCbAg=",
-        "fetchSubmodules": false
+        "sha256": "TyUCRGK+uyXowDjXW9/4m+zL8Vh/3GGsX1eznrTCbAg="
     },
     "beetle-supergrafx": {
         "owner": "libretro",
         "repo": "beetle-supergrafx-libretro",
-        "rev": "cd800d701f0b8f4dcb1654a5cb5b24ee09dd9257",
-        "sha256": "vnskn2+65cKQjaXO9GJnKNppi8TWHUO+uZdt2BYGN9Y=",
-        "fetchSubmodules": false
+        "rev": "7bae6fb1a238f1e66b129c7c70c7cb6dbdc09fa1",
+        "sha256": "OAJ86XrwjDrgCjrk0RHMn8sHYaJFhJhLaQnhaEVXN38="
     },
     "beetle-vb": {
         "owner": "libretro",
         "repo": "beetle-vb-libretro",
         "rev": "aa77198c6c60b935503b5ea2149b8ff7598344da",
-        "sha256": "ShsMYc2vjDoiN1yCCoSl91P5ecYJDj/V+VWUYuYVxas=",
-        "fetchSubmodules": false
+        "sha256": "ShsMYc2vjDoiN1yCCoSl91P5ecYJDj/V+VWUYuYVxas="
     },
     "beetle-wswan": {
         "owner": "libretro",
         "repo": "beetle-wswan-libretro",
-        "rev": "ea00c1d8eb9894538dd8758975cd9d6ae99ead1e",
-        "sha256": "0ptDbq3X8EGNwPePr4H0VQkgmXXIP50dNpITX8DX6w8=",
-        "fetchSubmodules": false
+        "rev": "5717c101b314f64d4c384c23b1934d09fcbf82bb",
+        "sha256": "Nfezb6hja1qHv1fMGU9HMbbb56GHAfe/zIgRqrzz334="
     },
     "blastem": {
         "owner": "libretro",
         "repo": "blastem",
         "rev": "0786858437ed71996f43b7af0fbe627eb88152fc",
-        "sha256": "uEP5hSgLAle1cLv/EM7D11TJMAggu7pqWxfrUt3rhEg=",
-        "fetchSubmodules": false
+        "sha256": "uEP5hSgLAle1cLv/EM7D11TJMAggu7pqWxfrUt3rhEg="
     },
     "bluemsx": {
         "owner": "libretro",
         "repo": "bluemsx-libretro",
-        "rev": "cfc1df4d026387883f21994bcce603c4a6be8730",
-        "sha256": "ix/AyYNer1R73ZJW1reXyj7geBr3ThrqXf5Ki5yrz9A=",
-        "fetchSubmodules": false
+        "rev": "5dfdb75106e10ef8bc21b8bcea1432ecbd590b2a",
+        "sha256": "0D0xufIt3qmQ+/UjyWynoLyLDSza8cTrFp3UwGWBXko="
     },
     "bsnes": {
         "owner": "libretro",
         "repo": "bsnes-libretro",
-        "rev": "44d97b17d06a10ae17d97a91a48e5acd10ec6db4",
-        "sha256": "VNSeTRryrX2/V38GGXTRLuDEQqDUmX2DUOHAKLxJezU=",
-        "fetchSubmodules": false
+        "rev": "1b2987ab1e9caf5c8d7550da01ffa08edff2f128",
+        "sha256": "l6Jvn0ZgFaKSWjiV2bN9aemxLyfnNEQFc+HS1/MuiaY="
     },
     "bsnes-hd": {
         "owner": "DerKoun",
         "repo": "bsnes-hd",
         "rev": "65f24e56c37f46bb752190024bd4058e64ad77d1",
-        "sha256": "1dk2i71NOLeTTOZjVll8wrkr5dIH5bGSGUeeHqWjZHE=",
-        "fetchSubmodules": false
+        "sha256": "1dk2i71NOLeTTOZjVll8wrkr5dIH5bGSGUeeHqWjZHE="
     },
     "bsnes-mercury": {
         "owner": "libretro",
         "repo": "bsnes-mercury",
         "rev": "d232c6ea90552f5921fec33a06626f08d3e18b24",
-        "sha256": "fpl7hmqz+Ca+9ZeM6E1JSikbiu+NJUU8xXtyl6Dd9Gg=",
-        "fetchSubmodules": false
+        "sha256": "fpl7hmqz+Ca+9ZeM6E1JSikbiu+NJUU8xXtyl6Dd9Gg="
     },
     "citra": {
         "owner": "libretro",
@@ -127,438 +110,390 @@
         "leaveDotGit": true,
         "deepClone": true
     },
+    "citra-canary": {
+        "owner": "libretro",
+        "repo": "citra",
+        "rev": "5401990a9be46e4497abc92db3d5f2042674303d",
+        "sha256": "JKKJBa840i7ESwMrB5tKamCBmrYvvoEUdibqxkWg5Gc=",
+        "fetchSubmodules": true,
+        "leaveDotGit": true,
+        "deepClone": true
+    },
     "desmume": {
         "owner": "libretro",
         "repo": "desmume",
         "rev": "7ea0fc96804fcd9c8d33e8f76cf64b1be50cc5ea",
-        "sha256": "4S/CirRVOBN6PVbato5X5fu0tBn3Fu5FEAbdf3TBqng=",
-        "fetchSubmodules": false
+        "sha256": "4S/CirRVOBN6PVbato5X5fu0tBn3Fu5FEAbdf3TBqng="
     },
     "desmume2015": {
         "owner": "libretro",
         "repo": "desmume2015",
         "rev": "cd89fb7c48c735cb321311fbce7e6e9889dda1ce",
-        "sha256": "9Ou/n6pxRjJOp/Ybpyg4+Simosj2X26kLZCMEqeVL6U=",
-        "fetchSubmodules": false
+        "sha256": "9Ou/n6pxRjJOp/Ybpyg4+Simosj2X26kLZCMEqeVL6U="
     },
     "dolphin": {
         "owner": "libretro",
         "repo": "dolphin",
-        "rev": "48066c84560322219be4080bca125cc03d48f411",
-        "sha256": "IPKcqges/BX6KFQSirLpmsI2+7/cjcrySK+YWaA1cuo=",
-        "fetchSubmodules": false
+        "rev": "3b19e6d1781584f3e1fd2922b48b8ae6b3bcb686",
+        "sha256": "EcgJhkMzdZfYRwSpU1OcsJqQyq4V8dq5PndVufZFy7k="
     },
     "dosbox": {
         "owner": "libretro",
         "repo": "dosbox-libretro",
         "rev": "aa71b67d54eaaf9e41cdd3cb5153d9cff0ad116e",
-        "sha256": "L0Y67UROjldnXUlLQ+Xbd7RHLb96jDxlB/k+LR9Kbas=",
-        "fetchSubmodules": false
+        "sha256": "L0Y67UROjldnXUlLQ+Xbd7RHLb96jDxlB/k+LR9Kbas="
     },
     "eightyone": {
         "owner": "libretro",
         "repo": "81-libretro",
-        "rev": "7e8153cd5b88cd5cb23fb0c03c04e7c7d8a73159",
-        "sha256": "Y+RU3T4qUmV44IZ5OBNhtC+f/DX6njOCF0tsl8MN4qM=",
-        "fetchSubmodules": false
+        "rev": "86d7d5afe98f16006d4b1fdb99d281f1d7ea6b2f",
+        "sha256": "QN7anzqv1z8SgY8dlkjr8Ns7reGWc7hTneiRmorXZSk="
     },
     "fbalpha2012": {
         "owner": "libretro",
         "repo": "fbalpha2012",
         "rev": "23f98fc7cf4f2f216149c263cf5913d2e28be8d4",
-        "sha256": "dAInW6tTV7oXcPhKMnHWcmQaWQCTqRrYHD2yuaI1I1w=",
-        "fetchSubmodules": false
+        "sha256": "dAInW6tTV7oXcPhKMnHWcmQaWQCTqRrYHD2yuaI1I1w="
     },
     "fbneo": {
         "owner": "libretro",
         "repo": "fbneo",
-        "rev": "8e9f73ab28fc6176f0bde53eac0f0b561b065e16",
-        "sha256": "gv1Yuo0wFB6MmCtnajM71EK2GEzd5X29VYY2yFcB6Uk=",
-        "fetchSubmodules": false
+        "rev": "4ecf2782a4eee042d1e126d1671e5231b6437b6e",
+        "sha256": "15MYI03r45mmRsXCwzWnjfBdtzSaHLp7DfmcACQFTvU="
     },
     "fceumm": {
         "owner": "libretro",
         "repo": "libretro-fceumm",
-        "rev": "02b5bbf26981b5ae0da81a9f312cb51ed64112b8",
-        "sha256": "zsY0RyWLJD2Zf1qDzuMbbNxV630TAIt3KqjLWXR4lgQ=",
-        "fetchSubmodules": false
+        "rev": "eb06d17e7912780a3ee117ae73bc50c3948c761c",
+        "sha256": "aBqskJtK1bFBjwaoo9hilr33fyAWsdj5+hFC3WY3sKk="
     },
     "flycast": {
         "owner": "libretro",
         "repo": "flycast",
-        "rev": "041297cc6c266b1185a4414271a10732c946239c",
-        "sha256": "htuUfzwlSbhh8CxMEeE8HqNqaJupav4cBfXMwMEKim8=",
-        "fetchSubmodules": false
+        "rev": "0d8c6a2e717c002bc76ce26a152353b004fb15e7",
+        "sha256": "t2RGHAyYXeHVqTqqhayOUWx/msFN9q/Z9P2wXJUtQTI="
     },
     "fmsx": {
         "owner": "libretro",
         "repo": "fmsx-libretro",
-        "rev": "cd2d59a9b820a0abf038fa7e279965da34132960",
-        "sha256": "8mOcTTETgDWGDV5q9n3UupMsbPXEqv0AbQGdgOSKfBk=",
-        "fetchSubmodules": false
+        "rev": "dfcda056896576c6a1c75c002a82d0e6c1160ccc",
+        "sha256": "9ANZ1suAQcYOhqSchQ20Yuqvgw06j5Sd3Z1fjrp2UFc="
     },
     "freeintv": {
         "owner": "libretro",
         "repo": "freeintv",
-        "rev": "0058a09492c5c17a4fa59ebb3601ce66844b3b25",
-        "sha256": "DA6eAl9ZR84Ow8rH9q/DVbEU83nmidwMy3kqk+hWWLQ=",
-        "fetchSubmodules": false
+        "rev": "d58caf23ed1438a1db58f8d6ac24ca521b411d3b",
+        "sha256": "nUV+A3Zh66M1K5NDK0ksNF5H1HS3AQdeYLaGfaA34n4="
     },
     "gambatte": {
         "owner": "libretro",
         "repo": "gambatte-libretro",
-        "rev": "eb6f26a57ff6c35154950da20f83ddf1d44d4ca6",
-        "sha256": "boPCbMX1o1i+rL0dnY0M3pzY1D6uzoYRN21C1zXXOJw=",
-        "fetchSubmodules": false
+        "rev": "79bb2e56d034c30d8dcac02b6c34a59ec8fe91bc",
+        "sha256": "H+Hkeep18whaSYbyG8DcaJqsVVu7DEX9T28pkfXfyCg="
     },
     "genesis-plus-gx": {
         "owner": "libretro",
         "repo": "Genesis-Plus-GX",
-        "rev": "8a7d4c87d2e6936d64c1251c6f968a93cc87cce5",
-        "sha256": "SX0jA8VuN4LNVhR/aw3gF0uF7+c9McEiHnNmxbPtE5g=",
-        "fetchSubmodules": false
+        "rev": "88c9ad000ba553b9c819d9eb259f741fabd877bb",
+        "sha256": "8ZCMq8/sk5TqwTNWMfDevZHRPSOM1PJ57kiZZ7qfQxA="
     },
     "gpsp": {
         "owner": "libretro",
         "repo": "gpsp",
-        "rev": "be3fdfd0b4e0529d7e00c4e16eb26d92fe0559a6",
-        "sha256": "GX3iAVNfznxa/3aIHuopFFNsdz2b22BiQyycioH1TGw=",
-        "fetchSubmodules": false
+        "rev": "e554360dd3ed283696fc607877024a219248b735",
+        "sha256": "ImsqB89XmjF8nvs7j8IZVvFltgZRYvF2L7LTcJG/xCU="
     },
     "gw": {
         "owner": "libretro",
         "repo": "gw-libretro",
         "rev": "0f1ccca156388880bf4507ad44741f80945dfc6f",
-        "sha256": "BVpx8pL224J2u9W6UDrxzfEv4qIsh6wrf3bDdd1R850=",
-        "fetchSubmodules": false
+        "sha256": "BVpx8pL224J2u9W6UDrxzfEv4qIsh6wrf3bDdd1R850="
     },
     "handy": {
         "owner": "libretro",
         "repo": "libretro-handy",
-        "rev": "ebcbb8be5d174306ffb091b7657637b910fc35d2",
-        "sha256": "mkPgOFfYDICmFu0nZ+9kfbrmSmPpNdC9lvci0MsXIwo=",
-        "fetchSubmodules": false
+        "rev": "3b02159ba32aa37c1b93d7f7eac56b28e3715645",
+        "sha256": "mBKK+pdWgkxYkV4OOiBrlWbLAMugDX0fd6QRh0D7JYU="
     },
     "hatari": {
         "owner": "libretro",
         "repo": "hatari",
-        "rev": "cea06eebf695b078fadc0e78bb0f2b2baaca799f",
-        "sha256": "Z05IGubwdgg7X/e2ZG49zVfXuITM59HW/1gicdpDXls=",
-        "fetchSubmodules": false
+        "rev": "79d128888ca3efdd27d639a35edf72a9bc81a798",
+        "sha256": "du2xORgAXTSQArqNuFa5gjticgZ+weqySFHVz2Y2qzI="
     },
     "mame": {
         "owner": "libretro",
         "repo": "mame",
-        "rev": "031ac783585e7d5156a6f87a9ba20d88caf94ad6",
-        "sha256": "hLMQw5jvJTxojGwCY7iUDHcJdLZjcLzEDhW576TerJI=",
-        "fetchSubmodules": false
+        "rev": "2f9c793a77222ae46266c71f64d491cf7870dc1e",
+        "sha256": "WAhm6QMMVbnuSIK4PW7Ek+AAkMs7s95gGb6ERzlon0w="
     },
     "mame2000": {
         "owner": "libretro",
         "repo": "mame2000-libretro",
         "rev": "4793742b457945afb74053c8a895e6ff0b36b033",
-        "sha256": "DA9fZTic/jlYzSAIiOjfhohyEyQZiBNdIa8YCZoKZNs=",
-        "fetchSubmodules": false
+        "sha256": "DA9fZTic/jlYzSAIiOjfhohyEyQZiBNdIa8YCZoKZNs="
     },
     "mame2003": {
         "owner": "libretro",
         "repo": "mame2003-libretro",
-        "rev": "80a4ca5c0db69be9fe9b65dcaa7ad45930c989b8",
-        "sha256": "ZViVX+Z40ctxWGiQtfmRUDbUT7EYHqTNDhwWbKBjTEQ=",
-        "fetchSubmodules": false
+        "rev": "dbda6ddacdd8962cfea25000421dba398e551aef",
+        "sha256": "RSL3iZZEJCxOtsJqjnM5ZiT0yM2nAgg/Ujq6FBLMHkk="
     },
     "mame2003-plus": {
         "owner": "libretro",
         "repo": "mame2003-plus-libretro",
-        "rev": "8dc4cfa741db8136e43c4a0eabdc1977fd88ccdb",
-        "sha256": "gcsL2xfF+q5ECN9u4JaKR8rimCXLt/bVSzybLo2ln3Q=",
-        "fetchSubmodules": false
+        "rev": "9c0c954f0f88730f44abdd4d414691fef6b1cd7c",
+        "sha256": "NLdHc0VuZhqQhAzv+8kipc0mhqT2BNaJeLYZUx7DwRU="
     },
     "mame2010": {
         "owner": "libretro",
         "repo": "mame2010-libretro",
         "rev": "932e6f2c4f13b67b29ab33428a4037dee9a236a8",
-        "sha256": "HSZRSnc+0300UE9fPcUOMrXABlxHhTewkFPTqQ4Srxs=",
-        "fetchSubmodules": false
+        "sha256": "HSZRSnc+0300UE9fPcUOMrXABlxHhTewkFPTqQ4Srxs="
     },
     "mame2015": {
         "owner": "libretro",
         "repo": "mame2015-libretro",
-        "rev": "ef41361dc9c88172617f7bbf6cd0ead4516a3c3f",
-        "sha256": "HZrw9KKwYAJyU4NH1BEvuod/TK/nqjN03qJuSX8JP8o=",
-        "fetchSubmodules": false
+        "rev": "e6a7aa4d53726e61498f68d6b8e2c092a2169fa2",
+        "sha256": "IgiLxYYuUIn3YE+kQCXzgshES2VNpUHn0Qjsorw0w/s="
     },
     "mame2016": {
         "owner": "libretro",
         "repo": "mame2016-libretro",
-        "rev": "69711c25c14f990b05fdce87fb92f3b5c312ec1e",
-        "sha256": "QdSgWcZIMDnmYAKAnvwNRPBYRaSMTcRpI7Vd04Xv3Is=",
-        "fetchSubmodules": false
+        "rev": "bcff8046328da388d100b1634718515e1b15415d",
+        "sha256": "XxnX39+0VUbG9TF8+wFEFVxHCm2rzrJsIQryyNsF6zU="
     },
     "melonds": {
         "owner": "libretro",
         "repo": "melonds",
-        "rev": "1ad65728476d7b9594c4ff91a1ba60460a0a30e7",
-        "sha256": "EBV8F2MCmWuxWKMOXipTZKRGHqp8sb/ojK3JpGZe818=",
-        "fetchSubmodules": false
+        "rev": "0053daa700018657bf2e47562b3b4eb86f9b9d03",
+        "sha256": "K6ZYuk7cE+ioq1rLRyAKNQxddCYIOXLU5SXT7sYgGnc="
     },
     "mesen": {
         "owner": "libretro",
         "repo": "mesen",
         "rev": "094d82bf724448426acbaad45e83bc38994e32f6",
-        "sha256": "9+AqZRv8lugNNa+ZZzIPJNO87J1aBUEiOggL8aYno1M=",
-        "fetchSubmodules": false
+        "sha256": "9+AqZRv8lugNNa+ZZzIPJNO87J1aBUEiOggL8aYno1M="
     },
     "mesen-s": {
         "owner": "libretro",
         "repo": "mesen-s",
         "rev": "42eb0e8ad346608dae86feb8a04833d16ad21541",
-        "sha256": "q6zeoNiZtFy8ZYls9/E+O7o9BYTcVcmYjbJA48qiraU=",
-        "fetchSubmodules": false
+        "sha256": "q6zeoNiZtFy8ZYls9/E+O7o9BYTcVcmYjbJA48qiraU="
     },
     "meteor": {
         "owner": "libretro",
         "repo": "meteor-libretro",
         "rev": "e533d300d0561564451bde55a2b73119c768453c",
-        "sha256": "zMkgzUz2rk0SD5ojY4AqaDlNM4k4QxuUxVBRBcn6TqQ=",
-        "fetchSubmodules": false
+        "sha256": "zMkgzUz2rk0SD5ojY4AqaDlNM4k4QxuUxVBRBcn6TqQ="
     },
     "mgba": {
         "owner": "libretro",
         "repo": "mgba",
-        "rev": "c33adfa66b4b3f72c939c27ff0668ebeada75086",
-        "sha256": "naZkfIghS4mIT5LT2x1E8W9/bju9pLZb8RfEHOlx7QI=",
-        "fetchSubmodules": false
+        "rev": "43da6e1d54ad0395f474346db88fe59a4c0aa451",
+        "sha256": "JxiWIBQi1fZoBV2lvx2r7iIvlQm0BYuJFz0TsxngUT8="
     },
     "mupen64plus": {
         "owner": "libretro",
         "repo": "mupen64plus-libretro-nx",
-        "rev": "018ee72b4fe247b38ed161033ad12a19bb936f00",
-        "sha256": "vJz9S9lUgJp8O0NgJF6/EYymFqwZefvrT/HJLpMhgEk=",
-        "fetchSubmodules": false
+        "rev": "350f90a73cf0f5d65357ce982ccbaa3b22fc3569",
+        "sha256": "9Hq93+dvO60LBbcXLIHsTq243QThicI0rVJW3tou/5Y="
     },
     "neocd": {
         "owner": "libretro",
         "repo": "neocd_libretro",
         "rev": "83d10f3be10fff2f28aa56fc674c687528cb7f5c",
-        "sha256": "yYZGoMsUfE8cpU9i826UWQGi1l0zPJPcBDb2CINxGeQ=",
-        "fetchSubmodules": false
+        "sha256": "yYZGoMsUfE8cpU9i826UWQGi1l0zPJPcBDb2CINxGeQ="
     },
     "nestopia": {
         "owner": "libretro",
         "repo": "nestopia",
-        "rev": "21e2cec7a13f0a09f493637de289e59386e2fd36",
-        "sha256": "XKEY43wtdE78XN2TnT8AW80irnsbIwPzQ1EkGXOrsG4=",
-        "fetchSubmodules": false
+        "rev": "8af07b7ab49e45495cbc4ba73cd2f879d9908b55",
+        "sha256": "Z447flP1L/7gWEovWhbBearPKzsZNnGE2cz7jH7kEnY="
     },
     "np2kai": {
         "owner": "AZO234",
         "repo": "NP2kai",
-        "rev": "3e8fedc7c1c6f68faa26589187512474a766ee9e",
-        "sha256": "5bfh/aZOqfHz1x2s5AzZo4zq9qA4w10d9vYuuILdKJQ=",
+        "rev": "30d4b6959c48db039207a37e278c868c7737ed69",
+        "sha256": "uIcgbpcEz6yUKrBe0r84Yq2ihWfT0+TdUTIF5kMT5mI=",
         "fetchSubmodules": true
     },
     "o2em": {
         "owner": "libretro",
         "repo": "libretro-o2em",
         "rev": "f1050243e0d5285e7769e94a882b0cf39d2b7370",
-        "sha256": "wD+iJ8cKC8jYFZ6OVvX71uO7sSh5b/LLoc5+g7f3Yyg=",
-        "fetchSubmodules": false
+        "sha256": "wD+iJ8cKC8jYFZ6OVvX71uO7sSh5b/LLoc5+g7f3Yyg="
     },
     "opera": {
         "owner": "libretro",
         "repo": "opera-libretro",
-        "rev": "aa868e656b518567a95b11b2f14c5db8001b11a0",
-        "sha256": "YUzfHtgKCzgxZwslFxwmAN0hg+MIGLAYBAI7RUCIW40=",
-        "fetchSubmodules": false
+        "rev": "3849c969c64b82e622a7655b327fa94bc5a4c7cc",
+        "sha256": "McSrvjrYTemqAAnfHELf9qXC6n6Dg4kNsUDA7e2DvkE="
     },
     "parallel-n64": {
         "owner": "libretro",
         "repo": "parallel-n64",
-        "rev": "0a67445ce63513584d92e5c57ea87efe0da9b3bd",
-        "sha256": "rms+T8JOp/TJ/T5a5uLj8lu1LLz/GAsJZ7UbK42C9yU=",
-        "fetchSubmodules": false
+        "rev": "28c4572c9a09447b3bf5ed5fbd3594a558bc210d",
+        "sha256": "by8NvKjVT9OrgVhNtv5E4Fqmdva42lWV8UQi0SKfBL8="
     },
     "pcsx2": {
         "owner": "libretro",
         "repo": "pcsx2",
-        "rev": "26890da6f34176e70289c2f3004cd5660be0035b",
-        "sha256": "PocOjidZyv30kIjOq++9DZdCNBXbCbyd0vepjMFXflQ=",
-        "fetchSubmodules": false
+        "rev": "3ef2a36b0608e9dcae808c7ef01c7a760d628735",
+        "sha256": "ezqVntonhGfejiGx9cxQEnjsXEHqT++M1fO0Jz1t/Us="
     },
     "pcsx_rearmed": {
         "owner": "libretro",
         "repo": "pcsx_rearmed",
-        "rev": "589bd99ba31de8216624dbf0cbbc016f0663ce3d",
-        "sha256": "6OtsWXTo6ca0M/cofpvWPEd0Tqy3XDa8vaa7OUTxnMU=",
-        "fetchSubmodules": false
+        "rev": "12fc12797064599dfca2d44043d5c02a949711ef",
+        "sha256": "SXmNfHGyk+KChiwkKlA+d/oezzp/7p1DJY+w2bES6kg="
     },
     "picodrive": {
         "owner": "libretro",
         "repo": "picodrive",
-        "rev": "d44605c269e645a6734089ac1f95116a5ce57e0b",
-        "sha256": "Z4d+7Hf55raMAOIA2jrj6M99XhLTZqthHxi89ba+xEo=",
+        "rev": "50b8b47838fea8096535d543caaacdcc56aa7df2",
+        "sha256": "C1Htwel5PHZcjkKmjiiN/QgRofMhqlArxktOSqoTxTc=",
         "fetchSubmodules": true
     },
     "play": {
         "owner": "jpd002",
         "repo": "Play-",
-        "rev": "65492042f0b2146d81decc8f63466362dd6122bc",
-        "sha256": "fpiOT6fXvjGWmnKwncV2NyuYeT2ACE8LLyisKsWqydQ=",
+        "rev": "fd6a5161030215090d48a8036680f57914c71bb0",
+        "sha256": "g6UBRV7biLjPBXdlejjXUSk3v1wrsYWA3quZlpPj23U=",
         "fetchSubmodules": true
     },
     "ppsspp": {
         "owner": "hrydgard",
         "repo": "ppsspp",
-        "rev": "3e5511b6091b8af76d124d101f3d84ccc1021f30",
-        "sha256": "FCaKEdu55c7zxh9Mdi+xAFj8v5/AoT2AzYYEErHd9sQ=",
+        "rev": "54d63cc1daf2a0cdc812e9af85854bb4ae5ef399",
+        "sha256": "iB/8zf4FYdsbiKZVq/YISTEQSoo1kme1uZsyuhbOcoc=",
         "fetchSubmodules": true
     },
     "prboom": {
         "owner": "libretro",
         "repo": "libretro-prboom",
-        "rev": "de19b1124559423244b4d677fd6006444d418c0e",
-        "sha256": "vt43eYYGGUotxYeotUfp/9fvWnKJLJtrvo+GNavH3QY=",
-        "fetchSubmodules": false
+        "rev": "af1b5bf89d01095326ee27e178f9257f9e728873",
+        "sha256": "pvTUv4E+wBOYfjz8Ph11CK4E7rIm1T+u90TWDNXEBIU="
     },
     "prosystem": {
         "owner": "libretro",
         "repo": "prosystem-libretro",
         "rev": "89e6df7b60d151310fedbe118fb472959a9dcd61",
-        "sha256": "uxgKddS53X7ntPClE8MGezBAG+7OAFvMXTnyKpOOau0=",
-        "fetchSubmodules": false
+        "sha256": "uxgKddS53X7ntPClE8MGezBAG+7OAFvMXTnyKpOOau0="
     },
     "quicknes": {
         "owner": "libretro",
         "repo": "QuickNES_Core",
-        "rev": "6444b56659ed887c3492831da188fbc42e3e8ca2",
-        "sha256": "FHV9oM4rmsCm7GsD5TKyVbBCN7uc9GRU5YGQE+2SiRM=",
-        "fetchSubmodules": false
+        "rev": "743e6e06db246c5edab27c738c7a573d83140485",
+        "sha256": "NYmP+HFeZGUeIRaT3bzdpWw9cmEAaBkA3EGnw/zpDXA="
     },
     "sameboy": {
         "owner": "libretro",
         "repo": "sameboy",
-        "rev": "685c6c8b497260f53a984d5c4398ef2b25253104",
-        "sha256": "OosKYG38NvfwrLSEhAe2CrUx8PiSv4OhkmrVUO6l1qc=",
-        "fetchSubmodules": false
+        "rev": "b154b7d3d885a3cf31203f0b8f50d3b37c8b742b",
+        "sha256": "tavGHiNpRiPkibi66orMf93cnCqQCD8XhSl/36nl/9M="
     },
     "scummvm": {
         "owner": "libretro",
         "repo": "scummvm",
-        "rev": "63e57573a9ffe71a1083ff46d9cd210203b87afb",
-        "sha256": "LTFe8HIX9OSJuJj5YfPigrPAE8nrbSpDckh0hj3w52s=",
-        "fetchSubmodules": false
+        "rev": "80cb7269a33b233dcea27d8d01df084b0d35c80a",
+        "sha256": "5kMWM8d5aBbT7TseNyaYxw7VDkrLL0G+KUvJcUboQgA="
     },
     "smsplus-gx": {
         "owner": "libretro",
         "repo": "smsplus-gx",
         "rev": "3f1ffede55bcfe0168caa484a00bf041ab591abf",
-        "sha256": "fD+grzMPk4uXvmzGf+f9Mor0eefBLHIumCydsSHUsck=",
-        "fetchSubmodules": false
+        "sha256": "fD+grzMPk4uXvmzGf+f9Mor0eefBLHIumCydsSHUsck="
     },
     "snes9x": {
         "owner": "snes9xgit",
         "repo": "snes9x",
-        "rev": "cf1a5901fccafdaead225b0a5e55ff74fdcf9678",
-        "sha256": "p6qTCZnZSV5vgpZglI/HMi/wOfu0hG2TuvOQhQHeo2s=",
-        "fetchSubmodules": false
+        "rev": "34b6160805c4995a8edf5f9b3328f5e492ae4c44",
+        "sha256": "YRRqtd5iu2evRk+7SyQpqpxqTaEFOkDZ/XQHEjpSBcM="
     },
     "snes9x2002": {
         "owner": "libretro",
         "repo": "snes9x2002",
         "rev": "e16cb16efa00765b1bc3b8fee195680efb1542c7",
-        "sha256": "0dhLpNy+NUE3mE/ejEwbq3G28/a2HONS5NPslI5LOEc=",
-        "fetchSubmodules": false
+        "sha256": "0dhLpNy+NUE3mE/ejEwbq3G28/a2HONS5NPslI5LOEc="
     },
     "snes9x2005": {
         "owner": "libretro",
         "repo": "snes9x2005",
-        "rev": "88a46f7c085f6e2accc4c777e264b9b5cd41cf0e",
-        "sha256": "5wVKK3xhCXkvonwQRyVtd8Afggb0gv8Sv7PEYkDfKRE=",
-        "fetchSubmodules": false
+        "rev": "77e9cd293c791b47f4397da0a47242b329243cb5",
+        "sha256": "iHGfZIGzE4n3EHrVRxTULuYKsOse5NcJftmasoJFwFo="
     },
     "snes9x2010": {
         "owner": "libretro",
         "repo": "snes9x2010",
         "rev": "714b1c8e08c7580430190119b07e793405773ac2",
-        "sha256": "yKSQEE+lT4V2V1XqemfziHuIt79TcvC0ranU9ounTXo=",
-        "fetchSubmodules": false
+        "sha256": "yKSQEE+lT4V2V1XqemfziHuIt79TcvC0ranU9ounTXo="
     },
     "stella": {
         "owner": "stella-emu",
         "repo": "stella",
-        "rev": "66e2c857c2bd85e778c51ae1cb99fb7669c7af17",
-        "sha256": "RWNEq5qwShbBKIx5bif4NDs/uJES2wf1CVSxZbb6beI=",
-        "fetchSubmodules": false
+        "rev": "1db9de390a331a7d55c35591c93d9e89184cce5f",
+        "sha256": "vICKxx+UBYvMzZ3a3F86yzJRKfdo0jMxa27wsUX0KZw="
     },
     "stella2014": {
         "owner": "libretro",
         "repo": "stella2014-libretro",
         "rev": "934c7a2a44ef038af529b68950ddba4f7ea3478e",
-        "sha256": "s7LQ47sAPTyk4COONk4qnebxCq78zGLIjh3Y2+1fIak=",
-        "fetchSubmodules": false
+        "sha256": "s7LQ47sAPTyk4COONk4qnebxCq78zGLIjh3Y2+1fIak="
     },
     "swanstation": {
         "owner": "libretro",
         "repo": "swanstation",
-        "rev": "8951ed1cea4ea65de5529a35e950f1b185e48b6e",
-        "sha256": "27EH4oiYf154DJwm738qPOMCuWOCKD7wuSng3hz/xh0=",
-        "fetchSubmodules": false
+        "rev": "61c5debe60192b0fecd8c15310b2e4c4473f9438",
+        "sha256": "DZJApJnGDMsUhjO35TBc7tMldCGKDPPtrwxPLe0Ey1s="
     },
     "tgbdual": {
         "owner": "libretro",
         "repo": "tgbdual-libretro",
         "rev": "1e0c4f931d8c5e859e6d3255d67247d7a2987434",
-        "sha256": "0wHv9DpKuzJ/q5vERqCo4GBLre2ggClBIWSjGnMLQq8=",
-        "fetchSubmodules": false
+        "sha256": "0wHv9DpKuzJ/q5vERqCo4GBLre2ggClBIWSjGnMLQq8="
     },
     "thepowdertoy": {
         "owner": "libretro",
         "repo": "ThePowderToy",
         "rev": "ac620c0a89a18774c3ad176a8a1bc596df23ff57",
-        "sha256": "C/X1DbmnucRddemEYml2zN3qr5yoXY3b+nvqfpboS0M=",
-        "fetchSubmodules": false
+        "sha256": "C/X1DbmnucRddemEYml2zN3qr5yoXY3b+nvqfpboS0M="
     },
     "tic80": {
         "owner": "libretro",
         "repo": "tic-80",
-        "rev": "bd03e6a548676745e81fa95e60b233b5a56420c2",
-        "sha256": "SXJvWX6Q3BrdajNnT4HIf6H2z7dXXvnXTJXf/TYRw4I=",
+        "rev": "967eb78c3610385a0e6cba8bb5c60ebc3b886d3e",
+        "sha256": "N0QFNTYFVbhWwt2yx5fLM7Dl6pJZPYrt9o3+6rjnWa8=",
         "fetchSubmodules": true
     },
     "vba-m": {
         "owner": "libretro",
         "repo": "vbam-libretro",
         "rev": "254f6effebe882b7d3d29d9e417c6aeeabc08026",
-        "sha256": "vJWjdqJ913NLGL4G15sRPqO/wp9xPsuhUMLUuAbDRKk=",
-        "fetchSubmodules": false
+        "sha256": "vJWjdqJ913NLGL4G15sRPqO/wp9xPsuhUMLUuAbDRKk="
     },
     "vba-next": {
         "owner": "libretro",
         "repo": "vba-next",
         "rev": "b218f48bb27b5d3885fa4076ff325922b5acd817",
-        "sha256": "idqGMbMA9mZlIh0QAba3BxpPDi/bFJJkUbnxV3xMOCo=",
-        "fetchSubmodules": false
+        "sha256": "idqGMbMA9mZlIh0QAba3BxpPDi/bFJJkUbnxV3xMOCo="
     },
     "vecx": {
         "owner": "libretro",
         "repo": "libretro-vecx",
         "rev": "28d6efc8972313903d0802a736ff8c3bc115e78f",
-        "sha256": "VYa8s+HB8IYF+HS6SA+sO5DzpgCtnMGrh88KTVNGICY=",
-        "fetchSubmodules": false
+        "sha256": "VYa8s+HB8IYF+HS6SA+sO5DzpgCtnMGrh88KTVNGICY="
     },
     "virtualjaguar": {
         "owner": "libretro",
         "repo": "virtualjaguar-libretro",
         "rev": "d1b1b28a6ad2518b746e3f7537ec6d66db96ec57",
-        "sha256": "Io25dt80fqIqIxwzF2DK9J5UFz6YCUQoqThcIuxdEBo=",
-        "fetchSubmodules": false
+        "sha256": "Io25dt80fqIqIxwzF2DK9J5UFz6YCUQoqThcIuxdEBo="
     },
     "yabause": {
         "owner": "libretro",
         "repo": "yabause",
-        "rev": "c940fe68461cb2bc6dd98cc162b46813ba12b081",
-        "sha256": "a4nTgOZ2xEq45sWZ9AxmrjEdMOjnG3Whfm8mrvEMnuY=",
-        "fetchSubmodules": false
+        "rev": "f30153ff9e534b96049c6f1ac3075b572642ceb5",
+        "sha256": "AdqCr5X3Bq8ic2jkIestmYi+CBByZ5Fyf0BUYwBkWnA="
     }
 }
diff --git a/pkgs/misc/emulators/retroarch/update.py b/pkgs/misc/emulators/retroarch/update.py
index 857c5df6244dd..68f72103168e8 100755
--- a/pkgs/misc/emulators/retroarch/update.py
+++ b/pkgs/misc/emulators/retroarch/update.py
@@ -26,7 +26,19 @@ CORES = {
     "bsnes": {"repo": "bsnes-libretro"},
     "bsnes-hd": {"repo": "bsnes-hd", "owner": "DerKoun"},
     "bsnes-mercury": {"repo": "bsnes-mercury"},
-    "citra": {"repo": "citra", "fetch_submodules": True, "deep_clone": True, "leave_dot_git": True},
+    "citra": {
+        "repo": "citra",
+        "fetch_submodules": True,
+        "deep_clone": True,
+        "leave_dot_git": True,
+    },
+    "citra-canary": {
+        "repo": "citra",
+        "fetch_submodules": True,
+        "deep_clone": True,
+        "leave_dot_git": True,
+        "rev": "canary",
+    },
     "desmume": {"repo": "desmume"},
     "desmume2015": {"repo": "desmume2015"},
     "dolphin": {"repo": "dolphin"},
@@ -102,6 +114,7 @@ def get_repo_hash_fetchFromGitHub(
     deep_clone=False,
     fetch_submodules=False,
     leave_dot_git=False,
+    rev=None,
 ):
     extra_args = []
     if deep_clone:
@@ -110,13 +123,18 @@ def get_repo_hash_fetchFromGitHub(
         extra_args.append("--fetch-submodules")
     if leave_dot_git:
         extra_args.append("--leave-dot-git")
+    if rev:
+        extra_args.append("--rev")
+        extra_args.append(rev)
     result = subprocess.run(
         ["nix-prefetch-github", owner, repo, *extra_args],
         check=True,
         capture_output=True,
         text=True,
     )
-    return json.loads(result.stdout)
+    j = json.loads(result.stdout)
+    # Remove False values
+    return {k: v for k, v in j.items() if v}
 
 
 def get_repo_hash(fetcher="fetchFromGitHub", **kwargs):
diff --git a/pkgs/misc/emulators/retroarch/wrapper.nix b/pkgs/misc/emulators/retroarch/wrapper.nix
index b8fbd70ecc463..e667afdf079c4 100644
--- a/pkgs/misc/emulators/retroarch/wrapper.nix
+++ b/pkgs/misc/emulators/retroarch/wrapper.nix
@@ -28,10 +28,10 @@ stdenv.mkDerivation {
   preferLocalBuild = true;
 
   meta = with retroarch.meta; {
-    inherit license homepage platforms maintainers;
+    inherit changelog license homepage platforms maintainers;
     description = description
-                  + " (with cores: "
-                  + lib.concatStringsSep ", " (map (x: ""+x.name) cores)
-                  + ")";
+      + " (with cores: "
+      + lib.concatStringsSep ", " (map (x: "${x.name}") cores)
+      + ")";
   };
 }
diff --git a/pkgs/misc/emulators/retrofe/default.nix b/pkgs/misc/emulators/retrofe/default.nix
index 558b5ca633774..dc1a23f33b398 100644
--- a/pkgs/misc/emulators/retrofe/default.nix
+++ b/pkgs/misc/emulators/retrofe/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchhg, cmake, glib, gst_all_1, makeWrapper, pkg-config
-, python, SDL2, SDL2_image, SDL2_mixer, SDL2_ttf, sqlite, zlib, runtimeShell
+, python2, SDL2, SDL2_image, SDL2_mixer, SDL2_ttf, sqlite, zlib, runtimeShell
 }:
 
 stdenv.mkDerivation {
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
     sha256 = "0cvsg07ff0fdqh5zgiv2fs7s6c98hn150kpxmpw5fn6jilaszwkm";
   };
 
-  nativeBuildInputs = [ cmake makeWrapper pkg-config python ];
+  nativeBuildInputs = [ cmake makeWrapper pkg-config python2 ];
 
   buildInputs = [
     glib gst_all_1.gstreamer SDL2 SDL2_image SDL2_mixer SDL2_ttf sqlite zlib
diff --git a/pkgs/misc/emulators/ryujinx/default.nix b/pkgs/misc/emulators/ryujinx/default.nix
index 86716ed5d535c..49a1c190b54a9 100644
--- a/pkgs/misc/emulators/ryujinx/default.nix
+++ b/pkgs/misc/emulators/ryujinx/default.nix
@@ -1,7 +1,7 @@
 { lib, buildDotnetModule, fetchFromGitHub, makeDesktopItem, copyDesktopItems
 , libX11, libgdiplus, ffmpeg
 , SDL2_mixer, openal, libsoundio, sndio, pulseaudio
-, gtk3, gobject-introspection, gdk-pixbuf, wrapGAppsHook
+, gtk3, gdk-pixbuf, wrapGAppsHook
 }:
 
 buildDotnetModule rec {
@@ -27,7 +27,10 @@ buildDotnetModule rec {
   nativeBuildInputs = [
     copyDesktopItems
     wrapGAppsHook
-    gobject-introspection
+  ];
+
+  buildInputs = [
+    gtk3
     gdk-pixbuf
   ];
 
@@ -78,6 +81,7 @@ buildDotnetModule rec {
     changelog = "https://github.com/Ryujinx/Ryujinx/wiki/Changelog";
     maintainers = [ maintainers.ivar ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "Ryujinx";
   };
   passthru.updateScript = ./updater.sh;
 }
diff --git a/pkgs/misc/emulators/wine/cert-path-6.21.patch b/pkgs/misc/emulators/wine/cert-path-6.21.patch
deleted file mode 100644
index f0727f422f8c8..0000000000000
--- a/pkgs/misc/emulators/wine/cert-path-6.21.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/dlls/crypt32/unixlib.c b/dlls/crypt32/unixlib.c
-index 7cb521eb98b..5804b88be84 100644
---- a/dlls/crypt32/unixlib.c
-+++ b/dlls/crypt32/unixlib.c
-@@ -654,6 +654,10 @@ static void load_root_certs(void)
- 
-     for (i = 0; i < ARRAY_SIZE(CRYPT_knownLocations) && list_empty(&root_cert_list); i++)
-         import_certs_from_path( CRYPT_knownLocations[i], TRUE );
-+
-+    char *nix_cert_file = getenv("NIX_SSL_CERT_FILE");
-+    if (nix_cert_file != NULL)
-+        import_certs_from_path(nix_cert_file, TRUE);
- }
- 
- static NTSTATUS enum_root_certs( void *args )
diff --git a/pkgs/misc/emulators/wine/cert-path.patch b/pkgs/misc/emulators/wine/cert-path.patch
index 18a90e1a9af8d..f0727f422f8c8 100644
--- a/pkgs/misc/emulators/wine/cert-path.patch
+++ b/pkgs/misc/emulators/wine/cert-path.patch
@@ -1,16 +1,8 @@
 diff --git a/dlls/crypt32/unixlib.c b/dlls/crypt32/unixlib.c
-index 035f2d936bb..959716d727a 100644
+index 7cb521eb98b..5804b88be84 100644
 --- a/dlls/crypt32/unixlib.c
 +++ b/dlls/crypt32/unixlib.c
-@@ -24,6 +24,7 @@
- #include "wine/port.h"
- 
- #include <stdarg.h>
-+#include <stdlib.h>
- #include <dirent.h>
- #include <fcntl.h>
- #include <unistd.h>
-@@ -605,6 +606,10 @@ static void load_root_certs(void)
+@@ -654,6 +654,10 @@ static void load_root_certs(void)
  
      for (i = 0; i < ARRAY_SIZE(CRYPT_knownLocations) && list_empty(&root_cert_list); i++)
          import_certs_from_path( CRYPT_knownLocations[i], TRUE );
@@ -20,4 +12,4 @@ index 035f2d936bb..959716d727a 100644
 +        import_certs_from_path(nix_cert_file, TRUE);
  }
  
- static BOOL WINAPI enum_root_certs( void *buffer, SIZE_T size, SIZE_T *needed )
+ static NTSTATUS enum_root_certs( void *args )
diff --git a/pkgs/misc/emulators/wine/sources.nix b/pkgs/misc/emulators/wine/sources.nix
index 342fc924de5be..ff91fbb55cdd6 100644
--- a/pkgs/misc/emulators/wine/sources.nix
+++ b/pkgs/misc/emulators/wine/sources.nix
@@ -13,9 +13,9 @@ let fetchurl = args@{url, sha256, ...}:
 in rec {
 
   stable = fetchurl rec {
-    version = "6.0.2";
-    url = "https://dl.winehq.org/wine/source/6.0/wine-${version}.tar.xz";
-    sha256 = "sha256-3+PFiseFwHIg4o8VtiKZ12wk0lametm//Yrvpns9u3A=";
+    version = "7.0";
+    url = "https://dl.winehq.org/wine/source/7.0/wine-${version}.tar.xz";
+    sha256 = "sha256-W0PifVwIXLGPlzlORhgDENXu98HZHGiVQyo4ibLeCGs=";
 
     ## see http://wiki.winehq.org/Gecko
     gecko32 = fetchurl rec {
@@ -31,9 +31,9 @@ in rec {
 
     ## see http://wiki.winehq.org/Mono
     mono = fetchurl rec {
-      version = "5.1.1";
+      version = "7.0.0";
       url = "https://dl.winehq.org/wine/wine-mono/${version}/wine-mono-${version}-x86.msi";
-      sha256 = "09wjrfxbw0072iv6d2vqnkc3y7dzj15vp8mv4ay44n1qp5ji4m3l";
+      sha256 = "sha256-s35vyeWQ5YIkPcJdcqX8wzDDp5cN/cmKeoHSOEW6iQA=";
     };
 
     patches = [
@@ -42,30 +42,12 @@ in rec {
     ];
   };
 
-  unstable = fetchurl rec {
-    # NOTE: Don't forget to change the SHA256 for staging as well.
-    version = "7.0-rc5";
-    url = "https://dl.winehq.org/wine/source/7.0/wine-${version}.tar.xz";
-    sha256 = "sha256-jQjHneYAZ3H26EXje9cyoduXN7TakiLksDdzNoi3d1g=";
-    inherit (stable) gecko32 gecko64;
-
-    ## see http://wiki.winehq.org/Mono
-    mono = fetchurl rec {
-      version = "7.0.0";
-      url = "https://dl.winehq.org/wine/wine-mono/${version}/wine-mono-${version}-x86.msi";
-      sha256 = "sha256-s35vyeWQ5YIkPcJdcqX8wzDDp5cN/cmKeoHSOEW6iQA=";
-    };
-
-    patches = [
-      # Also look for root certificates at $NIX_SSL_CERT_FILE
-      ./cert-path-6.21.patch
-     ];
-  };
+  unstable = stable;
 
   staging = fetchFromGitHub rec {
     # https://github.com/wine-staging/wine-staging/releases
     inherit (unstable) version;
-    sha256 = "sha256-RFwDI8eGw9BikQ8X+S1+EPHKAgNaYHuZOJzmlg12ROI=";
+    sha256 = "sha256-2gBfsutKG0ok2ISnnAUhJit7H2TLPDpuP5gvfMVE44o=";
     owner = "wine-staging";
     repo = "wine-staging";
     rev = "v${version}";
diff --git a/pkgs/misc/emulators/wine/winetricks.nix b/pkgs/misc/emulators/wine/winetricks.nix
index 26c141a71e748..61ca6515c4486 100644
--- a/pkgs/misc/emulators/wine/winetricks.nix
+++ b/pkgs/misc/emulators/wine/winetricks.nix
@@ -2,7 +2,8 @@
 , cabextract, unzip, p7zip, gnused, gnugrep, bash } :
 
 stdenv.mkDerivation rec {
-  name = "winetricks-${src.version}";
+  pname = "winetricks";
+  version = src.version;
 
   src = (callPackage ./sources.nix {}).winetricks;
 
diff --git a/pkgs/misc/emulators/wxmupen64plus/default.nix b/pkgs/misc/emulators/wxmupen64plus/default.nix
index 3b24584f7e630..c09a83b92ea8b 100644
--- a/pkgs/misc/emulators/wxmupen64plus/default.nix
+++ b/pkgs/misc/emulators/wxmupen64plus/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, python, wxGTK29, mupen64plus, SDL, libX11, libGLU, libGL
+{ lib, stdenv, fetchurl, python2, wxGTK29, mupen64plus, SDL, libX11, libGLU, libGL
 , wafHook }:
 
 stdenv.mkDerivation rec {
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ wafHook ];
-  buildInputs = [ python wxGTK29 SDL libX11 libGLU libGL ];
+  buildInputs = [ python2 wxGTK29 SDL libX11 libGLU libGL ];
 
   preConfigure = ''
     tar xf ${mupen64plus.src}
diff --git a/pkgs/misc/emulators/yuzu/default.nix b/pkgs/misc/emulators/yuzu/default.nix
index c9f7cbd378f7b..108da20f4a233 100644
--- a/pkgs/misc/emulators/yuzu/default.nix
+++ b/pkgs/misc/emulators/yuzu/default.nix
@@ -4,13 +4,13 @@ let
 in {
   mainline = libsForQt5.callPackage ./base.nix rec {
     pname = "yuzu-mainline";
-    version = "844";
+    version = "882";
     branchName = branch;
     src = fetchFromGitHub {
       owner = "yuzu-emu";
       repo = "yuzu-mainline";
       rev = "mainline-0-${version}";
-      sha256 = "0vr1pqackvcb1sppfaqsibkm1agpdlg70lqfl5gcizkq9668gr12";
+      sha256 = "17j845laxnaq50icwl32yisdivwcnwa59fxdr297yxrz4hmfzhxq";
       fetchSubmodules = true;
     };
   };
diff --git a/pkgs/misc/gnuk/generic.nix b/pkgs/misc/gnuk/generic.nix
index 8d32e9f66d103..2556ff42308f6 100644
--- a/pkgs/misc/gnuk/generic.nix
+++ b/pkgs/misc/gnuk/generic.nix
@@ -10,9 +10,9 @@
 }:
 
 stdenv.mkDerivation {
-  name = "gnuk-${version}-${device}";
+  pname = "gnuk-${device}";
 
-  inherit src;
+  inherit version src;
 
   nativeBuildInputs = [ gcc-arm-embedded binutils-arm-embedded makeWrapper ];
   buildInputs = with python3Packages; [ python pyusb colorama ];
diff --git a/pkgs/misc/jitsi-meet-prosody/default.nix b/pkgs/misc/jitsi-meet-prosody/default.nix
index 4edbd70a22110..4ce79f3b16c27 100644
--- a/pkgs/misc/jitsi-meet-prosody/default.nix
+++ b/pkgs/misc/jitsi-meet-prosody/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "jitsi-meet-prosody";
-  version = "1.0.5415";
+  version = "1.0.5675";
   src = fetchurl {
     url = "https://download.jitsi.org/stable/${pname}_${version}-1_all.deb";
-    sha256 = "XvW+bAuad1IKJPZzVJBkT7vA2BBDFQBvTWtbyK/in6A=";
+    sha256 = "FrafgJcNF3xv985JJ+xOWPtJZFeElIAaIXWdcgheru0=";
   };
 
   dontBuild = true;
diff --git a/pkgs/misc/opensbi/default.nix b/pkgs/misc/opensbi/default.nix
new file mode 100644
index 0000000000000..3a3e9edf93a22
--- /dev/null
+++ b/pkgs/misc/opensbi/default.nix
@@ -0,0 +1,40 @@
+{ lib, stdenv, fetchFromGitHub
+, withPlatform ? "generic"
+, withPayload ? null
+, withFDT ? null
+}:
+
+stdenv.mkDerivation rec {
+  pname = "opensbi";
+  version = "1.0";
+
+  src = fetchFromGitHub {
+    owner = "riscv-software-src";
+    repo = "opensbi";
+    rev = "v${version}";
+    sha256 = "sha256-OgzcH+RLU680qF3+lUiWFFbif6YtjIknJriGlRqcOGs=";
+  };
+
+  installFlags = [
+    "I=$(out)"
+  ];
+
+  makeFlags = [
+    "PLATFORM=${withPlatform}"
+  ] ++ lib.optionals (withPayload != null) [
+    "FW_PAYLOAD_PATH=${withPayload}"
+  ] ++ lib.optionals (withFDT != null) [
+    "FW_FDT_PATH=${withFDT}"
+  ];
+
+  dontStrip = true;
+  dontPatchELF = true;
+
+  meta = with lib; {
+    description = "RISC-V Open Source Supervisor Binary Interface";
+    homepage = "https://github.com/riscv-software-src/opensbi";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ ius nickcao zhaofengli ];
+    platforms = [ "riscv64-linux" ];
+  };
+}
diff --git a/pkgs/misc/screensavers/alock/default.nix b/pkgs/misc/screensavers/alock/default.nix
index d10082a71e3e2..5f0c5ad9e29e0 100644
--- a/pkgs/misc/screensavers/alock/default.nix
+++ b/pkgs/misc/screensavers/alock/default.nix
@@ -2,8 +2,8 @@
 , libX11, pam, libgcrypt, libXrender, imlib2 }:
 
 stdenv.mkDerivation rec {
-  date = "20170720";
-  name = "alock-${date}";
+  pname = "alock";
+  version = "unstable-2017-07-20";
 
   src = fetchgit {
     url = "https://github.com/Arkq/alock";
diff --git a/pkgs/misc/screensavers/xssproxy/default.nix b/pkgs/misc/screensavers/xssproxy/default.nix
index 5e1c42084137c..e9c7eebacc068 100644
--- a/pkgs/misc/screensavers/xssproxy/default.nix
+++ b/pkgs/misc/screensavers/xssproxy/default.nix
@@ -1,14 +1,13 @@
 { lib, stdenv, fetchFromGitHub, glib, pkg-config, xorg, dbus }:
 
-let rev = "1.0.0"; in
-
-stdenv.mkDerivation {
-  name = "xssproxy-${rev}";
+stdenv.mkDerivation rec {
+  pname = "xssproxy";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "timakro";
     repo = "xssproxy";
-    rev = "v${rev}";
+    rev = "v${version}";
     sha256 = "0c83wmipnsdnbihc5niyczs7jrkss2s8n6iwwjdia7hkjzbd0hl7";
   };
 
diff --git a/pkgs/misc/screensavers/xtrlock-pam/default.nix b/pkgs/misc/screensavers/xtrlock-pam/default.nix
index 6908429e21b90..ffb9d0da8570e 100644
--- a/pkgs/misc/screensavers/xtrlock-pam/default.nix
+++ b/pkgs/misc/screensavers/xtrlock-pam/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchgit, python, pkg-config, xlibsWrapper, pam }:
+{ lib, stdenv, fetchgit, python2, pkg-config, xlibsWrapper, pam }:
 
 stdenv.mkDerivation {
   pname = "xtrlock-pam";
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ python xlibsWrapper pam ];
+  buildInputs = [ python2 xlibsWrapper pam ];
 
   configurePhase = ''
     substituteInPlace .config/options.py --replace /usr/include/security/pam_appl.h ${pam}/include/security/pam_appl.h
diff --git a/pkgs/misc/uboot/default.nix b/pkgs/misc/uboot/default.nix
index dec567f1ccdeb..e287066ddb9cb 100644
--- a/pkgs/misc/uboot/default.nix
+++ b/pkgs/misc/uboot/default.nix
@@ -274,6 +274,13 @@ in {
     filesToInstall = ["u-boot-dtb.bin"];
   };
 
+  ubootOlimexA64Olinuxino = buildUBoot {
+    defconfig = "a64-olinuxino-emmc_defconfig";
+    extraMeta.platforms = ["aarch64-linux"];
+    BL31 = "${armTrustedFirmwareAllwinner}/bl31.bin";
+    filesToInstall = ["u-boot-sunxi-with-spl.bin"];
+  };
+
   ubootOrangePiPc = buildUBoot {
     defconfig = "orangepi_pc_defconfig";
     extraMeta.platforms = ["armv7l-linux"];
diff --git a/pkgs/misc/vim-plugins/generated.nix b/pkgs/misc/vim-plugins/generated.nix
index 5807f7756cef3..fa706c5e00be1 100644
--- a/pkgs/misc/vim-plugins/generated.nix
+++ b/pkgs/misc/vim-plugins/generated.nix
@@ -1,5 +1,5 @@
 # This file has been generated by ./pkgs/misc/vim-plugins/update.py. Do not edit!
-{ lib, buildVimPluginFrom2Nix, fetchFromGitHub }:
+{ lib, buildVimPluginFrom2Nix, fetchFromGitHub, fetchgit }:
 
 final: prev:
 {
@@ -41,12 +41,12 @@ final: prev:
 
   aerial-nvim = buildVimPluginFrom2Nix {
     pname = "aerial.nvim";
-    version = "2022-01-07";
+    version = "2022-01-19";
     src = fetchFromGitHub {
       owner = "stevearc";
       repo = "aerial.nvim";
-      rev = "b14cf53385435c84457162a5c45a4248bd275f3b";
-      sha256 = "1qxdl4fdfbbfpslx2sz9mnafrwnwp8q3rlm8ns38d24z7rgx81vv";
+      rev = "845a1052f7d8c084eab15d190b62d87350f6fa37";
+      sha256 = "0k16c83qn8rcg0gfmwlwlj27apj1k081yy4aqgyrkn485fdlv3sl";
     };
     meta.homepage = "https://github.com/stevearc/aerial.nvim/";
   };
@@ -233,12 +233,12 @@ final: prev:
 
   auto-session = buildVimPluginFrom2Nix {
     pname = "auto-session";
-    version = "2021-12-07";
+    version = "2022-01-15";
     src = fetchFromGitHub {
       owner = "rmagatti";
       repo = "auto-session";
-      rev = "08e766c1467d3fa3b53ca1dafdfa9815ea830b3c";
-      sha256 = "0xrj7hr5dx6xkwcjs6yl474f3i8vb0pyj42g0d1lxcqmw55fm7gw";
+      rev = "486e23f024a21c952758726497244e27aa3b9f0e";
+      sha256 = "1sxg9gr329zlccm8xh8zv3n26s72mikqh4aik5l1hdx663afqc0d";
     };
     meta.homepage = "https://github.com/rmagatti/auto-session/";
   };
@@ -257,12 +257,12 @@ final: prev:
 
   awesome-vim-colorschemes = buildVimPluginFrom2Nix {
     pname = "awesome-vim-colorschemes";
-    version = "2021-12-02";
+    version = "2022-01-17";
     src = fetchFromGitHub {
       owner = "rafi";
       repo = "awesome-vim-colorschemes";
-      rev = "8844314af7aa10db30fc743656bf26eceb24cbe6";
-      sha256 = "0203vqi3dmlhcmhir25wb4lvvdca9ryqzbrvabxa3jsfz3s01c9l";
+      rev = "9a28614941beec4539f82937d50df1a03bb70e0d";
+      sha256 = "0fvb3r8176r030wnf1rvpd4dba8cz5506a3plp5j5h5gxpsyd27y";
     };
     meta.homepage = "https://github.com/rafi/awesome-vim-colorschemes/";
   };
@@ -329,12 +329,12 @@ final: prev:
 
   better-escape-nvim = buildVimPluginFrom2Nix {
     pname = "better-escape.nvim";
-    version = "2021-12-21";
+    version = "2022-01-14";
     src = fetchFromGitHub {
       owner = "max397574";
       repo = "better-escape.nvim";
-      rev = "066a74d517a10e6ef08e5acb72d86eb3f00e6444";
-      sha256 = "0bkvkl2599jba5j3dgrigkfrn2p4rbilgpvgyp3zw9m06gqxsqin";
+      rev = "2bee35e435310c7cc1333fff983268ae3f17b06f";
+      sha256 = "1y6q2r462l7p4y9x5fn04902s41n4rr0xrwnry6vwp4rdlzldw8c";
     };
     meta.homepage = "https://github.com/max397574/better-escape.nvim/";
   };
@@ -351,6 +351,18 @@ final: prev:
     meta.homepage = "https://github.com/euclidianAce/BetterLua.vim/";
   };
 
+  bitbake-vim = buildVimPluginFrom2Nix {
+    pname = "bitbake.vim";
+    version = "2021-02-06";
+    src = fetchFromGitHub {
+      owner = "sblumentritt";
+      repo = "bitbake.vim";
+      rev = "faddca1e8768b10c80ee85221fb51a560df5ba45";
+      sha256 = "1hfly2vxhhvjdiwgfz58hr3523kf9z71i78vk168n3kdqp5vkwrp";
+    };
+    meta.homepage = "https://github.com/sblumentritt/bitbake.vim/";
+  };
+
   blueballs-neovim = buildVimPluginFrom2Nix {
     pname = "blueballs-neovim";
     version = "2021-11-28";
@@ -413,12 +425,12 @@ final: prev:
 
   bufferline-nvim = buildVimPluginFrom2Nix {
     pname = "bufferline.nvim";
-    version = "2022-01-10";
+    version = "2022-01-16";
     src = fetchFromGitHub {
       owner = "akinsho";
       repo = "bufferline.nvim";
-      rev = "29b29df893693342005a65869a4c53eea7835462";
-      sha256 = "04420jfdkxj9kmisvrlqmvkh0iaqzj2ibfq1m19ag9sxywlafs96";
+      rev = "7451dfc97d28e6783dbeb1cdcff12619a9323c98";
+      sha256 = "0w0ww4x6il3g7623rdnzdm82dg6484liglxzzd8rff5av6sx3ja8";
     };
     meta.homepage = "https://github.com/akinsho/bufferline.nvim/";
   };
@@ -473,12 +485,12 @@ final: prev:
 
   chadtree = buildVimPluginFrom2Nix {
     pname = "chadtree";
-    version = "2022-01-10";
+    version = "2022-01-22";
     src = fetchFromGitHub {
       owner = "ms-jpq";
       repo = "chadtree";
-      rev = "2d1f9a9231147738238f2478a5a08bb5febe8643";
-      sha256 = "0x1yql6bhhs4wirbfdxr6myh2d9aa34ss0srdl51794af7nw29f5";
+      rev = "e6fe7bcc3d354f7da68bea64c612eb2f78e959d1";
+      sha256 = "0rq82dz1s7xshbdydah50vpzhakbzcbxkx4j5mgg5pwgbglaj9xj";
     };
     meta.homepage = "https://github.com/ms-jpq/chadtree/";
   };
@@ -531,6 +543,18 @@ final: prev:
     meta.homepage = "https://github.com/yunlingz/ci_dark/";
   };
 
+  circles-nvim = buildVimPluginFrom2Nix {
+    pname = "circles.nvim";
+    version = "2022-01-11";
+    src = fetchFromGitHub {
+      owner = "projekt0n";
+      repo = "circles.nvim";
+      rev = "3847feed23fa3ba6abecdf1b17a6c7d2022ebe65";
+      sha256 = "1wxfix1fd8qwflc7id3g0yr7838j4vgnrk1nixv5q99d7wj0hadr";
+    };
+    meta.homepage = "https://github.com/projekt0n/circles.nvim/";
+  };
+
   clang_complete = buildVimPluginFrom2Nix {
     pname = "clang_complete";
     version = "2020-09-18";
@@ -653,12 +677,12 @@ final: prev:
 
   cmp-nvim-lsp = buildVimPluginFrom2Nix {
     pname = "cmp-nvim-lsp";
-    version = "2022-01-04";
+    version = "2022-01-15";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "cmp-nvim-lsp";
-      rev = "b4251f0fca1daeb6db5d60a23ca81507acf858c2";
-      sha256 = "0qaz5rb062qyk1zn5ahx6f49yk0r0n0a4mnrlpdcil4kc9j6mfy6";
+      rev = "ebdfc204afb87f15ce3d3d3f5df0b8181443b5ba";
+      sha256 = "0kmaxxdxlp1s5w36khnw0sdrbv1lr3p5n9r90h6h7wv842n4mnca";
     };
     meta.homepage = "https://github.com/hrsh7th/cmp-nvim-lsp/";
   };
@@ -713,12 +737,12 @@ final: prev:
 
   cmp-path = buildVimPluginFrom2Nix {
     pname = "cmp-path";
-    version = "2021-12-30";
+    version = "2022-01-17";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "cmp-path";
-      rev = "4d58224e315426e5ac4c5b218ca86cab85f80c79";
-      sha256 = "01bn7a04cnljsfls5v9yba6vz4wd2zvbi5jj063gasvqb7yq9kbp";
+      rev = "c5230cb439df9547294678d0f1c1465ad7989e5f";
+      sha256 = "0ya68crpc78fb5zn34s06rl77gsm956pjpsjfk1dv2cddwwxi8x8";
     };
     meta.homepage = "https://github.com/hrsh7th/cmp-path/";
   };
@@ -737,12 +761,12 @@ final: prev:
 
   cmp-tabnine = buildVimPluginFrom2Nix {
     pname = "cmp-tabnine";
-    version = "2022-01-10";
+    version = "2022-01-20";
     src = fetchFromGitHub {
       owner = "tzachar";
       repo = "cmp-tabnine";
-      rev = "827274ac3238ba43474fdf1b047ec02111c90df8";
-      sha256 = "14dy17qq1n35p46w9zrkxnmbrsl9qjf4msi5xlmlcfxsqwap24vn";
+      rev = "276f3a5e43465c479164f00258f7454ff0b4d3a1";
+      sha256 = "145gpizsa28g3rd872hxflnw644k9ki5qvw9012yjrfm5n8mmfcp";
     };
     meta.homepage = "https://github.com/tzachar/cmp-tabnine/";
   };
@@ -845,12 +869,12 @@ final: prev:
 
   coc-lua = buildVimPluginFrom2Nix {
     pname = "coc-lua";
-    version = "2022-01-07";
+    version = "2022-01-14";
     src = fetchFromGitHub {
       owner = "josa42";
       repo = "coc-lua";
-      rev = "a3c2be320d57216405d6fe06f2c4d1de3f0f1ca8";
-      sha256 = "131l4dhd93yzsdaw8fbr7hvc1qrm3zfp231rgbhzsfbg47c44rkl";
+      rev = "eae915d529503a7a281e2e80aaa0bcb7ef04a576";
+      sha256 = "18pfamaczbcpf35dh2sn9cp1wd6fha882qpbzvhx8qrvhjdz0n2a";
     };
     meta.homepage = "https://github.com/josa42/coc-lua/";
   };
@@ -881,12 +905,12 @@ final: prev:
 
   coc-nvim = buildVimPluginFrom2Nix {
     pname = "coc.nvim";
-    version = "2021-12-27";
+    version = "2022-01-21";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc.nvim";
-      rev = "28e7f0376bcb661afa9e3b8b352152b981f5eda3";
-      sha256 = "0liyndwrczxqyryg0w3601b1zvcg7g0dj2ns578zh50xbyk2mgg4";
+      rev = "6a510523b0bf697bffe5ba77d0e404532fd92e65";
+      sha256 = "1xp8zvj1wbywfgy2kgvqmxpw675wlmpjdgbqzmb53rjjhsb9w107";
     };
     meta.homepage = "https://github.com/neoclide/coc.nvim/";
   };
@@ -1144,14 +1168,26 @@ final: prev:
     meta.homepage = "https://github.com/jvoorhis/coq.vim/";
   };
 
+  coq_nvim = buildVimPluginFrom2Nix {
+    pname = "coq_nvim";
+    version = "2022-01-17";
+    src = fetchFromGitHub {
+      owner = "ms-jpq";
+      repo = "coq_nvim";
+      rev = "9546c14f6664df71b9427b38fcebb7800b69799e";
+      sha256 = "0nr2w65mirbrpr7iyimwjq7l5vyi4qr46ncic3whwlmyi2amkrjk";
+    };
+    meta.homepage = "https://github.com/ms-jpq/coq_nvim/";
+  };
+
   Coqtail = buildVimPluginFrom2Nix {
     pname = "Coqtail";
-    version = "2022-01-03";
+    version = "2022-01-21";
     src = fetchFromGitHub {
       owner = "whonore";
       repo = "Coqtail";
-      rev = "c8ffb3d358e85211b17dd18df6007e3be1bd2569";
-      sha256 = "1y8gv10llnihpylzq9jca93g7gb0gf6rbr0pwhvirrvz514czfl8";
+      rev = "cbe08b44bf2cba835c541f4b7eddc9f533dbe584";
+      sha256 = "1g32297zkvdrmvjacwf6ig2q7whvzj8wzrxb71vzr9qskp0qx81v";
     };
     meta.homepage = "https://github.com/whonore/Coqtail/";
   };
@@ -1182,12 +1218,12 @@ final: prev:
 
   crates-nvim = buildVimPluginFrom2Nix {
     pname = "crates.nvim";
-    version = "2022-01-07";
+    version = "2022-01-19";
     src = fetchFromGitHub {
       owner = "saecki";
       repo = "crates.nvim";
-      rev = "2998baf339d836d3b23a3d83096b2078caf838c3";
-      sha256 = "062qa8nazpl5d5iiqs063sva7xsc9pwicjx2snxyg03m2hk6xhgr";
+      rev = "edf3b7aafa334d72b80d502dcca55b36a5b5ba79";
+      sha256 = "1szmnagv2f8ik4ypzgvf68y39243f3877yah6msvfrm44qzh9bf6";
     };
     meta.homepage = "https://github.com/saecki/crates.nvim/";
   };
@@ -1206,12 +1242,12 @@ final: prev:
 
   csv-vim = buildVimPluginFrom2Nix {
     pname = "csv.vim";
-    version = "2021-11-05";
+    version = "2022-01-12";
     src = fetchFromGitHub {
       owner = "chrisbra";
       repo = "csv.vim";
-      rev = "9ab092187a7046a8d0eedc7fbbce8fac38d10563";
-      sha256 = "0ji3lg9hl50cg3kdvrr3bahfiaw0ij5aj80365nymrfj8s48m9kl";
+      rev = "eb284c4e33b57fc828012cb9ebb420a9ae6ecbe7";
+      sha256 = "0y660p8p716cf1gf7ncwvz62yr4d85bimvggsg4rdwmrqpvmshv6";
     };
     meta.homepage = "https://github.com/chrisbra/csv.vim/";
   };
@@ -1254,12 +1290,12 @@ final: prev:
 
   ctrlp-vim = buildVimPluginFrom2Nix {
     pname = "ctrlp.vim";
-    version = "2021-12-11";
+    version = "2022-01-14";
     src = fetchFromGitHub {
       owner = "ctrlpvim";
       repo = "ctrlp.vim";
-      rev = "fc153aabd54f9189e576c9bfb07bac09f36f2ccd";
-      sha256 = "115qj7zvs45agdvk7i429527hm9ygfgiwl523dy2f6aw508r2np5";
+      rev = "ed04d2ec91c78748f0d8ddf69df2f6e5cffa7bb8";
+      sha256 = "1336bk2w4ll1vq6vwd0pq77021i13hcrm3mqzynznvhxwwxrk4dy";
     };
     meta.homepage = "https://github.com/ctrlpvim/ctrlp.vim/";
   };
@@ -1362,12 +1398,12 @@ final: prev:
 
   denite-nvim = buildVimPluginFrom2Nix {
     pname = "denite.nvim";
-    version = "2021-11-06";
+    version = "2022-01-15";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "denite.nvim";
-      rev = "7e14c6c4d645c891b07c73d294ba9aadb08a9843";
-      sha256 = "10b4ip39mx0r0xj16lysxr042gsdr0x3vh87yv5c2m5hn5jp9fq9";
+      rev = "f88be9be638fd93c8159d3d0434c6e0576bec6d1";
+      sha256 = "1xkgbb1av95bi5svl15909mkbb0jhwb15x9fnvbypjzz1i4mvb82";
     };
     meta.homepage = "https://github.com/Shougo/denite.nvim/";
   };
@@ -1628,12 +1664,12 @@ final: prev:
 
   diaglist-nvim = buildVimPluginFrom2Nix {
     pname = "diaglist.nvim";
-    version = "2022-01-08";
+    version = "2022-01-11";
     src = fetchFromGitHub {
       owner = "onsails";
       repo = "diaglist.nvim";
-      rev = "2d4943598312e3baaa9e30062adbaa640d4d1413";
-      sha256 = "0x71idyvhk0i5qld1z89y1jgcs1mvg7qbjkqh1wcv3czkyp3c8bz";
+      rev = "6c43beac1ff07f6ef00f063090b5a6c9ed11b800";
+      sha256 = "1a10hmz38g3lpf1xxsk3b62vr16iaz5z5yqvk21m9bpai871fv1r";
     };
     meta.homepage = "https://github.com/onsails/diaglist.nvim/";
   };
@@ -1700,16 +1736,28 @@ final: prev:
 
   dracula-vim = buildVimPluginFrom2Nix {
     pname = "dracula-vim";
-    version = "2021-12-10";
+    version = "2022-01-18";
     src = fetchFromGitHub {
       owner = "dracula";
       repo = "vim";
-      rev = "74f63c304a0625c4ff9ce16784fce583b3a60661";
-      sha256 = "0n5h2a7y4pwhbhzjla3i8wxaahgynnb0fzxmq2n3yaw333pmnv2f";
+      rev = "210e0961b9bd765b5b46a84d0631271ee8e6af64";
+      sha256 = "0f4kf6853wynhdc30hmc9avk1k6inw8jxp9w0sgkgp6958s3ksfh";
     };
     meta.homepage = "https://github.com/dracula/vim/";
   };
 
+  dressing-nvim = buildVimPluginFrom2Nix {
+    pname = "dressing.nvim";
+    version = "2022-01-18";
+    src = fetchFromGitHub {
+      owner = "stevearc";
+      repo = "dressing.nvim";
+      rev = "3f23266f0c623415ab8051c6e05c35e0981025b5";
+      sha256 = "0khdg2wn204f0rrh5m26iaymf4ic73lk5h5z0zkc1ahdhfy3alsv";
+    };
+    meta.homepage = "https://github.com/stevearc/dressing.nvim/";
+  };
+
   echodoc-vim = buildVimPluginFrom2Nix {
     pname = "echodoc.vim";
     version = "2021-11-26";
@@ -1724,12 +1772,12 @@ final: prev:
 
   edge = buildVimPluginFrom2Nix {
     pname = "edge";
-    version = "2022-01-09";
+    version = "2022-01-19";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "edge";
-      rev = "6030ccab62fe0ff8f9cf3271a24d9c026520ac13";
-      sha256 = "16rqpw4kfpga1gkpibmh25zq7qpr9f9dkaym4xyhb086lf17zb7z";
+      rev = "8ddb984be3eb2b087c5a621513c8f1f9cc191f4f";
+      sha256 = "1amhf4csmp10ry3g7qqp4cgzz06011fkgncazpfp1l7gd5d3x1as";
     };
     meta.homepage = "https://github.com/sainnhe/edge/";
   };
@@ -1785,12 +1833,12 @@ final: prev:
 
   embark-vim = buildVimPluginFrom2Nix {
     pname = "embark-vim";
-    version = "2021-11-21";
+    version = "2022-01-10";
     src = fetchFromGitHub {
       owner = "embark-theme";
       repo = "vim";
-      rev = "aedd387afd0f15032ea68b5d806dac01aeb54e63";
-      sha256 = "1dasnj07iqh0k6pkfyqi33wah9pnsngsfx6ny0r9sxc2vb35cbvn";
+      rev = "2740b2f15708dee3a5b390709e07a69255f75d75";
+      sha256 = "1y1i5wzs1w20k6yyr6l8861bph7xj50ks66yxy7kc97f18jrpra6";
     };
     meta.homepage = "https://github.com/embark-theme/vim/";
   };
@@ -1894,12 +1942,12 @@ final: prev:
 
   fern-vim = buildVimPluginFrom2Nix {
     pname = "fern.vim";
-    version = "2021-12-29";
+    version = "2022-01-11";
     src = fetchFromGitHub {
       owner = "lambdalisue";
       repo = "fern.vim";
-      rev = "21fa52953d87ba259e0217a4189d9dc8e249f94f";
-      sha256 = "0qlq7v6k18vy1y6papdbvngzh0yshnhdg50zyq4mxl5swa78zil2";
+      rev = "b6204ec4e04732d7b4ba73a3e4af48cba3576d67";
+      sha256 = "0ndddww8ciwil7bpn77yahb7fcn5i59sq91syqy3qr0wwmfc7mwc";
     };
     meta.homepage = "https://github.com/lambdalisue/fern.vim/";
   };
@@ -2015,12 +2063,12 @@ final: prev:
 
   friendly-snippets = buildVimPluginFrom2Nix {
     pname = "friendly-snippets";
-    version = "2022-01-03";
+    version = "2022-01-20";
     src = fetchFromGitHub {
       owner = "rafamadriz";
       repo = "friendly-snippets";
-      rev = "9f04462bcabfd108341a6e47ed742b09a6a5b975";
-      sha256 = "0j8cb1k66x0xnqa9rf20lic9v3byw0r93kcznnjxv8arg82zpc2k";
+      rev = "35bacce3c903dff2852e87a13196cad0dd166093";
+      sha256 = "0inq7d48j4ck3zfkbvmi76xvis1sybk15mda23zfnm6zj0k3hjh1";
     };
     meta.homepage = "https://github.com/rafamadriz/friendly-snippets/";
   };
@@ -2099,24 +2147,24 @@ final: prev:
 
   fzf-lsp-nvim = buildVimPluginFrom2Nix {
     pname = "fzf-lsp.nvim";
-    version = "2021-11-07";
+    version = "2022-01-13";
     src = fetchFromGitHub {
       owner = "gfanto";
       repo = "fzf-lsp.nvim";
-      rev = "19a6f405e4a6eb74788393390d945bd156d559b3";
-      sha256 = "0nq9nfviyly136xhjzdvmhvj7flz44pl5as0npa4d13ng3gs451p";
+      rev = "bd55968ff9e62a1760a7bc96126b021cc34d0449";
+      sha256 = "0znnwgdpkhnd029ybfyyh3jj3l11a20g5zynw33xjdwkh4w68nrc";
     };
     meta.homepage = "https://github.com/gfanto/fzf-lsp.nvim/";
   };
 
   fzf-vim = buildVimPluginFrom2Nix {
     pname = "fzf.vim";
-    version = "2021-11-02";
+    version = "2022-01-16";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "fzf.vim";
-      rev = "d6aa21476b2854694e6aa7b0941b8992a906c5ec";
-      sha256 = "058jczzwnbb7nc0a6iqp26gw5hrv7mkn1bazmlg2s6jkirasra7i";
+      rev = "66cb8b826477671fba81c2db5fbb080c7b89f955";
+      sha256 = "1gi83az726817chmrhp8agzn111m2qp76khw5ycnjmba3j9666zy";
     };
     meta.homepage = "https://github.com/junegunn/fzf.vim/";
   };
@@ -2195,12 +2243,12 @@ final: prev:
 
   git-blame-nvim = buildVimPluginFrom2Nix {
     pname = "git-blame.nvim";
-    version = "2022-01-04";
+    version = "2022-01-19";
     src = fetchFromGitHub {
       owner = "f-person";
       repo = "git-blame.nvim";
-      rev = "5c58d8dafa3144532ad03834410a33b4517ce45e";
-      sha256 = "13am7ll0kxi4sjnlqwdkyd454wp1kj7fw083szrcmy6vx4hch790";
+      rev = "d0c1ad8cdb6ad9455f9e084e55c6e411bdb03b49";
+      sha256 = "0mavqgxf4ryd5p101c7nzzaxhpcpxlrzlr2mznfg23i1a36ibzxy";
     };
     meta.homepage = "https://github.com/f-person/git-blame.nvim/";
   };
@@ -2255,12 +2303,12 @@ final: prev:
 
   gitsigns-nvim = buildVimPluginFrom2Nix {
     pname = "gitsigns.nvim";
-    version = "2021-12-30";
+    version = "2022-01-20";
     src = fetchFromGitHub {
       owner = "lewis6991";
       repo = "gitsigns.nvim";
-      rev = "c18fc65c77abf95ac2e7783b9e7455a7a2fab26c";
-      sha256 = "1p589zfnqiycqcbp4kpvgr94p222rxif9lhsh00ic7c8hssf0j9h";
+      rev = "ddffc618ea9e11ae57129549e0eccf832cb8b37d";
+      sha256 = "0mkv3pl08i4920px3k1ffy65lnmycv717n65fmv94fyqa98al3zb";
     };
     meta.homepage = "https://github.com/lewis6991/gitsigns.nvim/";
   };
@@ -2291,12 +2339,12 @@ final: prev:
 
   glow-nvim = buildVimPluginFrom2Nix {
     pname = "glow.nvim";
-    version = "2022-01-09";
+    version = "2022-01-20";
     src = fetchFromGitHub {
       owner = "ellisonleao";
       repo = "glow.nvim";
-      rev = "42dcd3fff4052b41b241453880c6067dbfea55f6";
-      sha256 = "140la8pli0jc3mi4zs91h8rvl989p2hw9gj12ag8zmizm1dic2il";
+      rev = "df202bd09bab4b63f5f64857eb8f3411d46fdf11";
+      sha256 = "1ndgrrlhw87vwy12fzvf5fhnjdsl9na1a3j4hj6slq9v48rkv87f";
     };
     meta.homepage = "https://github.com/ellisonleao/glow.nvim/";
   };
@@ -2349,6 +2397,18 @@ final: prev:
     meta.homepage = "https://github.com/junegunn/goyo.vim/";
   };
 
+  graphviz-vim = buildVimPluginFrom2Nix {
+    pname = "graphviz.vim";
+    version = "2021-04-09";
+    src = fetchFromGitHub {
+      owner = "liuchengxu";
+      repo = "graphviz.vim";
+      rev = "12b04c512694ace2fc15735676f5afdd05519466";
+      sha256 = "1ky9rar3gxvsf0n3y71qfln4pxmz3hpq3dqimbf0r8l8q7sw483r";
+    };
+    meta.homepage = "https://github.com/liuchengxu/graphviz.vim/";
+  };
+
   gruvbox = buildVimPluginFrom2Nix {
     pname = "gruvbox";
     version = "2020-07-03";
@@ -2363,36 +2423,36 @@ final: prev:
 
   gruvbox-community = buildVimPluginFrom2Nix {
     pname = "gruvbox-community";
-    version = "2021-12-21";
+    version = "2022-01-19";
     src = fetchFromGitHub {
       owner = "gruvbox-community";
       repo = "gruvbox";
-      rev = "1f8500f033813fcc6f41f0fe366e27faa163f2c2";
-      sha256 = "0vvmzwlq5in1pn73gzsn2bbj4x5n7w48a635yn2qpkslh4qhnq82";
+      rev = "118f3b5576bed4cd345475aed0d61f63c6b20809";
+      sha256 = "1n7sj5ia40x0lpf6q1s39zz46578wwb9v1z3vaxqwxdwrncrnn15";
     };
     meta.homepage = "https://github.com/gruvbox-community/gruvbox/";
   };
 
   gruvbox-flat-nvim = buildVimPluginFrom2Nix {
     pname = "gruvbox-flat.nvim";
-    version = "2021-09-06";
+    version = "2022-01-19";
     src = fetchFromGitHub {
       owner = "eddyekofo94";
       repo = "gruvbox-flat.nvim";
-      rev = "c384a5719b1ef9f5be925a94491d10c35eaf09a5";
-      sha256 = "03dlkhc2n2brq1m49ji4y205sha7gywd81x014dsma81w7fhvdvk";
+      rev = "756dbdd3dfd3ed84acb2f9649724df19ae41f904";
+      sha256 = "0ns4cavxcq58dwkf2gxbq4950rim0bbalvhlyc2clr30d5z5skv7";
     };
     meta.homepage = "https://github.com/eddyekofo94/gruvbox-flat.nvim/";
   };
 
   gruvbox-material = buildVimPluginFrom2Nix {
     pname = "gruvbox-material";
-    version = "2022-01-09";
+    version = "2022-01-19";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "gruvbox-material";
-      rev = "d6fc980b21b15b61174ac1c8f884b6695181bc5d";
-      sha256 = "0cv6r06bqmr4ay2y666y24hb5mwd0nmwxlcrwarp3a56sn34rsp6";
+      rev = "74cad39cb9abdf89fd55b377bd814a913fcc4141";
+      sha256 = "0myf5qhb1bbdp8n3xwj1aa3p4rv0xq998arnparnzi5mxlvmjarz";
     };
     meta.homepage = "https://github.com/sainnhe/gruvbox-material/";
   };
@@ -2579,12 +2639,12 @@ final: prev:
 
   impatient-nvim = buildVimPluginFrom2Nix {
     pname = "impatient.nvim";
-    version = "2021-12-26";
+    version = "2022-01-18";
     src = fetchFromGitHub {
       owner = "lewis6991";
       repo = "impatient.nvim";
-      rev = "3ea9abedb6941995b05fdad654d9cfd51c38a31f";
-      sha256 = "06b8h3g77wrjxvhapkvx149pha29a0zcq28bj2pcvh7686cysz9k";
+      rev = "4df4e9360975a8be6e7a7270466fedfd1adcc5b6";
+      sha256 = "082ir4kslphx06x1fgyw31nc2yifx3x3p2233sjqibjjjzj0qafh";
     };
     meta.homepage = "https://github.com/lewis6991/impatient.nvim/";
   };
@@ -2639,12 +2699,12 @@ final: prev:
 
   indent-blankline-nvim = buildVimPluginFrom2Nix {
     pname = "indent-blankline.nvim";
-    version = "2021-12-01";
+    version = "2022-01-14";
     src = fetchFromGitHub {
       owner = "lukas-reineke";
       repo = "indent-blankline.nvim";
-      rev = "0f8df7e43f0cae4c44e0e8383436ad602f333419";
-      sha256 = "13jqcl54ijdzk3r17fmr2zzzjxn1njwfhipaaxyk7p6qqi1hphgj";
+      rev = "5a04e47278344326578a3d8717f1fc44f7834b2f";
+      sha256 = "19jij8i9a4n9cb2dkak9155p99yp68nx2k0dx1bw1k9rf7fwm4il";
     };
     meta.homepage = "https://github.com/lukas-reineke/indent-blankline.nvim/";
   };
@@ -2747,12 +2807,12 @@ final: prev:
 
   jedi-vim = buildVimPluginFrom2Nix {
     pname = "jedi-vim";
-    version = "2021-11-17";
+    version = "2022-01-17";
     src = fetchFromGitHub {
       owner = "davidhalter";
       repo = "jedi-vim";
-      rev = "030211555d5340e4a1acfa3a9368df85f34469d0";
-      sha256 = "09fbq010bfzs193x7g1lyhl56hcpj9m1b1k9rhdwvfjpwn9kh4x6";
+      rev = "08ad42efed82dbb7547fdebe2acc194f50e07854";
+      sha256 = "16acd976d44whpkl5bypskpf15a6mjf72pijjbg6j0jjnd2mm9qw";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/davidhalter/jedi-vim/";
@@ -2832,24 +2892,24 @@ final: prev:
 
   kanagawa-nvim = buildVimPluginFrom2Nix {
     pname = "kanagawa.nvim";
-    version = "2022-01-05";
+    version = "2022-01-21";
     src = fetchFromGitHub {
       owner = "rebelot";
       repo = "kanagawa.nvim";
-      rev = "4b454c1d261ee1ba89d60d3ab87c4ccd4e1714fe";
-      sha256 = "1gc0dgwpwmrlilkbpji5v0iiz4cwh1mf66zq0q322g72v7pi360z";
+      rev = "e308a9e5e8b527d646bf485b9148db894a617560";
+      sha256 = "07hky7mqz8zj21y0cvb7fadiv0fmxzkm6f2i490d85dj3i3njijv";
     };
     meta.homepage = "https://github.com/rebelot/kanagawa.nvim/";
   };
 
   kommentary = buildVimPluginFrom2Nix {
     pname = "kommentary";
-    version = "2021-12-03";
+    version = "2022-01-21";
     src = fetchFromGitHub {
       owner = "b3nj5m1n";
       repo = "kommentary";
-      rev = "2e1c3be90d555cd2c1f70b1c24867cee08d352f4";
-      sha256 = "1rsfc0a8pg1iipcs690hndwycllgyqrjizn3rzix2jgknzbzbbsa";
+      rev = "a190d052fca4ce74ffddb1c87c87ccf15f9111d5";
+      sha256 = "0p2hyqv73gn1lrzf8yi84cfj199jx8ix0llm4jykkxlyx3qprwq2";
     };
     meta.homepage = "https://github.com/b3nj5m1n/kommentary/";
   };
@@ -2928,12 +2988,12 @@ final: prev:
 
   lazygit-nvim = buildVimPluginFrom2Nix {
     pname = "lazygit.nvim";
-    version = "2022-01-04";
+    version = "2022-01-15";
     src = fetchFromGitHub {
       owner = "kdheepak";
       repo = "lazygit.nvim";
-      rev = "95f223c84393886c263a5c34b42abb8410db8fc5";
-      sha256 = "1d3bx35gpgmd7n62lc3zvmvqpld41z412zqnwmjiz1sx1w3cfxvd";
+      rev = "2ee9f4d0fcba6c3645a2cb52eb5fb2f23c7607eb";
+      sha256 = "199fh056ks1p8l2jahwzr5azq3rihbzqrbk6pay32qh0ixk462qv";
     };
     meta.homepage = "https://github.com/kdheepak/lazygit.nvim/";
   };
@@ -2952,12 +3012,12 @@ final: prev:
 
   lean-nvim = buildVimPluginFrom2Nix {
     pname = "lean.nvim";
-    version = "2022-01-09";
+    version = "2022-01-20";
     src = fetchFromGitHub {
       owner = "Julian";
       repo = "lean.nvim";
-      rev = "45b336e1a2f2a50e2ec6ee8a8c96906113505be5";
-      sha256 = "0alvlkmpy26y8vzvb4s5ybkanggx58isv51s6piyr1fy9y27a2q5";
+      rev = "8dc39f1ce00cf50890e7a55c3bc24017531338f7";
+      sha256 = "18aywn1hkhpxc3fgy9xys5fjh0l69nrgdwaiy9fzfqy8d6fk3ssf";
     };
     meta.homepage = "https://github.com/Julian/lean.nvim/";
   };
@@ -3000,12 +3060,12 @@ final: prev:
 
   lexima-vim = buildVimPluginFrom2Nix {
     pname = "lexima.vim";
-    version = "2022-01-06";
+    version = "2022-01-12";
     src = fetchFromGitHub {
       owner = "cohama";
       repo = "lexima.vim";
-      rev = "c80b31213a3b1c6191e575bf62ace32ee08b203b";
-      sha256 = "1aja9qcparm36kzcchmbvdk4f5m20gkm160ml625v0h04kj9l3c3";
+      rev = "22d6495d6c3c1e6cdb26ea2e541e285a5651a98a";
+      sha256 = "1aqzsckhh7abl41zh816w327f28ly8i2fh24qdgdjjmx4cpxbaxc";
     };
     meta.homepage = "https://github.com/cohama/lexima.vim/";
   };
@@ -3096,12 +3156,12 @@ final: prev:
 
   lightspeed-nvim = buildVimPluginFrom2Nix {
     pname = "lightspeed.nvim";
-    version = "2022-01-10";
+    version = "2022-01-21";
     src = fetchFromGitHub {
       owner = "ggandor";
       repo = "lightspeed.nvim";
-      rev = "2cc567615b4889a7fd3db502b42f9207e8cab6f1";
-      sha256 = "0as8i3sff236sfwdw8y1jp516y06slhxl8r3kn6wqc07jav07q5i";
+      rev = "428051b2e5212cea914510eb9eb979ec06d5b2e1";
+      sha256 = "01s3v3jfmgyrmwkifnyfh0wlm1d5fdvfvya0564y76bj4sh2lpzw";
     };
     meta.homepage = "https://github.com/ggandor/lightspeed.nvim/";
   };
@@ -3132,12 +3192,12 @@ final: prev:
 
   lir-nvim = buildVimPluginFrom2Nix {
     pname = "lir.nvim";
-    version = "2022-01-07";
+    version = "2022-01-10";
     src = fetchFromGitHub {
       owner = "tamago324";
       repo = "lir.nvim";
-      rev = "2018ee28c892abc9084bcda6057386bc2f47c32e";
-      sha256 = "0vml28dqsipkc8wa06j2acayan26i3s17jhcbx7lja685s1hlx1q";
+      rev = "ca02a1031a2393ec6bf8967657daf06e4d402523";
+      sha256 = "1r5dp40iwh227whbdizdgzkjbj5zzs1s0ryp64id3gn5vl1pfmbd";
     };
     meta.homepage = "https://github.com/tamago324/lir.nvim/";
   };
@@ -3156,48 +3216,48 @@ final: prev:
 
   litee-calltree-nvim = buildVimPluginFrom2Nix {
     pname = "litee-calltree.nvim";
-    version = "2022-01-07";
+    version = "2022-01-20";
     src = fetchFromGitHub {
       owner = "ldelossa";
       repo = "litee-calltree.nvim";
-      rev = "e02cbd623193185240694ec4f734bf53d9865c2e";
-      sha256 = "1n223h3637slf9sgqd2qa963lzdi88p3prrq16fsy3n70x02pgar";
+      rev = "be1c8d67ef80dc4cdfc164d3a95a45d8d551b3eb";
+      sha256 = "0qqyws79a4d4kn1vgb7p8iw7vlx2flb3ra2y2xvjilyvzz4ppqrq";
     };
     meta.homepage = "https://github.com/ldelossa/litee-calltree.nvim/";
   };
 
   litee-filetree-nvim = buildVimPluginFrom2Nix {
     pname = "litee-filetree.nvim";
-    version = "2022-01-07";
+    version = "2022-01-20";
     src = fetchFromGitHub {
       owner = "ldelossa";
       repo = "litee-filetree.nvim";
-      rev = "56bf4fd444964ea6bdf247dcb2cd86115b20ddd8";
-      sha256 = "1jn3zbgify98h7w8f6c0jfqf1lbpg1k0mq6k7ysc4a230y6whh05";
+      rev = "e3cbf471d1c721c202cef17060c8b4737a73875b";
+      sha256 = "1003ib2ldgi6zansdlhbvaiylywiazvjy8dlmd0rs0chlqqd4g36";
     };
     meta.homepage = "https://github.com/ldelossa/litee-filetree.nvim/";
   };
 
   litee-symboltree-nvim = buildVimPluginFrom2Nix {
     pname = "litee-symboltree.nvim";
-    version = "2022-01-10";
+    version = "2022-01-13";
     src = fetchFromGitHub {
       owner = "ldelossa";
       repo = "litee-symboltree.nvim";
-      rev = "99f9831d4561d192e13d75238459e0fda2cccb46";
-      sha256 = "19xl9k9acpb7xkc90xrxvijzvsp7sdvj9y8x858y4rib3ncx8ibv";
+      rev = "9baa027c79abdadc0a63bdd14d248241a1333b99";
+      sha256 = "0lr203px4ydakqnqavymd2f08gj5mid1nhb63rww72i7i959hz7v";
     };
     meta.homepage = "https://github.com/ldelossa/litee-symboltree.nvim/";
   };
 
   litee-nvim = buildVimPluginFrom2Nix {
     pname = "litee.nvim";
-    version = "2022-01-10";
+    version = "2022-01-19";
     src = fetchFromGitHub {
       owner = "ldelossa";
       repo = "litee.nvim";
-      rev = "6ff631a849f343d44f074d648f43fa6528edbee1";
-      sha256 = "0viy7wd9557nf2qv7bmrf3pxib5hjg4fdn6ds0hfi7sdvlvqkps4";
+      rev = "54b3bcfd70250b5a5dc1d51d0f3653a4e6892555";
+      sha256 = "0z4y7iis1fkm76ibkfln70fasywwrlrf25r3si6ns0s3wq9q849v";
     };
     meta.homepage = "https://github.com/ldelossa/litee.nvim/";
   };
@@ -3250,14 +3310,25 @@ final: prev:
     meta.homepage = "https://github.com/nvim-lua/lsp_extensions.nvim/";
   };
 
+  lsp_lines-nvim = buildVimPluginFrom2Nix {
+    pname = "lsp_lines.nvim";
+    version = "2022-01-14";
+    src = fetchgit {
+            url = "https://git.sr.ht/~whynothugo/lsp_lines.nvim";
+            rev = "6267f4234b559f756ec22dade7e8d50eb7325135";
+            sha256 = "02gzhvhsd76jx09fnqf0i67k79zygikkplhj25p36qcc0rgw1abf";
+        };
+    meta.homepage = "https://git.sr.ht/~whynothugo/lsp_lines.nvim";
+  };
+
   lsp_signature-nvim = buildVimPluginFrom2Nix {
     pname = "lsp_signature.nvim";
-    version = "2022-01-08";
+    version = "2022-01-14";
     src = fetchFromGitHub {
       owner = "ray-x";
       repo = "lsp_signature.nvim";
-      rev = "88d727c368fe315b16b04785987551683caaf5f5";
-      sha256 = "0sy70j01hha3m5advnhpl1jgnp4lwmp4blhbxsnpgzv31lb2i5g3";
+      rev = "68de04e557acdce7cf0a77defbef7ca9f0c6a457";
+      sha256 = "00amvq05cr2y6kb63a2z5xnbj5vp7hb1ycl98y5ikm61rbi2d60b";
     };
     meta.homepage = "https://github.com/ray-x/lsp_signature.nvim/";
   };
@@ -3288,12 +3359,12 @@ final: prev:
 
   lua-dev-nvim = buildVimPluginFrom2Nix {
     pname = "lua-dev.nvim";
-    version = "2021-12-31";
+    version = "2022-01-18";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "lua-dev.nvim";
-      rev = "03a44ec6a54b0a025a633978e8541584a02e46d9";
-      sha256 = "1id96h1kl299mlgqqby4kcnsb6nz51r5i4vyfdcnpla27w0pr6pd";
+      rev = "a0ee77789d9948adce64d98700cc90cecaef88d5";
+      sha256 = "10hc5iyqicbwjchwfyk7dz2wph0hz7ikjanvga9ncjk62qm2154f";
     };
     meta.homepage = "https://github.com/folke/lua-dev.nvim/";
   };
@@ -3312,24 +3383,24 @@ final: prev:
 
   lualine-nvim = buildVimPluginFrom2Nix {
     pname = "lualine.nvim";
-    version = "2022-01-09";
+    version = "2022-01-12";
     src = fetchFromGitHub {
       owner = "nvim-lualine";
       repo = "lualine.nvim";
-      rev = "bc5c2f5658821f98e55013eb3bec9d540c420470";
-      sha256 = "01isgvl59d8fg903ykasfjyw323jksqkyhbicj86bszc7sv2sh49";
+      rev = "70691ae350fdbe1f15758e3b8e2973742a7967a9";
+      sha256 = "02djs872iy9w675yrh2777d5rbb9maz26y8nfwdw9j2xm182xm6y";
     };
     meta.homepage = "https://github.com/nvim-lualine/lualine.nvim/";
   };
 
   luasnip = buildVimPluginFrom2Nix {
     pname = "luasnip";
-    version = "2022-01-02";
+    version = "2022-01-13";
     src = fetchFromGitHub {
       owner = "l3mon4d3";
       repo = "luasnip";
-      rev = "ed0140696fa99ea072bc485c87d22a396c477db3";
-      sha256 = "02scvg9f4r67jydy1sjf666bp4dq12v27f6rg1xn4lwbf9hg0f4g";
+      rev = "0222ee63c9e4b80e6000d064f8efd8edcc6d0c48";
+      sha256 = "1hjzzrxlq0h59mvd0ids62k5ps1invvawdj60q8my3arrlfbnb4v";
     };
     meta.homepage = "https://github.com/l3mon4d3/luasnip/";
   };
@@ -3444,24 +3515,24 @@ final: prev:
 
   mini-nvim = buildVimPluginFrom2Nix {
     pname = "mini.nvim";
-    version = "2022-01-06";
+    version = "2022-01-20";
     src = fetchFromGitHub {
       owner = "echasnovski";
       repo = "mini.nvim";
-      rev = "a1aa674e94c81feb1fc210527324bfb1e4a08b6f";
-      sha256 = "1blpk5p1lpd87ramnp5nqv188p8wdxsg8d1w811pmxqwas2ji7f5";
+      rev = "91969103413bb2e29e4b4d7841e68a8a65959ccd";
+      sha256 = "1r74vs6kxdy2329xiqqczk1i1zpfiplrxk2pahmw06jf2ff6y3qn";
     };
     meta.homepage = "https://github.com/echasnovski/mini.nvim/";
   };
 
   minimap-vim = buildVimPluginFrom2Nix {
     pname = "minimap.vim";
-    version = "2022-01-04";
+    version = "2022-01-12";
     src = fetchFromGitHub {
       owner = "wfxr";
       repo = "minimap.vim";
-      rev = "95a5846005b6dc57fe3ef36c15ff5705d11660b8";
-      sha256 = "1gq5r7a1i2f4vx5qaw22xd74f0f9acnky36pvm2zyp2y32qciqrf";
+      rev = "e5707899509be893a530d44b9bed8cff4cda65e1";
+      sha256 = "0kx5xdakwv9g8fhhc40rz2c0as5pjx46ymdw09bc5h1nnhwkgp8x";
     };
     meta.homepage = "https://github.com/wfxr/minimap.vim/";
   };
@@ -3526,6 +3597,18 @@ final: prev:
     meta.homepage = "https://github.com/shaunsingh/moonlight.nvim/";
   };
 
+  Navigator-nvim = buildVimPluginFrom2Nix {
+    pname = "Navigator.nvim";
+    version = "2021-11-18";
+    src = fetchFromGitHub {
+      owner = "numToStr";
+      repo = "Navigator.nvim";
+      rev = "f7b689d72649e1d5132116c76ac2ad8b97c210d4";
+      sha256 = "17yfc7ss9yslf8dvwl0vi3mdpcxp5j1g6dc8qrz20v2dx8hjxd1q";
+    };
+    meta.homepage = "https://github.com/numToStr/Navigator.nvim/";
+  };
+
   ncm2 = buildVimPluginFrom2Nix {
     pname = "ncm2";
     version = "2021-10-08";
@@ -3780,36 +3863,36 @@ final: prev:
 
   neodark-vim = buildVimPluginFrom2Nix {
     pname = "neodark.vim";
-    version = "2019-12-04";
+    version = "2022-01-16";
     src = fetchFromGitHub {
       owner = "KeitaNakamura";
       repo = "neodark.vim";
-      rev = "44919aa0bebfa60e93e653fdd2a81d1c75c2e721";
-      sha256 = "1wz9ygfdg59jwi19l9njcxknf77azlx5nkf5q0ghk6zyv1mqwvc1";
+      rev = "bd422a98e7293013d67ccfbe1d52e1144ab47083";
+      sha256 = "0rifx4x8v4ndn7p33m54gn9m3vwh1nz8lyrz87n50incryh09vbl";
     };
     meta.homepage = "https://github.com/KeitaNakamura/neodark.vim/";
   };
 
   neoformat = buildVimPluginFrom2Nix {
     pname = "neoformat";
-    version = "2021-12-26";
+    version = "2022-01-17";
     src = fetchFromGitHub {
       owner = "sbdchd";
       repo = "neoformat";
-      rev = "74c91bb4a84b6a2f160af7d3f6785ef980513566";
-      sha256 = "0v558p3ixyxw58nrz02627cji93lc3gxq5iw72k70x2i320qfb2y";
+      rev = "d31b4251cb9985a2c21e6c6dc53decdc48954680";
+      sha256 = "1j8h9gv3ilx42gm36xh9z2br3hzakf99z49s08cwfy5xvfwbm2ds";
     };
     meta.homepage = "https://github.com/sbdchd/neoformat/";
   };
 
   neogit = buildVimPluginFrom2Nix {
     pname = "neogit";
-    version = "2022-01-08";
+    version = "2022-01-16";
     src = fetchFromGitHub {
       owner = "TimUntersberger";
       repo = "neogit";
-      rev = "46ee1c5bbbc6aee521ff6f912fb72e8a6b333812";
-      sha256 = "0q27zgzj90kx4jbsrxj5xwidvmrbp4mjfdsdqdnjnza5c7l339fr";
+      rev = "3086635873ae37fc8e28d7de55c2969682104a7d";
+      sha256 = "1kff4hzgvp5fplzzi4gkmjc99mn5h414c5g1i6i0kddk4cpmhh2z";
     };
     meta.homepage = "https://github.com/TimUntersberger/neogit/";
   };
@@ -3864,24 +3947,24 @@ final: prev:
 
   neorg = buildVimPluginFrom2Nix {
     pname = "neorg";
-    version = "2022-01-08";
+    version = "2022-01-21";
     src = fetchFromGitHub {
       owner = "nvim-neorg";
       repo = "neorg";
-      rev = "420cbdb8365595eff0749cd362e00da9ccf9f627";
-      sha256 = "0y1qjcw1fw3sh46h0nlc9lwpbbn5jgm9m1sb7k37c3ql3cjvzhnv";
+      rev = "e8b8cb0a75a4ca2da6b5a9bec79cd2002ef03882";
+      sha256 = "1nf74v4147jyc1cb3scvja49160wcjqvgppiq7whgili1ic8s1d6";
     };
     meta.homepage = "https://github.com/nvim-neorg/neorg/";
   };
 
   neoscroll-nvim = buildVimPluginFrom2Nix {
     pname = "neoscroll.nvim";
-    version = "2021-08-28";
+    version = "2022-01-13";
     src = fetchFromGitHub {
       owner = "karb94";
       repo = "neoscroll.nvim";
-      rev = "cd4278795ed8ee120a97078b03aa6436802126d9";
-      sha256 = "0byd108bmiz5rhnm4jh4sb4sqma9rcac7h8q6i89hhjwn5r0qqif";
+      rev = "07242b9c29eed0367cb305d41851b2e04de9052e";
+      sha256 = "1xcj3dmrcnqrk2dzzr137n0g0crfyg3zk3220202v6b4vylairnh";
     };
     meta.homepage = "https://github.com/karb94/neoscroll.nvim/";
   };
@@ -3924,24 +4007,24 @@ final: prev:
 
   neoterm = buildVimPluginFrom2Nix {
     pname = "neoterm";
-    version = "2021-12-29";
+    version = "2022-01-20";
     src = fetchFromGitHub {
       owner = "kassio";
       repo = "neoterm";
-      rev = "6851a447bcbc5b6450b4f7ea1e248188a53ef487";
-      sha256 = "0ql3bnx5cy9lg9rs4f6ls4zygqh9kbi56a3j7rbsbhx9a9f2gxfp";
+      rev = "533d311a2a9187294ea52acab32d8565d6517059";
+      sha256 = "04k62g72bf2i7jndngp68ci9i4bldk8q3h6yk8lpyqsqkgn9q4k6";
     };
     meta.homepage = "https://github.com/kassio/neoterm/";
   };
 
   neovim-ayu = buildVimPluginFrom2Nix {
     pname = "neovim-ayu";
-    version = "2021-12-31";
+    version = "2022-01-21";
     src = fetchFromGitHub {
       owner = "Shatur";
       repo = "neovim-ayu";
-      rev = "afac814359bb03fc5a1cb9d86a45d619a59ba7d9";
-      sha256 = "1smcibp3akb9mdgvvvh5ny0avbn5lnb5scvv3d4g181c39nmx1y9";
+      rev = "0bca6a4382e7cc5e26da8dce49e7f69abfb0e998";
+      sha256 = "0pfrmzcs4vkxg74hzrp8g4kwb33m1r503c0b1yq25z33scqwc6hp";
     };
     meta.homepage = "https://github.com/Shatur/neovim-ayu/";
   };
@@ -3984,12 +4067,12 @@ final: prev:
 
   nerdcommenter = buildVimPluginFrom2Nix {
     pname = "nerdcommenter";
-    version = "2021-12-28";
+    version = "2022-01-15";
     src = fetchFromGitHub {
       owner = "preservim";
       repo = "nerdcommenter";
-      rev = "9fffd4c022da39a324a2eee2a0939db66db7c553";
-      sha256 = "0hsvs30f44a4a290p1nddlqha5sn4jiqmpsh18plrcdarsixd3hv";
+      rev = "f9c5f0fbda3be77dce5bb4b06b49d9f11b3b6c20";
+      sha256 = "040a2nq4piqzc7jdgzxcd495yc7d5a52lwjg9c4m6j91ykz3f0jb";
     };
     meta.homepage = "https://github.com/preservim/nerdcommenter/";
   };
@@ -4116,16 +4199,28 @@ final: prev:
 
   nord-nvim = buildVimPluginFrom2Nix {
     pname = "nord.nvim";
-    version = "2022-01-05";
+    version = "2022-01-20";
     src = fetchFromGitHub {
       owner = "shaunsingh";
       repo = "nord.nvim";
-      rev = "ab4ae54c932a3f1b16b63e727265cfca70be8d65";
-      sha256 = "1l5wcb6zr46wggdlnl3zcvgvgajrncs43r59a36kvvjbia7ggbdn";
+      rev = "2ec29eda54f5bbc8856794361847729b0f724095";
+      sha256 = "1fz30h6nvgy71yc6ccn6m8wbc18kz29xm11zmsxc1qlp0a6j7c59";
     };
     meta.homepage = "https://github.com/shaunsingh/nord.nvim/";
   };
 
+  nordic-nvim = buildVimPluginFrom2Nix {
+    pname = "nordic.nvim";
+    version = "2022-01-14";
+    src = fetchFromGitHub {
+      owner = "andersevenrud";
+      repo = "nordic.nvim";
+      rev = "b97cc5faafb10edd8fb5b261423b2f917ba43e1b";
+      sha256 = "0b1643j492v7pm9b1z6ana3pjvaf4dqz1zvbqnl5r0bmkl2bb4m4";
+    };
+    meta.homepage = "https://github.com/andersevenrud/nordic.nvim/";
+  };
+
   NrrwRgn = buildVimPluginFrom2Nix {
     pname = "NrrwRgn";
     version = "2021-12-01";
@@ -4152,24 +4247,24 @@ final: prev:
 
   nui-nvim = buildVimPluginFrom2Nix {
     pname = "nui.nvim";
-    version = "2022-01-08";
+    version = "2022-01-20";
     src = fetchFromGitHub {
       owner = "MunifTanjim";
       repo = "nui.nvim";
-      rev = "fc9cf4984478ff88414292ed5efa4aeb8cf63c34";
-      sha256 = "1ki1zl7gmfz99b7qnrn1y4rnlas1sqig2niqfb47wi0p24zglmaa";
+      rev = "3d4e81891ae0dfa7afcd1f2b5e96c69ec1e36072";
+      sha256 = "1hdrq6v9dyrx79f0cqqp7b8w1snbwvmr562g1lmi94jv636agmg5";
     };
     meta.homepage = "https://github.com/MunifTanjim/nui.nvim/";
   };
 
   null-ls-nvim = buildVimPluginFrom2Nix {
     pname = "null-ls.nvim";
-    version = "2022-01-09";
+    version = "2022-01-21";
     src = fetchFromGitHub {
       owner = "jose-elias-alvarez";
       repo = "null-ls.nvim";
-      rev = "c62050977ca017ba9dc252ca82532ef94105b096";
-      sha256 = "0vbjn2sb2np03cnhyzx5aisfgh27m0wbigvd0x0319z0gz04h5z6";
+      rev = "5213916f51a178287cf5162354f2f7c2c4e204bb";
+      sha256 = "0v34s75srr2ds3jw100hjr2mwbycwhvrv6y02ddzmgw0bsqfgw9c";
     };
     meta.homepage = "https://github.com/jose-elias-alvarez/null-ls.nvim/";
   };
@@ -4198,6 +4293,18 @@ final: prev:
     meta.homepage = "https://github.com/ChristianChiarulli/nvcode-color-schemes.vim/";
   };
 
+  catppuccin-nvim = buildVimPluginFrom2Nix {
+    pname = "catppuccin-nvim";
+    version = "2022-01-21";
+    src = fetchFromGitHub {
+      owner = "catppuccin";
+      repo = "nvim";
+      rev = "baf9a2c5d81f4336b0504e35c148482535dc2ac9";
+      sha256 = "00nma5a4jybncm3dj388p03nd4kkpj11l1cmd1dfmnzd41iaia99";
+    };
+    meta.homepage = "https://github.com/catppuccin/nvim/";
+  };
+
   nvim-ale-diagnostic = buildVimPluginFrom2Nix {
     pname = "nvim-ale-diagnostic";
     version = "2021-11-06";
@@ -4212,36 +4319,36 @@ final: prev:
 
   nvim-autopairs = buildVimPluginFrom2Nix {
     pname = "nvim-autopairs";
-    version = "2022-01-08";
+    version = "2022-01-14";
     src = fetchFromGitHub {
       owner = "windwp";
       repo = "nvim-autopairs";
-      rev = "5348e4a778ebdf42126a54fb5a933a98612df6cb";
-      sha256 = "0vdz4j3dvl0n04sjf67cf7iqby15g894h38vvcaavsc00ri9hsmk";
+      rev = "97e454ce9b1371373105716d196c1017394bc947";
+      sha256 = "1qdnrrchs463bjsrx5rg61527b0az2f1b929ak9lm0p1r11wgzsw";
     };
     meta.homepage = "https://github.com/windwp/nvim-autopairs/";
   };
 
   nvim-base16 = buildVimPluginFrom2Nix {
     pname = "nvim-base16";
-    version = "2021-12-02";
+    version = "2022-01-16";
     src = fetchFromGitHub {
       owner = "RRethy";
       repo = "nvim-base16";
-      rev = "7344e741b459c527b84df05a231b7e76d8b4fde9";
-      sha256 = "0qsywl7fg8j4w57ichhgif6vph3iq9iz9i67jzpyc2v66kph0yfb";
+      rev = "3720bdf0d651bb579ab0f24f889246862fdf8b00";
+      sha256 = "0x9agiyh5zjsa462bw3xqx2vnmax8qpidwd7w72zjig0hmhy34hs";
     };
     meta.homepage = "https://github.com/RRethy/nvim-base16/";
   };
 
   nvim-bqf = buildVimPluginFrom2Nix {
     pname = "nvim-bqf";
-    version = "2022-01-08";
+    version = "2022-01-20";
     src = fetchFromGitHub {
       owner = "kevinhwang91";
       repo = "nvim-bqf";
-      rev = "5aca44fd316002e65ecd277d6a8a3120e2354a14";
-      sha256 = "07bw1is4v1kmmvc2d7lzi8zdwgab8vrdy1pfsp8iwrsxvqki4ji0";
+      rev = "88ad98547aee3ac7c026c9e3654532e62cc7f1b3";
+      sha256 = "0mcwzp7g631cg40gn8zy5rblqdwwrdrzgp3byaws47cgsmldb3w1";
     };
     meta.homepage = "https://github.com/kevinhwang91/nvim-bqf/";
   };
@@ -4272,12 +4379,12 @@ final: prev:
 
   nvim-cmp = buildVimPluginFrom2Nix {
     pname = "nvim-cmp";
-    version = "2022-01-10";
+    version = "2022-01-20";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "nvim-cmp";
-      rev = "ef5bdb43fabb98a7dd82775acf28d0a361f2bb9e";
-      sha256 = "124lsz5b77ak5lmaj5w36hsprx0qgk9ga9fmpjlaq31091s50g1k";
+      rev = "1797f9e1acd2e0b5b4b6805928aebc1dcc0ecbff";
+      sha256 = "122il3siyyqpb0bshg0mx7mi6ykjqf261hkci8pg0ybqwzjvz231";
     };
     meta.homepage = "https://github.com/hrsh7th/nvim-cmp/";
   };
@@ -4306,6 +4413,18 @@ final: prev:
     meta.homepage = "https://github.com/norcalli/nvim-colorizer.lua/";
   };
 
+  nvim-comment = buildVimPluginFrom2Nix {
+    pname = "nvim-comment";
+    version = "2022-01-04";
+    src = fetchFromGitHub {
+      owner = "terrortylor";
+      repo = "nvim-comment";
+      rev = "f670649da497de12aa3d5afc0a693d5d50b17d85";
+      sha256 = "0j3pay000yf79lz5plcnfp068fychnf7xa08cg7h5s0nx5cp5bgh";
+    };
+    meta.homepage = "https://github.com/terrortylor/nvim-comment/";
+  };
+
   nvim-compe = buildVimPluginFrom2Nix {
     pname = "nvim-compe";
     version = "2021-10-02";
@@ -4344,24 +4463,24 @@ final: prev:
 
   nvim-dap = buildVimPluginFrom2Nix {
     pname = "nvim-dap";
-    version = "2022-01-07";
+    version = "2022-01-19";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-dap";
-      rev = "3f1514d020f9d73a458ac04f42d27e5b284c0e48";
-      sha256 = "19yiah00jfw061156hki4g014fgcxyf3g1jdvs9y1rk924648a7v";
+      rev = "675e13a3f4dba3c33f04d4cf3b575d72bb7b8a4a";
+      sha256 = "0irczvrvq3r2g43bxxh07plj0264z6rabwc9iivgb93wqv67w3dz";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-dap/";
   };
 
   nvim-dap-ui = buildVimPluginFrom2Nix {
     pname = "nvim-dap-ui";
-    version = "2022-01-10";
+    version = "2022-01-11";
     src = fetchFromGitHub {
       owner = "rcarriga";
       repo = "nvim-dap-ui";
-      rev = "f03c0bdcf8e2f71e78be89d1e45c2eab0e95965f";
-      sha256 = "0l0g5qila51xhgznhnl73qk8rafzbjqwb2a00ww8w4mli7vlfdng";
+      rev = "ae3b003af6c6646832dfe704a1137fd9110ab064";
+      sha256 = "0fyqhmm0l6hil2hdfwrhsabf5k8c3r5ivghgdv4g5hd8hpcncnj8";
     };
     meta.homepage = "https://github.com/rcarriga/nvim-dap-ui/";
   };
@@ -4428,12 +4547,12 @@ final: prev:
 
   nvim-gps = buildVimPluginFrom2Nix {
     pname = "nvim-gps";
-    version = "2022-01-06";
+    version = "2022-01-19";
     src = fetchFromGitHub {
       owner = "smiteshp";
       repo = "nvim-gps";
-      rev = "529e7403d76fcb1b1b4d398c47900d8bffed402e";
-      sha256 = "0xkgja7xdw7zx52yx31zywy93yiq28scacpdwnlydr9bl3dfnz8k";
+      rev = "3c0a1b7fddd63620ffe6d25fb85cb71ef68e0bd3";
+      sha256 = "1h7h8r6sfi6kzlr0n5wwrlda3whraw4128jr0djh9jjfywhnlls0";
     };
     meta.homepage = "https://github.com/smiteshp/nvim-gps/";
   };
@@ -4452,12 +4571,12 @@ final: prev:
 
   nvim-hlslens = buildVimPluginFrom2Nix {
     pname = "nvim-hlslens";
-    version = "2022-01-07";
+    version = "2022-01-14";
     src = fetchFromGitHub {
       owner = "kevinhwang91";
       repo = "nvim-hlslens";
-      rev = "d18fbcd9be71ff85e0d6f5beadbeda5339774269";
-      sha256 = "1l2s8k3b24a2niamfib4fzs50zl8jf7snw2v2bc8n8kxcw18x4xg";
+      rev = "da8afe575527af4c0b43c2ada8070814f79b143a";
+      sha256 = "1162n135997ph18d7j1zk6a2nd82g17a5vf4izzrcm7dfqg9xx9i";
     };
     meta.homepage = "https://github.com/kevinhwang91/nvim-hlslens/";
   };
@@ -4476,12 +4595,12 @@ final: prev:
 
   nvim-jdtls = buildVimPluginFrom2Nix {
     pname = "nvim-jdtls";
-    version = "2022-01-06";
+    version = "2022-01-13";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-jdtls";
-      rev = "eda96facfd46abdae960a4040840124a40664903";
-      sha256 = "1w7a7gx2gsdjmwkqi0kihc5hasnxi27iq2q7wwb790k6m9swsnps";
+      rev = "2cceff656f2bfac38da784f2cd4b202a64a2faf3";
+      sha256 = "13sx0rwz53rf8yg4ndc4m9fgvxa2xs46y92yn8rbgrjgf4xv18xi";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-jdtls/";
   };
@@ -4512,36 +4631,36 @@ final: prev:
 
   nvim-lint = buildVimPluginFrom2Nix {
     pname = "nvim-lint";
-    version = "2022-01-08";
+    version = "2022-01-20";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-lint";
-      rev = "a6afa54161f9382919ac2ec3dd71fb5e6b545bd5";
-      sha256 = "1k9312a8nqf5g7r1gvxxaw45fyc7rdjrv7b7z74fylc58p76kwl0";
+      rev = "187c70ffc6d1eb093bf1c9c102555565f53c100b";
+      sha256 = "15n1j8vjy5q9nf716zcxmycfiy9fxcgqljj7wbi42q6h4xgxnpm7";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-lint/";
   };
 
   nvim-lsp-ts-utils = buildVimPluginFrom2Nix {
     pname = "nvim-lsp-ts-utils";
-    version = "2022-01-09";
+    version = "2022-01-11";
     src = fetchFromGitHub {
       owner = "jose-elias-alvarez";
       repo = "nvim-lsp-ts-utils";
-      rev = "99e126db47512d89f7af8e787aabdd3126a12527";
-      sha256 = "04axn31x7x292jgcskjgyzxw083d686aymylmra7cya9i4yrhxdi";
+      rev = "fb2f9d86c036b52eaf6b7901e36a71632ceea264";
+      sha256 = "13ddy2g3dlg1b9wy08bxkrq2bjmqmi4xdddrwad7jv47fwpmwgrb";
     };
     meta.homepage = "https://github.com/jose-elias-alvarez/nvim-lsp-ts-utils/";
   };
 
   nvim-lspconfig = buildVimPluginFrom2Nix {
     pname = "nvim-lspconfig";
-    version = "2022-01-09";
+    version = "2022-01-21";
     src = fetchFromGitHub {
       owner = "neovim";
       repo = "nvim-lspconfig";
-      rev = "d285f720ed2b26b687a06e9c7d5d41353dd2b743";
-      sha256 = "1s3snvsbggl58rqbvvhfrxvwljdrivhs3f3z0gvjhq8gs7p9ps95";
+      rev = "58d2ba6b968539a20d701be0bf98ae154456e265";
+      sha256 = "04l70b5sl1c98gmk9s9zwa39gbp1w46ivwmyryr96g0znidh3ryk";
     };
     meta.homepage = "https://github.com/neovim/nvim-lspconfig/";
   };
@@ -4560,12 +4679,12 @@ final: prev:
 
   nvim-metals = buildVimPluginFrom2Nix {
     pname = "nvim-metals";
-    version = "2022-01-03";
+    version = "2022-01-19";
     src = fetchFromGitHub {
       owner = "scalameta";
       repo = "nvim-metals";
-      rev = "2e1257aec1f93759fb2ca7ffabe6a2e4f2034577";
-      sha256 = "0c9gxa30qvxq7cbkm64lzq5p3fyppj5454p935zgbn3zclfm2cja";
+      rev = "a07ddfb8bc6fd3626b0441ff7fe52be7221044d3";
+      sha256 = "0kmpkkqvl5x3wi4byq8cfn4y9lvwdkrj2qwzmf1drm0sqhaqrs95";
     };
     meta.homepage = "https://github.com/scalameta/nvim-metals/";
   };
@@ -4620,24 +4739,24 @@ final: prev:
 
   nvim-scrollview = buildVimPluginFrom2Nix {
     pname = "nvim-scrollview";
-    version = "2022-01-10";
+    version = "2022-01-20";
     src = fetchFromGitHub {
       owner = "dstein64";
       repo = "nvim-scrollview";
-      rev = "dcd836ef5b39c3db468c6722ddc14f97a719f673";
-      sha256 = "0w0gxf0nfymmnriwq8vi4534v8q85n0kx6x44rc034l5hinqj744";
+      rev = "f9b4b79a20b802b46049dc9cbf19ef6493b551d4";
+      sha256 = "0mx5l7vaj99ibzsvk2nmr17g43jyql6jqfwkmfn77h15xyjdp1sy";
     };
     meta.homepage = "https://github.com/dstein64/nvim-scrollview/";
   };
 
   nvim-solarized-lua = buildVimPluginFrom2Nix {
     pname = "nvim-solarized-lua";
-    version = "2021-12-26";
+    version = "2022-01-18";
     src = fetchFromGitHub {
       owner = "ishan9299";
       repo = "nvim-solarized-lua";
-      rev = "3370f5f9b478065b5b7ce6757d273fa10c49db23";
-      sha256 = "0cbssw2d9lk14ki1zmalll6z67wxpkqrjgfqnv9slswryl0xrrzx";
+      rev = "a391200d79c6342ce311ac57959565f4521a3da0";
+      sha256 = "00ay49rxx98jw4dy34751l05i2iwj7hn29d4hqi4akq24n2dwllf";
     };
     meta.homepage = "https://github.com/ishan9299/nvim-solarized-lua/";
   };
@@ -4668,36 +4787,36 @@ final: prev:
 
   nvim-tree-lua = buildVimPluginFrom2Nix {
     pname = "nvim-tree.lua";
-    version = "2021-12-24";
+    version = "2022-01-21";
     src = fetchFromGitHub {
       owner = "kyazdani42";
       repo = "nvim-tree.lua";
-      rev = "0a2f6b0b6ba558a88c77a6b262af647760e6eca8";
-      sha256 = "0svxndakxlin4jgmzmx7xj9ysbiy94hfszq89bv2qcxlkfxa78l0";
+      rev = "2dfed89af7724f9e71d2fdbe3cde791a93e9b9e0";
+      sha256 = "1842c6s3q8hd8cnnyniwjxkkl48zzdy7v2gx20fiacnf365vgzpc";
     };
     meta.homepage = "https://github.com/kyazdani42/nvim-tree.lua/";
   };
 
   nvim-treesitter = buildVimPluginFrom2Nix {
     pname = "nvim-treesitter";
-    version = "2022-01-09";
+    version = "2022-01-21";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter";
-      rev = "0d53066533643fac8d9a1a247bde3cf9132077ad";
-      sha256 = "1c7zb4k9zi1yi6kzi0p07d00pfmrgzmh3cs9flc3nxn7sp4qmp9n";
+      rev = "3c462d362f49611c295e6c4870c97e2ae7f530cd";
+      sha256 = "1sqr8q9mdggcwd2nm2wwdviad7nf9pzwxmv3wj7asnmw271a1n7b";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/";
   };
 
   nvim-treesitter-context = buildVimPluginFrom2Nix {
     pname = "nvim-treesitter-context";
-    version = "2022-01-08";
+    version = "2022-01-12";
     src = fetchFromGitHub {
       owner = "romgrk";
       repo = "nvim-treesitter-context";
-      rev = "81f434a441605f419d9f96dc902552d90b874891";
-      sha256 = "1qy0hnqqzk00pamq305hnshg8qrg5ldmq998xfdq6fngpr7cniip";
+      rev = "b7d7aba81683c1cd76141e090ff335bb55332cba";
+      sha256 = "113vvcisnypfbbnw9l9jq0avsh95p286gay3vb60ykfxjfbxsw1q";
     };
     meta.homepage = "https://github.com/romgrk/nvim-treesitter-context/";
   };
@@ -4716,24 +4835,24 @@ final: prev:
 
   nvim-treesitter-refactor = buildVimPluginFrom2Nix {
     pname = "nvim-treesitter-refactor";
-    version = "2021-12-18";
+    version = "2022-01-15";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter-refactor";
-      rev = "a21ed4d294d2da5472ce5b70385d7871c4518a1e";
-      sha256 = "1hhl6gqq56q9lfgy581cwbhyiyqji4adbmhxmhwn7d5x0lv6bv24";
+      rev = "7470880adf8b6fd20936aad33f24ce8fecdb6799";
+      sha256 = "1137n2nyvlwhaksd2syb7s4kq635da3xxm4dqj4d70irzx75bqmh";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-refactor/";
   };
 
   nvim-treesitter-textobjects = buildVimPluginFrom2Nix {
     pname = "nvim-treesitter-textobjects";
-    version = "2022-01-09";
+    version = "2022-01-21";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter-textobjects";
-      rev = "99600641de75419f7729698acf9dc3d79117ff70";
-      sha256 = "0y2w2ld90ly0mrrq3cx3j84sry78wq4izhv15idyyjbxs7zsif2k";
+      rev = "5681ed6e8754efd3de748fadd14ce9b8f06c1fd7";
+      sha256 = "0c3vj1lxp942qs0ghdp8m5ih1dxmnj8l14qjnh46dn5xrfxh73ss";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-textobjects/";
   };
@@ -4764,24 +4883,24 @@ final: prev:
 
   nvim-ts-rainbow = buildVimPluginFrom2Nix {
     pname = "nvim-ts-rainbow";
-    version = "2021-11-21";
+    version = "2022-01-21";
     src = fetchFromGitHub {
       owner = "p00f";
       repo = "nvim-ts-rainbow";
-      rev = "54ee09f540935c604c9a3d4aed83b7f5314f2caa";
-      sha256 = "1q70przqvi71vyk9wspaamvv6kkh2pd9m1w4ngxkgcxbf9wm649k";
+      rev = "5470a3bb6e7ad316d63fab0951fd181ccfdc5716";
+      sha256 = "1648zm3baqi9711r0ywpnj7a7c8giwy6bazbxhcwv0qsjnnm5n70";
     };
     meta.homepage = "https://github.com/p00f/nvim-ts-rainbow/";
   };
 
   nvim-web-devicons = buildVimPluginFrom2Nix {
     pname = "nvim-web-devicons";
-    version = "2021-12-20";
+    version = "2022-01-18";
     src = fetchFromGitHub {
       owner = "kyazdani42";
       repo = "nvim-web-devicons";
-      rev = "ac71ca88b1136e1ecb2aefef4948130f31aa40d1";
-      sha256 = "1fgl4cyichzlrl6dc2mp362kncc4aiy10svzzcqad168aj2x8rhd";
+      rev = "634e26818f2bea9161b7efa76735746838971824";
+      sha256 = "1pfhaa7xx3r4nq9bz3zj8hb1qbh5rjhmlxn1f8l7ihvbhb0s0f6z";
     };
     meta.homepage = "https://github.com/kyazdani42/nvim-web-devicons/";
   };
@@ -4812,12 +4931,12 @@ final: prev:
 
   nvim_context_vt = buildVimPluginFrom2Nix {
     pname = "nvim_context_vt";
-    version = "2022-01-10";
+    version = "2022-01-21";
     src = fetchFromGitHub {
       owner = "haringsrob";
       repo = "nvim_context_vt";
-      rev = "fcb633426eb197c0569f4640bee98972c4a7d65c";
-      sha256 = "1rm1yf0aa3wll1j02ifcjdb9mjzii8s3dvrdkmpwxgbcdyyawx5n";
+      rev = "9cf62516d16114c935eeb9bbe57b02e39c3bfbd7";
+      sha256 = "1fvsjfcfm83kvcfgps39j845pkh89s4vq2wk49a0qi5g8a8mjphx";
     };
     meta.homepage = "https://github.com/haringsrob/nvim_context_vt/";
   };
@@ -4858,6 +4977,18 @@ final: prev:
     meta.homepage = "https://github.com/mhartington/oceanic-next/";
   };
 
+  octo-nvim = buildVimPluginFrom2Nix {
+    pname = "octo.nvim";
+    version = "2022-01-20";
+    src = fetchFromGitHub {
+      owner = "pwntester";
+      repo = "octo.nvim";
+      rev = "c2ea3cba7d34ce9bce9d1e1d9710ab4b2be7e651";
+      sha256 = "126fq92v72ljmdxrdh384yck3kd4avmss37rcyfryzhzfrjj2gcj";
+    };
+    meta.homepage = "https://github.com/pwntester/octo.nvim/";
+  };
+
   one-nvim = buildVimPluginFrom2Nix {
     pname = "one-nvim";
     version = "2021-06-10";
@@ -4872,12 +5003,12 @@ final: prev:
 
   onedark-nvim = buildVimPluginFrom2Nix {
     pname = "onedark.nvim";
-    version = "2022-01-09";
+    version = "2022-01-11";
     src = fetchFromGitHub {
       owner = "navarasu";
       repo = "onedark.nvim";
-      rev = "7f5196a21e6dfd672f070ecef3521933561e8d77";
-      sha256 = "1g09zpn7xsgn8xnf45rrmfvr26j90vc4k77gw6zdw5ddpmdn2nbw";
+      rev = "e5f6772b61b4aea429db1d8cc61b8a91f467611b";
+      sha256 = "0nlr29ymv5hqiqblmlyac17w26s2y58jlaxmva4ms62x0wq4mxx0";
     };
     meta.homepage = "https://github.com/navarasu/onedark.nvim/";
   };
@@ -4896,12 +5027,12 @@ final: prev:
 
   onedarkpro-nvim = buildVimPluginFrom2Nix {
     pname = "onedarkpro.nvim";
-    version = "2022-01-06";
+    version = "2022-01-16";
     src = fetchFromGitHub {
       owner = "olimorris";
       repo = "onedarkpro.nvim";
-      rev = "4ab30ef201780b8e1b087c3a04256e54a560f597";
-      sha256 = "0b9631h17zcr48hbhm2zvna6hiymyyh2ns0f2ijz5k47013z0zs0";
+      rev = "55846471df3c6257cc2b4c7ad6001a55d52e2c34";
+      sha256 = "179wwb7b65yyh345a5hnhdc10kxchddzicdlpiqkvy77rbrxc65a";
     };
     meta.homepage = "https://github.com/olimorris/onedarkpro.nvim/";
   };
@@ -4944,12 +5075,12 @@ final: prev:
 
   orgmode = buildVimPluginFrom2Nix {
     pname = "orgmode";
-    version = "2022-01-05";
+    version = "2022-01-19";
     src = fetchFromGitHub {
       owner = "nvim-orgmode";
       repo = "orgmode";
-      rev = "2fdc13ebc9bfd904d26991ac02ea29fde973b24c";
-      sha256 = "0k73wkia0mfrwyc6hny3m8rsrk2lpvpcf98c91r4hbwv6zya8nps";
+      rev = "27c4083e29702c8b4fa5e314926ae054eb4c0dc2";
+      sha256 = "0vl95ywln1njxi7593gf2jp8y12fi6mwz3xmc8v6vd012vj4lbnk";
     };
     meta.homepage = "https://github.com/nvim-orgmode/orgmode/";
   };
@@ -4968,12 +5099,12 @@ final: prev:
 
   packer-nvim = buildVimPluginFrom2Nix {
     pname = "packer.nvim";
-    version = "2021-12-02";
+    version = "2022-01-19";
     src = fetchFromGitHub {
       owner = "wbthomason";
       repo = "packer.nvim";
-      rev = "851c62c5ecd3b5adc91665feda8f977e104162a5";
-      sha256 = "1d5zydsxgf8jfl1jy0l1w3xyz57a0p1irmc6d4l0d3wcbr5gbw5r";
+      rev = "7182f0ddbca2dd6f6723633a84d47f4d26518191";
+      sha256 = "1v9d6r94hgki1i8dq605w03d8kqfdqk589xsaxxfj4l4g6jmrsxn";
     };
     meta.homepage = "https://github.com/wbthomason/packer.nvim/";
   };
@@ -5137,12 +5268,12 @@ final: prev:
 
   presence-nvim = buildVimPluginFrom2Nix {
     pname = "presence.nvim";
-    version = "2021-11-14";
+    version = "2022-01-18";
     src = fetchFromGitHub {
       owner = "andweeb";
       repo = "presence.nvim";
-      rev = "e0cab790474fe8bf952edeeaf9bba5128a2434f1";
-      sha256 = "1p1knd67sf4pw88y73xakay50br4zhgxr5k7az24cxmqylnn89ra";
+      rev = "a579a3906ed2cfc980aed6046047ed2ebe4fbd74";
+      sha256 = "1q2gkdng7r386i8f04py3nhh5hy9vl8mj59c01v2i3iwix78rvf8";
     };
     meta.homepage = "https://github.com/andweeb/presence.nvim/";
   };
@@ -5185,12 +5316,12 @@ final: prev:
 
   project-nvim = buildVimPluginFrom2Nix {
     pname = "project.nvim";
-    version = "2021-11-06";
+    version = "2022-01-19";
     src = fetchFromGitHub {
       owner = "ahmedkhalf";
       repo = "project.nvim";
-      rev = "71d0e23dcfc43cfd6bb2a97dc5a7de1ab47a6538";
-      sha256 = "0jxxckfcm0vmcblj6fr4fbdxw7b5dwpr8b7jv59mjsyzqfcdnhs5";
+      rev = "cef52b8da07648b750d7f1e8fb93f12cb9482988";
+      sha256 = "1qwpp0a8llx437jms3ghx8wrc5rwnrkh52xp24ysymqr4lc1xfq6";
     };
     meta.homepage = "https://github.com/ahmedkhalf/project.nvim/";
   };
@@ -5221,12 +5352,12 @@ final: prev:
 
   python-mode = buildVimPluginFrom2Nix {
     pname = "python-mode";
-    version = "2021-11-14";
+    version = "2022-01-19";
     src = fetchFromGitHub {
       owner = "python-mode";
       repo = "python-mode";
-      rev = "50ced6be5ceab94a11615b5abb89ff28b0e73a9e";
-      sha256 = "023mrdc5ih1q3dz6qm1f8a97kgwbnvfjbh7z3k1r4s9c5wvg9hyz";
+      rev = "6d81349723fdb6a7ce03b27afa8ea88819f3c0d5";
+      sha256 = "1cpmjg8867qmir79pd1zay63ihp2jzd8f1igxq2954q354bk08br";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/python-mode/python-mode/";
@@ -5390,12 +5521,12 @@ final: prev:
 
   refactoring-nvim = buildVimPluginFrom2Nix {
     pname = "refactoring.nvim";
-    version = "2022-01-07";
+    version = "2022-01-21";
     src = fetchFromGitHub {
       owner = "theprimeagen";
       repo = "refactoring.nvim";
-      rev = "241bd87f2de35f954f6e3fc05ff707280dcf96c1";
-      sha256 = "1vn3nlkpywpdddlz6ddg4r0x1c31d3m7z541nnzq71fhvf2fw8c5";
+      rev = "4f63e903fbcfa5d17fdbe6ae9b03e0b09ab5af89";
+      sha256 = "0krvp2q20f6iwk33www097c2i8ah9pls6j1lmbx92n437k6sj5gj";
     };
     meta.homepage = "https://github.com/theprimeagen/refactoring.nvim/";
   };
@@ -5426,12 +5557,12 @@ final: prev:
 
   renamer-nvim = buildVimPluginFrom2Nix {
     pname = "renamer.nvim";
-    version = "2022-01-03";
+    version = "2022-01-15";
     src = fetchFromGitHub {
       owner = "filipdutescu";
       repo = "renamer.nvim";
-      rev = "6d4e3066bbf5725d15b082a7a188a3aca16ce217";
-      sha256 = "1yfkpjjkhkhkqf543is1y2r44kz9py20rl5j34lwd2zz8ldibmca";
+      rev = "80d627372f90660f135862c8a7f8941b28ee5373";
+      sha256 = "00ls708qx4i39gqdjw7l8i5az0k63i4y0ma30m5zsb1cz8gyzrnp";
     };
     meta.homepage = "https://github.com/filipdutescu/renamer.nvim/";
   };
@@ -5462,12 +5593,12 @@ final: prev:
 
   rnvimr = buildVimPluginFrom2Nix {
     pname = "rnvimr";
-    version = "2022-01-05";
+    version = "2022-01-10";
     src = fetchFromGitHub {
       owner = "kevinhwang91";
       repo = "rnvimr";
-      rev = "2c7da8bd43500f160b1f330c180c1efbabb09a68";
-      sha256 = "082p82iy8fqm66nxdwixfy9c2jg35mwkxn287pimhznsaa0dzz47";
+      rev = "86da77b6861a21aef04d644b7ad41751d9b66240";
+      sha256 = "06qarvvkxiz126446dd486zwi9yr7qxlgy4vwi38y2gyn793rv0q";
     };
     meta.homepage = "https://github.com/kevinhwang91/rnvimr/";
   };
@@ -5570,12 +5701,12 @@ final: prev:
 
   SchemaStore-nvim = buildVimPluginFrom2Nix {
     pname = "SchemaStore.nvim";
-    version = "2022-01-07";
+    version = "2022-01-20";
     src = fetchFromGitHub {
       owner = "b0o";
       repo = "SchemaStore.nvim";
-      rev = "51fc74a33bcca6dcd75e0dcfd7ccff7ebb73a8bf";
-      sha256 = "178xyishqz51cng297my5858klyxf01h5f9x7fqkwpz61pim70q7";
+      rev = "4d03a1db6d00e4a413e15d1e5f5b090a7bc5f4b6";
+      sha256 = "1zwc9n3rwsq7cqz0mryl05zggzdgir8kwsgpvd64lxmf92xzs1mv";
     };
     meta.homepage = "https://github.com/b0o/SchemaStore.nvim/";
   };
@@ -5787,12 +5918,12 @@ final: prev:
 
   sonokai = buildVimPluginFrom2Nix {
     pname = "sonokai";
-    version = "2022-01-09";
+    version = "2022-01-19";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "sonokai";
-      rev = "c4dfd15a2202eeeabefc13028af652c8322f2c49";
-      sha256 = "0apxhc6ml46lh4ardmr4pxdhz4jn6pzndzdyb92diq8fzxm1jqh6";
+      rev = "237c85d3f6c12581a675f29b7f45bee35aae48b0";
+      sha256 = "1ji6yggmhpdvrsl6ky0680br9wbxzwmwk3bbrd3sjajnvj9567pz";
     };
     meta.homepage = "https://github.com/sainnhe/sonokai/";
   };
@@ -6016,12 +6147,12 @@ final: prev:
 
   surround-nvim = buildVimPluginFrom2Nix {
     pname = "surround.nvim";
-    version = "2022-01-10";
+    version = "2022-01-21";
     src = fetchFromGitHub {
       owner = "blackCauldron7";
       repo = "surround.nvim";
-      rev = "8b05e7c7119031c8e5ecb61a3013af42fd439c7c";
-      sha256 = "0kka6gq19hx1isq6h8ip7m9asv7amq3nrhpcsq5xss5888wi4b4m";
+      rev = "bc07f9d15535b76e464bc4e9e94702136a60b785";
+      sha256 = "1j0jq44a5kqfpca3hwhx1jzwl79d3apii0j5b3l4kwhgjgvjwjdm";
     };
     meta.homepage = "https://github.com/blackCauldron7/surround.nvim/";
   };
@@ -6050,6 +6181,19 @@ final: prev:
     meta.homepage = "https://github.com/keith/swift.vim/";
   };
 
+  switch-vim = buildVimPluginFrom2Nix {
+    pname = "switch.vim";
+    version = "2021-09-29";
+    src = fetchFromGitHub {
+      owner = "AndrewRadev";
+      repo = "switch.vim";
+      rev = "900c5d3ee79b1771c5e07bf7290068ea35881756";
+      sha256 = "0fqvwlf01v7bpsmb3ssqw1kbpvfrk7qvrwxsy4y1bnm60kvnqb7a";
+      fetchSubmodules = true;
+    };
+    meta.homepage = "https://github.com/AndrewRadev/switch.vim/";
+  };
+
   symbols-outline-nvim = buildVimPluginFrom2Nix {
     pname = "symbols-outline.nvim";
     version = "2021-12-09";
@@ -6076,12 +6220,12 @@ final: prev:
 
   tabline-nvim = buildVimPluginFrom2Nix {
     pname = "tabline.nvim";
-    version = "2021-12-15";
+    version = "2022-01-16";
     src = fetchFromGitHub {
       owner = "kdheepak";
       repo = "tabline.nvim";
-      rev = "08022d401cb158ff949c3e00ce46c7a9d7d11357";
-      sha256 = "0c9hqi5a6xbbb4xk8smaw019g484wkigswm05ayfnk7xb0bg7drl";
+      rev = "c3dfa81da0a4eab7817207fa01fdcbeed783d586";
+      sha256 = "1ihblfr8bb300vfcdvsk74inw17s4c2s9xvsxgphnh85alaxbks4";
     };
     meta.homepage = "https://github.com/kdheepak/tabline.nvim/";
   };
@@ -6100,12 +6244,12 @@ final: prev:
 
   tabnine-vim = buildVimPluginFrom2Nix {
     pname = "tabnine-vim";
-    version = "2021-09-19";
+    version = "2022-01-20";
     src = fetchFromGitHub {
       owner = "codota";
       repo = "tabnine-vim";
-      rev = "7700a2809a08c1774bba6fa140c61bbd9831e12a";
-      sha256 = "1swc4y8njgr343hfc4qiyfxzavz9fhzg6hnrplxm3zm8i8fbqz68";
+      rev = "251ab5f24cc376daf488b68e2d46a219854dcf5f";
+      sha256 = "0v7jdrsyx754y13zwc6cjwqmwc4ic63ala55sxpa0bvsyx63cvdh";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/codota/tabnine-vim/";
@@ -6161,12 +6305,12 @@ final: prev:
 
   tagbar = buildVimPluginFrom2Nix {
     pname = "tagbar";
-    version = "2021-12-08";
+    version = "2022-01-20";
     src = fetchFromGitHub {
       owner = "preservim";
       repo = "tagbar";
-      rev = "0441c1c6d9b39249503bc816c7a4e5895f72729e";
-      sha256 = "0mv8pqh3llygz2b03sjklw5m1m6vdvarxyiw8kcpl4icxmc2hq19";
+      rev = "88242397b4d2fc03d20db189da84869ffbc31b64";
+      sha256 = "0x40nvkm64zwpifbm85ir4n96pyqwv6rrkdrl4a4k2rg4k0b24d1";
     };
     meta.homepage = "https://github.com/preservim/tagbar/";
   };
@@ -6233,12 +6377,12 @@ final: prev:
 
   telescope-coc-nvim = buildVimPluginFrom2Nix {
     pname = "telescope-coc.nvim";
-    version = "2022-01-04";
+    version = "2022-01-14";
     src = fetchFromGitHub {
       owner = "fannheyward";
       repo = "telescope-coc.nvim";
-      rev = "5d806a0de91abfbdad967028627e8f300946f463";
-      sha256 = "0b2497s3zdan81fslxpxpcr495wcvj1kdi5dzwl13102gd2mqn59";
+      rev = "9d1740d335a4ca1da0892369c02537a8523fd8f4";
+      sha256 = "0vkakb7xf6y6yk3bhfaj61ayldsxrn3mqnch4qind2vvbnjsr9si";
     };
     meta.homepage = "https://github.com/fannheyward/telescope-coc.nvim/";
   };
@@ -6257,12 +6401,12 @@ final: prev:
 
   telescope-file-browser-nvim = buildVimPluginFrom2Nix {
     pname = "telescope-file-browser.nvim";
-    version = "2022-01-05";
+    version = "2022-01-20";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope-file-browser.nvim";
-      rev = "c4674fff199a01d0c476838427572fa3ee632373";
-      sha256 = "1b5gnsgr0yblplbagji5h7dgz8xmcaah3kmazy1pbqa1sw79qwz1";
+      rev = "e65a5674986dcaf27c0fd852b73f5fc66fa78181";
+      sha256 = "0h76cc7mn7wmdhqk5bdgkaz3abvk15687mqkkp049xsqyjkfjzb2";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope-file-browser.nvim/";
   };
@@ -6318,12 +6462,12 @@ final: prev:
 
   telescope-github-nvim = buildVimPluginFrom2Nix {
     pname = "telescope-github.nvim";
-    version = "2022-01-10";
+    version = "2022-01-21";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope-github.nvim";
-      rev = "e25fda4f43c51b9af45370f4564a28b17ebe2570";
-      sha256 = "1rhn1mjx4q6l14r7w46qbcv9b2xw7gh3d3dvxvipxhcr54gyw38l";
+      rev = "36df6b281eb3cb47494933a3dc44c874086fa688";
+      sha256 = "1lra7c38m3amqgdlb4gnl3rnvszwzn0yv624v2h4lhax8nzzq85j";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope-github.nvim/";
   };
@@ -6378,24 +6522,24 @@ final: prev:
 
   telescope-z-nvim = buildVimPluginFrom2Nix {
     pname = "telescope-z.nvim";
-    version = "2021-12-06";
+    version = "2022-01-19";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope-z.nvim";
-      rev = "6b67c31f007720ffc53360cb91bf0aa0a41408f3";
-      sha256 = "11zsvwrkakrxagkwvapv5d53fn91yl7m0kb6c0ij68qpjbhc8ljv";
+      rev = "962766a35b8e8c77f3c92612101d4b2347687c00";
+      sha256 = "1ladvpxri5lbjdh6zvbqa306f9nanx80bxy216glq2sgz7br4f1n";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope-z.nvim/";
   };
 
   telescope-nvim = buildVimPluginFrom2Nix {
     pname = "telescope.nvim";
-    version = "2022-01-09";
+    version = "2022-01-18";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope.nvim";
-      rev = "c54fc1733e440ebe730f68a838c54c7c7e70e6fd";
-      sha256 = "0zkal6igprwvwp5f7xjm16m102j18xagi8pqxsqk17qf9zi1h8wn";
+      rev = "0011b1148d3975600f5a9f0be8058cdaac4e30d9";
+      sha256 = "129cha5pwr1blnkyvkl59ildap0zdvk2khajmvd79fkcncgffvfi";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope.nvim/";
   };
@@ -6522,12 +6666,12 @@ final: prev:
 
   todo-comments-nvim = buildVimPluginFrom2Nix {
     pname = "todo-comments.nvim";
-    version = "2021-12-11";
+    version = "2022-01-19";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "todo-comments.nvim";
-      rev = "672cd22bd15928434374ac52d0cf38dd250231df";
-      sha256 = "10cydwr1gwjm8d2isij3nshyicxdjsaf47ijbmfrzl64rscmm9yp";
+      rev = "98b1ebf198836bdc226c0562b9f906584e6c400e";
+      sha256 = "02qjn45qpvxhw7zifw0a86alika5r8b5a98y1199jpdx2d7zks7j";
     };
     meta.homepage = "https://github.com/folke/todo-comments.nvim/";
   };
@@ -6547,12 +6691,12 @@ final: prev:
 
   toggleterm-nvim = buildVimPluginFrom2Nix {
     pname = "toggleterm.nvim";
-    version = "2022-01-06";
+    version = "2022-01-13";
     src = fetchFromGitHub {
       owner = "akinsho";
       repo = "toggleterm.nvim";
-      rev = "463843d1ba0288eedaf834872c3eca114d45bddf";
-      sha256 = "0c6xz3xyfn1bw8qwz4y13y79mi4fzgrgng8qy3da9v4in13by5f9";
+      rev = "f23866b8fbb0703be4e15d50c814ffe496242a67";
+      sha256 = "0rvsba0zr3d35dxyjk99shgn7h15r93diwnga1k4s9mcxg07fsmm";
     };
     meta.homepage = "https://github.com/akinsho/toggleterm.nvim/";
   };
@@ -6679,12 +6823,12 @@ final: prev:
 
   ultisnips = buildVimPluginFrom2Nix {
     pname = "ultisnips";
-    version = "2021-11-23";
+    version = "2022-01-21";
     src = fetchFromGitHub {
       owner = "SirVer";
       repo = "ultisnips";
-      rev = "2c83e40ce66814bf813457bb58ea96184ab9bb81";
-      sha256 = "0bldpwjl7jbjdzz7ds9yyr351rdfh66z15dnbw12sicjac76qfin";
+      rev = "bc480c1aac4cb6237aa3316ab576e7a674f064ca";
+      sha256 = "1xkw1m70fr4cqc4wjawzbrkkankbyi7ma61d727sqrigzaqk1zjh";
     };
     meta.homepage = "https://github.com/SirVer/ultisnips/";
   };
@@ -6787,12 +6931,12 @@ final: prev:
 
   vifm-vim = buildVimPluginFrom2Nix {
     pname = "vifm.vim";
-    version = "2022-01-02";
+    version = "2022-01-18";
     src = fetchFromGitHub {
       owner = "vifm";
       repo = "vifm.vim";
-      rev = "d8dd9f5a03cc5bc6859651aa7599017b7240a87e";
-      sha256 = "1lv7br0djbk2v221qpvxkvz4m20rrcv6v5lf2n7d23lxbracis5z";
+      rev = "c4985dc3990e565ec8bcd82b3eda0609cdf5bcc7";
+      sha256 = "07yi58iidmagjpa3adbc767dirhdpk87pz1gza8i9ysj95jpnqjn";
     };
     meta.homepage = "https://github.com/vifm/vifm.vim/";
   };
@@ -6907,12 +7051,12 @@ final: prev:
 
   vim-addon-manager = buildVimPluginFrom2Nix {
     pname = "vim-addon-manager";
-    version = "2018-07-27";
+    version = "2022-01-12";
     src = fetchFromGitHub {
       owner = "MarcWeber";
       repo = "vim-addon-manager";
-      rev = "d9e865f3c2de5d9b7eabbc976f606cf1b89e29ea";
-      sha256 = "0mgm2dqw8js9gajkrvm5n3k9m1grjxcrfc9xdzb3jxw1c0njdhcy";
+      rev = "4da23170ddbba1cac70a1a2678eba26b0e8b65c8";
+      sha256 = "1axqblq95d2ry8r35sggr291sr41af0nzm7p7wch2wpqcwz9w0qi";
     };
     meta.homepage = "https://github.com/MarcWeber/vim-addon-manager/";
   };
@@ -7051,12 +7195,12 @@ final: prev:
 
   vim-airline = buildVimPluginFrom2Nix {
     pname = "vim-airline";
-    version = "2022-01-05";
+    version = "2022-01-12";
     src = fetchFromGitHub {
       owner = "vim-airline";
       repo = "vim-airline";
-      rev = "dd42c521ca88ad1d1d1099d014c6d0b1d88a8028";
-      sha256 = "00rxadb4izxlh88i6919xnd0l3y9gx2sz8g0xpajcl5kw13qj31z";
+      rev = "95935e66b9a3cd802900ac2d23ccaaf70145d857";
+      sha256 = "1frp3al8jzcmjhcz13drw1gh0nsany5vpqnhcihl8mqd04g638ax";
     };
     meta.homepage = "https://github.com/vim-airline/vim-airline/";
   };
@@ -7351,12 +7495,12 @@ final: prev:
 
   vim-capslock = buildVimPluginFrom2Nix {
     pname = "vim-capslock";
-    version = "2021-08-26";
+    version = "2022-01-15";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-capslock";
-      rev = "252a9166fecf79e2e2a0b2ee4e0712364472e825";
-      sha256 = "06l2q7mmp72kag009fgyks4ajm0apfqkcqhkfc40ysad19ghn65l";
+      rev = "529b32877e144f7c1a6fabe357317c4b7d94a98e";
+      sha256 = "1jay0hv9asvqpi02zcwp23l2b90n17qbc87jbvzgzjmqjgwi5dk6";
     };
     meta.homepage = "https://github.com/tpope/vim-capslock/";
   };
@@ -7399,12 +7543,12 @@ final: prev:
 
   vim-clap = buildVimPluginFrom2Nix {
     pname = "vim-clap";
-    version = "2022-01-08";
+    version = "2022-01-21";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vim-clap";
-      rev = "ec86b306aebcfbb455289252b66f5cf08f120c06";
-      sha256 = "0bgaxi979r45a6azyb346y0n5w8gsmfbwswcfxh6jmbjgcyi17m6";
+      rev = "7aa3959cad43302601d530671808f1b9cd1b5233";
+      sha256 = "07298d5fzsg1jyvwiqpphn9add0ihvk0cdhmsvz3zvabh32mx8lz";
     };
     meta.homepage = "https://github.com/liuchengxu/vim-clap/";
   };
@@ -7795,12 +7939,12 @@ final: prev:
 
   vim-dispatch = buildVimPluginFrom2Nix {
     pname = "vim-dispatch";
-    version = "2021-12-31";
+    version = "2022-01-14";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-dispatch";
-      rev = "527f200fb86c18d1cc7dc702d13f8818dced04ac";
-      sha256 = "0mr8cvggr07wrvdmbs0263flj1pl88a6vdgr5g8axsdrwnfc2lvh";
+      rev = "00e77d90452e3c710014b26dc61ea919bc895e92";
+      sha256 = "1ind8lyghdizgs0q59k3svwdmnq8l88b8ns1qq1xvz47rh836c6w";
     };
     meta.homepage = "https://github.com/tpope/vim-dispatch/";
   };
@@ -8011,12 +8155,12 @@ final: prev:
 
   vim-eunuch = buildVimPluginFrom2Nix {
     pname = "vim-eunuch";
-    version = "2022-01-03";
+    version = "2022-01-13";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-eunuch";
-      rev = "7fb5aef524808d6ba67d6d986d15a2e291194edf";
-      sha256 = "1yil4g5wym2a41isb6cdqcmccwrggy255frwxlb3rvffnl9b22m7";
+      rev = "e2c9e01abd2734919e65dd6fe6c84ca2a9b65a7d";
+      sha256 = "02ilz95fmp2j9azpxia38hka2n81x5x3b1knaidiaf1pifl0c7zn";
     };
     meta.homepage = "https://github.com/tpope/vim-eunuch/";
   };
@@ -8131,12 +8275,12 @@ final: prev:
 
   vim-floaterm = buildVimPluginFrom2Nix {
     pname = "vim-floaterm";
-    version = "2021-11-28";
+    version = "2022-01-18";
     src = fetchFromGitHub {
       owner = "voldikss";
       repo = "vim-floaterm";
-      rev = "399cb86a15b7f3ef32ba40edda0ee00f2bdb842b";
-      sha256 = "0yp1w8wbbkb2jvpw00q5sd622ns28ahi1j1v95blbb93cc6wvmvk";
+      rev = "e4166b0586efdc3ad1221afe74fa1e5135e0ad1c";
+      sha256 = "18a855hhibyndfypiryl2mcz0w3jwncg35grwh4rinpl14hh4193";
     };
     meta.homepage = "https://github.com/voldikss/vim-floaterm/";
   };
@@ -8203,12 +8347,12 @@ final: prev:
 
   vim-fugitive = buildVimPluginFrom2Nix {
     pname = "vim-fugitive";
-    version = "2021-12-29";
+    version = "2022-01-13";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-fugitive";
-      rev = "b1c3cdffc94c2cbe48777db5cf8bc9156b17d070";
-      sha256 = "1iv958x1ml0c04s8fl9195gaqhai42pq20mx0chy119ijigb363x";
+      rev = "a93ceff61f070a095c3c712c389247a80897e3b0";
+      sha256 = "0shf5l5rax465hsppswf58lypz9x80jaz74g93jlrx4xfs9k1agl";
     };
     meta.homepage = "https://github.com/tpope/vim-fugitive/";
   };
@@ -8347,12 +8491,12 @@ final: prev:
 
   vim-go = buildVimPluginFrom2Nix {
     pname = "vim-go";
-    version = "2021-11-25";
+    version = "2022-01-20";
     src = fetchFromGitHub {
       owner = "fatih";
       repo = "vim-go";
-      rev = "a319aaf6bf652dadb197807e4629ff5b1750a17b";
-      sha256 = "14q32d2cxh55qg2v9ykwayaanh47zx8fd3pj952x9zrhijkx5g4q";
+      rev = "8dfedede1c6e27e4339411b1071fee6a40663f11";
+      sha256 = "0micmffcbw70bbxcx03isrf4b4s6plz3drfjbbls7dvalws0z5pa";
     };
     meta.homepage = "https://github.com/fatih/vim-go/";
   };
@@ -8479,12 +8623,12 @@ final: prev:
 
   vim-hcl = buildVimPluginFrom2Nix {
     pname = "vim-hcl";
-    version = "2021-06-03";
+    version = "2022-01-12";
     src = fetchFromGitHub {
       owner = "jvirtanen";
       repo = "vim-hcl";
-      rev = "6289d1a1424229a8f6523f4ef9441dbf2468250b";
-      sha256 = "0x33bdvacmj82m838frr40r16mc0cvb2p9alkr2gw30ls2ym3zdy";
+      rev = "80a497d14d8ca72ae5ee4b9cc6b17fc57b46a407";
+      sha256 = "18gw4iq84lkzmczfqr2yn31lh7kfnbm085h0vvq079c4fc2qa454";
     };
     meta.homepage = "https://github.com/jvirtanen/vim-hcl/";
   };
@@ -8503,12 +8647,12 @@ final: prev:
 
   vim-helm = buildVimPluginFrom2Nix {
     pname = "vim-helm";
-    version = "2021-12-13";
+    version = "2022-01-20";
     src = fetchFromGitHub {
       owner = "towolf";
       repo = "vim-helm";
-      rev = "9c65dc6ad9b0be6b11514d9d25fe828c2299b484";
-      sha256 = "0hl48dabgssybgkbs6xr27ipsmjdk6i7fa5ynhn12c9bdbs2fnxv";
+      rev = "86a63d007ffee156d759061850cda9d8daa8ea12";
+      sha256 = "17s4zbl34zi9nhn1dr7z0kyfaf7a7r466bcj195ahsz7c9a48i62";
     };
     meta.homepage = "https://github.com/towolf/vim-helm/";
   };
@@ -8540,12 +8684,12 @@ final: prev:
 
   vim-highlightedyank = buildVimPluginFrom2Nix {
     pname = "vim-highlightedyank";
-    version = "2020-03-05";
+    version = "2022-01-15";
     src = fetchFromGitHub {
       owner = "machakann";
       repo = "vim-highlightedyank";
-      rev = "931cc6bd53e4a1fdbe592751f0e13c0e401f0a49";
-      sha256 = "091qw0zlc80micn29wb6r8m4f7pplcv8bx1yfvbn3cba77qyj3nb";
+      rev = "9669226c6db7da5fe96f9ea069f9db254a299796";
+      sha256 = "079mhfiqkgn789wl18xd03307k28ixyz37rx6vd2nh0gsfscwf25";
     };
     meta.homepage = "https://github.com/machakann/vim-highlightedyank/";
   };
@@ -8648,12 +8792,12 @@ final: prev:
 
   vim-illuminate = buildVimPluginFrom2Nix {
     pname = "vim-illuminate";
-    version = "2021-12-21";
+    version = "2022-01-13";
     src = fetchFromGitHub {
       owner = "RRethy";
       repo = "vim-illuminate";
-      rev = "8e68a8c75eee7fbfb5e94d779979fa41713ec8b2";
-      sha256 = "10gl1gj5apmn2yjr4fdm51n0wxgkx951d7hz7zfd0xhxyvsmp8dj";
+      rev = "db98338285574265a6ce54370b54d9f939e091bb";
+      sha256 = "1inhds5za9v7nja3xv1s7iwcpzd91diixq95bhknp758np6z6yj2";
     };
     meta.homepage = "https://github.com/RRethy/vim-illuminate/";
   };
@@ -8877,12 +9021,12 @@ final: prev:
 
   vim-kitty-navigator = buildVimPluginFrom2Nix {
     pname = "vim-kitty-navigator";
-    version = "2021-11-26";
+    version = "2022-01-12";
     src = fetchFromGitHub {
       owner = "knubie";
       repo = "vim-kitty-navigator";
-      rev = "443287463671020b461cec020ced52840723b95d";
-      sha256 = "0a0jy6vk7cdb0hijrrnvliak0gbyl1hh1hljlrrhdvxmqmch0022";
+      rev = "38e491ebca229b7520480a334bb398719c8e62fc";
+      sha256 = "1qsy474c2wily49lyjn34j5sin4jk2gj5pkz2cnrw6yd7nm1w9v8";
     };
     meta.homepage = "https://github.com/knubie/vim-kitty-navigator/";
   };
@@ -9069,12 +9213,12 @@ final: prev:
 
   vim-lsp = buildVimPluginFrom2Nix {
     pname = "vim-lsp";
-    version = "2022-01-09";
+    version = "2022-01-15";
     src = fetchFromGitHub {
       owner = "prabirshrestha";
       repo = "vim-lsp";
-      rev = "c5e5ccc0283b5da3944d08fdbf43c4ebb93cb449";
-      sha256 = "1mjvlwk2ai4xdg2093psm0iishjxbbysbkbi97rb4gbllanyp3mc";
+      rev = "66b56c026fa24f76f38d3bc99bd478eff9aa4be3";
+      sha256 = "0bq0h3wla97jfvvkgw5ylmfyj4jbxml6y8gl2abnanwb3ympy3mb";
     };
     meta.homepage = "https://github.com/prabirshrestha/vim-lsp/";
   };
@@ -9143,12 +9287,12 @@ final: prev:
     pname = "vim-markdown";
     version = "2020-07-14";
     src = fetchFromGitHub {
-      owner = "plasticboy";
+      owner = "preservim";
       repo = "vim-markdown";
       rev = "8e5d86f7b85234d3d1b4207dceebc43a768ed5d4";
       sha256 = "013vh2rnfifm5j56imar03rvchz68ll4lbgy9y8fbw7s9a0k6yaa";
     };
-    meta.homepage = "https://github.com/plasticboy/vim-markdown/";
+    meta.homepage = "https://github.com/preservim/vim-markdown/";
   };
 
   vim-markdown-composer = buildVimPluginFrom2Nix {
@@ -9166,24 +9310,24 @@ final: prev:
 
   vim-markdown-toc = buildVimPluginFrom2Nix {
     pname = "vim-markdown-toc";
-    version = "2021-03-02";
+    version = "2022-01-17";
     src = fetchFromGitHub {
       owner = "mzlogin";
       repo = "vim-markdown-toc";
-      rev = "b7bb6c37033d3a6c93906af48dc0e689bd948638";
-      sha256 = "026xf2gid4qivwawh7if3nfk7zja9di0flhdzdx82lvil9x48lyz";
+      rev = "ca8dbd38bc5c113b1dde0396cd1dae0ccb992f14";
+      sha256 = "17giwfyda3clr01f29smgkkfylqc5k9ph3a4ff9bkqpf7mwf793x";
     };
     meta.homepage = "https://github.com/mzlogin/vim-markdown-toc/";
   };
 
   vim-matchup = buildVimPluginFrom2Nix {
     pname = "vim-matchup";
-    version = "2022-01-08";
+    version = "2022-01-19";
     src = fetchFromGitHub {
       owner = "andymass";
       repo = "vim-matchup";
-      rev = "0981e4d5e0ad25688362b875269499ce6de36101";
-      sha256 = "04y182giixrmsm3c3q8nylbcdgkci978dwjh2qxpywvffrvz2gc8";
+      rev = "43483d27bc7abdd8f7c8c71f4d0bbf56d62e0461";
+      sha256 = "0py53inwl5csh8aa0cnldqjq73m5yl46frgylcawkx1n99q350v6";
     };
     meta.homepage = "https://github.com/andymass/vim-matchup/";
   };
@@ -9826,12 +9970,12 @@ final: prev:
 
   vim-prosession = buildVimPluginFrom2Nix {
     pname = "vim-prosession";
-    version = "2021-12-28";
+    version = "2022-01-20";
     src = fetchFromGitHub {
       owner = "dhruvasagar";
       repo = "vim-prosession";
-      rev = "c34d63e23c6e9ad388dc85948d18d218f17f583c";
-      sha256 = "0wj018nbwj7vx4v0dnwd1ms5yh9hphxfqqdbzcpd2a84rzavw7hz";
+      rev = "8f3519a8c274767ae04134377abf144c75ebf534";
+      sha256 = "1cxcnv2y5hmj1a5prddq3909xln26gfh8lhv62yqi5ckmrpzn64v";
     };
     meta.homepage = "https://github.com/dhruvasagar/vim-prosession/";
   };
@@ -9982,12 +10126,12 @@ final: prev:
 
   vim-rails = buildVimPluginFrom2Nix {
     pname = "vim-rails";
-    version = "2021-12-19";
+    version = "2022-01-16";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-rails";
-      rev = "3bac0233a49d2a00805c66bf17d3e2ea114b05d1";
-      sha256 = "0grk2jz655kmjdnhb19d2lhqi1xirl5g4577harw22ck1c7kdjvj";
+      rev = "de73f6d1b0bf1b2af2d576f3420fc861af14769f";
+      sha256 = "18lqsvnacgj5pb35qvw0bk9dpsddj63k4bmyzp8syikpqq3dzn26";
     };
     meta.homepage = "https://github.com/tpope/vim-rails/";
   };
@@ -10090,24 +10234,24 @@ final: prev:
 
   vim-salve = buildVimPluginFrom2Nix {
     pname = "vim-salve";
-    version = "2021-12-19";
+    version = "2022-01-14";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-salve";
-      rev = "1a581fa047592d0bd430cda2f3ff8ec77345a2b2";
-      sha256 = "0q8dhlizilgvfr45s33j4nax74xns2lm4iq61nyy3899s6fhfjw5";
+      rev = "7f66b7a6446fc259798c5525ba15d4e65e2fd142";
+      sha256 = "12xcql1sl23jbni6xh2cvhjxr4byaz3d987frsp41gdxkaig12cq";
     };
     meta.homepage = "https://github.com/tpope/vim-salve/";
   };
 
   vim-sandwich = buildVimPluginFrom2Nix {
     pname = "vim-sandwich";
-    version = "2021-11-30";
+    version = "2022-01-18";
     src = fetchFromGitHub {
       owner = "machakann";
       repo = "vim-sandwich";
-      rev = "cfe8b70e4f404e3bbb9d4e97e082a4294a5762a4";
-      sha256 = "0mcx85knnfmyjz0lbz6zbrv6gry8d9bp2z21af7riz93g7zi01z7";
+      rev = "6ab5f16a56f5b2361ba17a41d8644631d2b43647";
+      sha256 = "1z36b9vdl8zr1r08jm43p2qys598lbxplbjdqmywkx5y78dm4hhr";
     };
     meta.homepage = "https://github.com/machakann/vim-sandwich/";
   };
@@ -10258,24 +10402,24 @@ final: prev:
 
   vim-sleuth = buildVimPluginFrom2Nix {
     pname = "vim-sleuth";
-    version = "2022-01-05";
+    version = "2022-01-18";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-sleuth";
-      rev = "5fab39c4f643fc8cad4efb10a793b3d9979115f1";
-      sha256 = "0p2f8g3w4ixfj15aj5f6vd45havba5rbql57bhfd5nv1jb5y9wga";
+      rev = "b14a41a070d774c562eba7ff63e5f5f6968812fc";
+      sha256 = "1997ipivg7y712z2pmaqzgav6irff3gcc5vw809k8syds618w0hh";
     };
     meta.homepage = "https://github.com/tpope/vim-sleuth/";
   };
 
   vim-slime = buildVimPluginFrom2Nix {
     pname = "vim-slime";
-    version = "2022-01-05";
+    version = "2022-01-13";
     src = fetchFromGitHub {
       owner = "jpalardy";
       repo = "vim-slime";
-      rev = "32f0c3dc627662e735fee78df29c7acec4e0365c";
-      sha256 = "0gi16riib78l5gq74ixm1vvrzry6m6f64w2hnss1vypmh302b1p7";
+      rev = "0ea9b35882155996171fd15a5227e673ce2d2c60";
+      sha256 = "1palz3375v400fjlxwpc4drm36rnffz86mdkyqdqssvm41fv0wkx";
     };
     meta.homepage = "https://github.com/jpalardy/vim-slime/";
   };
@@ -10354,12 +10498,12 @@ final: prev:
 
   vim-snippets = buildVimPluginFrom2Nix {
     pname = "vim-snippets";
-    version = "2021-12-28";
+    version = "2022-01-16";
     src = fetchFromGitHub {
       owner = "honza";
       repo = "vim-snippets";
-      rev = "d253ed3b5d32ce00370ad2c0deffd6e8e482cf2d";
-      sha256 = "1c30wa82c6fbcz43h45wlgdjwmjfmxfivhfcmidfmlzwknx4i2kc";
+      rev = "00a1e5e66813ac83d21a2836b00b3493980f8f82";
+      sha256 = "0j7biq2xipk5msg3bikqk0rds4838dxq98l2m236cpzyc9lva09a";
     };
     meta.homepage = "https://github.com/honza/vim-snippets/";
   };
@@ -10534,12 +10678,12 @@ final: prev:
 
   vim-table-mode = buildVimPluginFrom2Nix {
     pname = "vim-table-mode";
-    version = "2021-12-01";
+    version = "2022-01-21";
     src = fetchFromGitHub {
       owner = "dhruvasagar";
       repo = "vim-table-mode";
-      rev = "c547471c0ed32b8511f62752974cde5277e13df4";
-      sha256 = "1qdrd87b91013z1br67j1j45s4iva7ah1r52zkkr0sj0pbiiqh7r";
+      rev = "9191af46b6bee8d3e3474c7f8ea134c800e55985";
+      sha256 = "0szp8n82qmjwpm8skq3zqbmk0j9b269h86v7p6qlwdjnvr39hnis";
     };
     meta.homepage = "https://github.com/dhruvasagar/vim-table-mode/";
   };
@@ -10775,12 +10919,12 @@ final: prev:
 
   vim-tpipeline = buildVimPluginFrom2Nix {
     pname = "vim-tpipeline";
-    version = "2021-12-27";
+    version = "2022-01-22";
     src = fetchFromGitHub {
       owner = "vimpostor";
       repo = "vim-tpipeline";
-      rev = "fcddc775f2fb2e89b2f3072e7ffdc8dd2840e0ea";
-      sha256 = "1h3mhl995jaxvyq08xkwvdmckmp1vhyvh9m4aflj9hhvh5ysnyla";
+      rev = "4190d800ec8e29e446c61011fee0dcec61f20199";
+      sha256 = "0mq9mjypq101y593ji7biwvvqzbf5argwcdnpqzphk1ikldq3xh0";
     };
     meta.homepage = "https://github.com/vimpostor/vim-tpipeline/";
   };
@@ -10835,12 +10979,12 @@ final: prev:
 
   vim-ultest = buildVimPluginFrom2Nix {
     pname = "vim-ultest";
-    version = "2022-01-03";
+    version = "2022-01-21";
     src = fetchFromGitHub {
       owner = "rcarriga";
       repo = "vim-ultest";
-      rev = "6ae08afcfba2cc8b062b6d8117c442b1c42d3b71";
-      sha256 = "06i9c9lq69g6bw9d8vj5bmv2awdj8xk27yyhbppy7xrsv31cwkds";
+      rev = "00da9eacaf4396bdc11817f987c35e5d09486eb4";
+      sha256 = "1r5zdwm20110mzwawxik563l4bw5zxhrpdsn0cgq04icp5gbbxrc";
     };
     meta.homepage = "https://github.com/rcarriga/vim-ultest/";
   };
@@ -10883,12 +11027,12 @@ final: prev:
 
   vim-vinegar = buildVimPluginFrom2Nix {
     pname = "vim-vinegar";
-    version = "2021-09-02";
+    version = "2022-01-11";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-vinegar";
-      rev = "43576e84d3034bccb1216f39f51ed36d945d7b96";
-      sha256 = "17zg5x4n9y14qw68hj0sphpghwqccafhyy4ld1b65vglz40zqi3v";
+      rev = "bb1bcddf43cfebe05eb565a84ab069b357d0b3d6";
+      sha256 = "0836s6dl12qdk6x9ihp30h8w6f5lmbs28vmp0njza5fi0m7xb4df";
     };
     meta.homepage = "https://github.com/tpope/vim-vinegar/";
   };
@@ -10943,12 +11087,12 @@ final: prev:
 
   vim-vsnip-integ = buildVimPluginFrom2Nix {
     pname = "vim-vsnip-integ";
-    version = "2021-12-13";
+    version = "2022-01-12";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "vim-vsnip-integ";
-      rev = "685b570acf24b37eaf6176180b81fabcb5e6ccc2";
-      sha256 = "0d2s9pfj5961z2n0rh44ibqk4923ynp23g28wfg0ga70fx8iqyxl";
+      rev = "5541e4ac18c732700c4310c86384bea19644d4a7";
+      sha256 = "0ilx1vmn76vnqf8v699jad0jshpg63v0m1f8ck1mh3zp53430d4q";
     };
     meta.homepage = "https://github.com/hrsh7th/vim-vsnip-integ/";
   };
@@ -10967,12 +11111,12 @@ final: prev:
 
   vim-wakatime = buildVimPluginFrom2Nix {
     pname = "vim-wakatime";
-    version = "2022-01-07";
+    version = "2022-01-21";
     src = fetchFromGitHub {
       owner = "wakatime";
       repo = "vim-wakatime";
-      rev = "441f5c7ce8adce1d30403bca26ea5e6a3a2b82e4";
-      sha256 = "1zflwz70iqfdrzlq9lvyi2awbj5s9s0daqx4rf4lkp58jb0q6jqr";
+      rev = "e7f67547956667dd87c4c74bff2760567c3e3ab1";
+      sha256 = "0v6kyjsw8ridyvvlwncprfz56iyk9rlsiva5k6sn5ir62cdwhipj";
     };
     meta.homepage = "https://github.com/wakatime/vim-wakatime/";
   };
@@ -11135,12 +11279,12 @@ final: prev:
 
   vimade = buildVimPluginFrom2Nix {
     pname = "vimade";
-    version = "2021-12-02";
+    version = "2022-01-12";
     src = fetchFromGitHub {
       owner = "TaDaa";
       repo = "vimade";
-      rev = "4f7f2ae1821dabffce52a566e7bc653012cb4940";
-      sha256 = "088yi1bb7dn2jsa4i42pi7viils3xcqln6cn84571ri5p1fs59vi";
+      rev = "fd3d3eb4bf6e5bdb643353f9d4bdae70faa16768";
+      sha256 = "046w99vqk0lmxiwnsw57yvz6xgs64wmqwfm3iymxygqz828c8n3s";
     };
     meta.homepage = "https://github.com/TaDaa/vimade/";
   };
@@ -11255,12 +11399,12 @@ final: prev:
 
   vimspector = buildVimPluginFrom2Nix {
     pname = "vimspector";
-    version = "2022-01-05";
+    version = "2022-01-21";
     src = fetchFromGitHub {
       owner = "puremourning";
       repo = "vimspector";
-      rev = "bc57b1dd14214cf3e3a476ef75e9dcb56cf0c76d";
-      sha256 = "0dc926dm2hq2qq5nbs0ljkbz316i8vz9ycfsp7yn1dhdnf3ajgzs";
+      rev = "2588e4c8dec5bd6a6803d1c86b9e7354409b7d8b";
+      sha256 = "07yv643amq7q8bpdqd5m806bw28yzjgpb2hrhnjnh0bj0fqxhkqb";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/puremourning/vimspector/";
@@ -11268,12 +11412,12 @@ final: prev:
 
   vimtex = buildVimPluginFrom2Nix {
     pname = "vimtex";
-    version = "2022-01-08";
+    version = "2022-01-19";
     src = fetchFromGitHub {
       owner = "lervag";
       repo = "vimtex";
-      rev = "525db53991e5f51668c86e2359aa31c6b3a2a226";
-      sha256 = "0xk9zyv0knm6djqsk4rxw1m82prj0jphqs48m0cbsk0jssvf39wl";
+      rev = "700c40d018b25cc367c26ba348127fe4c6d87638";
+      sha256 = "1j4vdslrbkw9zswpcgsvxgwxanjxa8vm3j5513p2ignag8pmdfc6";
     };
     meta.homepage = "https://github.com/lervag/vimtex/";
   };
@@ -11376,12 +11520,12 @@ final: prev:
 
   which-key-nvim = buildVimPluginFrom2Nix {
     pname = "which-key.nvim";
-    version = "2021-12-17";
+    version = "2022-01-19";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "which-key.nvim";
-      rev = "312c386ee0eafc925c27869d2be9c11ebdb807eb";
-      sha256 = "0v5lra7bhpna7fmch6h4r6cx7z5rr3kbp1b2c0np4k28znva3l2g";
+      rev = "28d2bd129575b5e9ebddd88506601290bb2bb221";
+      sha256 = "13k1q7zkwr5bfc2lj97nk4npy0gk49r1qbac49aib7fyzirkagkg";
     };
     meta.homepage = "https://github.com/folke/which-key.nvim/";
   };
@@ -11509,12 +11653,12 @@ final: prev:
 
   YouCompleteMe = buildVimPluginFrom2Nix {
     pname = "YouCompleteMe";
-    version = "2022-01-10";
+    version = "2022-01-11";
     src = fetchFromGitHub {
       owner = "ycm-core";
       repo = "YouCompleteMe";
-      rev = "401218a40fe8c55a934c257a9b0196158f992d2d";
-      sha256 = "0gh306ns8fbrwqf31av06gyn2wmxjvhinfjgqkd73li7gjnp2yjb";
+      rev = "7684b6c6b49f8d3bdbd17ecdc9ee7d228039808e";
+      sha256 = "1g84g4lgpxgyb7cicdz6dxgmp4gliq0633lblcwsya7m35r8c7ls";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/ycm-core/YouCompleteMe/";
@@ -11570,12 +11714,12 @@ final: prev:
 
   zig-vim = buildVimPluginFrom2Nix {
     pname = "zig.vim";
-    version = "2021-12-29";
+    version = "2022-01-17";
     src = fetchFromGitHub {
       owner = "ziglang";
       repo = "zig.vim";
-      rev = "2aefbc3380f54c8b083026414bb1b6f70d30602e";
-      sha256 = "1fbddx30c160rjc0m1p5v1w9xmmkr5lk76kh7xmvz4rxlf71ibrk";
+      rev = "29ceb12298015dfb59a6e06706c9005f76153238";
+      sha256 = "1i5h6lk0ikwhda4h368m4nn0shb6xciaqhxpag109l9xijgm3yap";
     };
     meta.homepage = "https://github.com/ziglang/zig.vim/";
   };
diff --git a/pkgs/misc/vim-plugins/overrides.nix b/pkgs/misc/vim-plugins/overrides.nix
index 1f210717c0bcd..db4f0057d6842 100644
--- a/pkgs/misc/vim-plugins/overrides.nix
+++ b/pkgs/misc/vim-plugins/overrides.nix
@@ -10,7 +10,7 @@
 , substituteAll
 
   # Language dependencies
-, python
+, python2
 , python3
 , rustPlatform
 
@@ -184,7 +184,7 @@ self: super: {
   });
 
   ctrlp-cmatcher = super.ctrlp-cmatcher.overrideAttrs (old: {
-    buildInputs = [ python ];
+    buildInputs = [ python2 ];
     buildPhase = ''
       patchShebangs .
       ./install.sh
@@ -752,7 +752,7 @@ self: super: {
             libiconv
           ];
 
-          cargoSha256 = "sha256-LSDtjQxmK+Qe0OJXoEbWeIAqP7NxU+UtVPdL86Hpv5Y=";
+          cargoSha256 = "sha256-4VXXQjGmGGQXgfzSOvFnQS+iQjidj0FjaNKZ3VzBqw0=";
         };
       in
       ''
@@ -862,7 +862,7 @@ self: super: {
   vim-isort = super.vim-isort.overrideAttrs (old: {
     postPatch = ''
       substituteInPlace ftplugin/python_vimisort.vim \
-        --replace 'import vim' 'import vim; import sys; sys.path.append("${python.pkgs.isort}/${python.sitePackages}")'
+        --replace 'import vim' 'import vim; import sys; sys.path.append("${python2.pkgs.isort}/${python2.sitePackages}")'
     '';
   });
 
@@ -871,7 +871,7 @@ self: super: {
       vim-markdown-composer-bin = rustPlatform.buildRustPackage rec {
         pname = "vim-markdown-composer-bin";
         inherit (super.vim-markdown-composer) src version;
-        cargoSha256 = "1cvnjsw5dd02wrm1q5xi8b033rsn44f7fkmw5j7lhskv5j286zrh";
+        cargoSha256 = "03d7kap6vha1jmyfrjqaja5439x6mhnvjjbz3rmxb3x4dpppbpj1";
       };
     in
     super.vim-markdown-composer.overrideAttrs (oldAttrs: rec {
@@ -916,7 +916,7 @@ self: super: {
   });
 
   vim-wakatime = super.vim-wakatime.overrideAttrs (old: {
-    buildInputs = [ python ];
+    buildInputs = [ python2 ];
   });
 
   vim-xdebug = super.vim-xdebug.overrideAttrs (old: {
diff --git a/pkgs/misc/vim-plugins/update.py b/pkgs/misc/vim-plugins/update.py
index 326e30dd5d72d..d9adc66674827 100755
--- a/pkgs/misc/vim-plugins/update.py
+++ b/pkgs/misc/vim-plugins/update.py
@@ -52,38 +52,31 @@ HEADER = (
 
 
 class VimEditor(pluginupdate.Editor):
-    def generate_nix(self, plugins: List[Tuple[str, str, pluginupdate.Plugin]], outfile: str):
-        sorted_plugins = sorted(plugins, key=lambda v: v[2].name.lower())
+    def generate_nix(self, plugins: List[Tuple[pluginupdate.PluginDesc, pluginupdate.Plugin]], outfile: str):
+        sorted_plugins = sorted(plugins, key=lambda v: v[0].name.lower())
 
         with open(outfile, "w+") as f:
             f.write(HEADER)
             f.write(textwrap.dedent("""
-                { lib, buildVimPluginFrom2Nix, fetchFromGitHub }:
+                { lib, buildVimPluginFrom2Nix, fetchFromGitHub, fetchgit }:
 
                 final: prev:
                 {"""
             ))
-            for owner, repo, plugin in sorted_plugins:
-                if plugin.has_submodules:
-                    submodule_attr = "\n      fetchSubmodules = true;"
-                else:
-                    submodule_attr = ""
+            for pdesc, plugin in sorted_plugins:
 
-                f.write(textwrap.indent(textwrap.dedent(
+                repo = pdesc.repo
+                src_nix = repo.as_nix(plugin)
+                f.write(
                     f"""
   {plugin.normalized_name} = buildVimPluginFrom2Nix {{
     pname = "{plugin.name}";
     version = "{plugin.version}";
-    src = fetchFromGitHub {{
-      owner = "{owner}";
-      repo = "{repo}";
-      rev = "{plugin.commit}";
-      sha256 = "{plugin.sha256}";{submodule_attr}
-    }};
-    meta.homepage = "https://github.com/{owner}/{repo}/";
+    src = {src_nix};
+    meta.homepage = "{repo.uri}";
   }};
 """
-                ), '  '))
+                )
             f.write("\n}\n")
         print(f"updated {outfile}")
 
diff --git a/pkgs/misc/vim-plugins/vim-plugin-names b/pkgs/misc/vim-plugins/vim-plugin-names
index fb55aff7812a5..d836b5247b863 100644
--- a/pkgs/misc/vim-plugins/vim-plugin-names
+++ b/pkgs/misc/vim-plugins/vim-plugin-names
@@ -19,10 +19,12 @@ alx741/vim-hindent
 alx741/vim-stylishask
 amiorin/ctrlp-z
 andersevenrud/cmp-tmux
+andersevenrud/nordic.nvim
 andrep/vimacs
 andreshazard/vim-logreview
 AndrewRadev/sideways.vim
 AndrewRadev/splitjoin.vim
+AndrewRadev/switch.vim
 AndrewRadev/tagalong.vim
 andsild/peskcolor.vim
 andviro/flake8-vim
@@ -62,6 +64,7 @@ buoto/gotests-vim
 camspiers/lens.vim
 camspiers/snap
 carlitux/deoplete-ternjs
+catppuccin/nvim as catppuccin-nvim
 ccarpita/rtorrent-syntax-file
 cespare/vim-toml
 chaoren/vim-wordmotion
@@ -252,6 +255,7 @@ hrsh7th/vim-vsnip
 hrsh7th/vim-vsnip-integ
 hsanson/vim-android
 hsitz/VimOrganizer
+https://git.sr.ht/~whynothugo/lsp_lines.nvim
 hura/vim-asymptote
 iamcco/coc-spell-checker
 iamcco/markdown-preview.nvim
@@ -410,6 +414,7 @@ lifepillar/vim-mucomplete
 lighttiger2505/deoplete-vim-lsp
 lilydjwg/colorizer
 lilydjwg/fcitx.vim@fcitx5
+liuchengxu/graphviz.vim
 liuchengxu/vim-clap
 liuchengxu/vim-which-key
 liuchengxu/vista.vim
@@ -497,6 +502,7 @@ morhetz/gruvbox
 motus/pig.vim
 mpickering/hlint-refactor-vim
 ms-jpq/chadtree@chad
+ms-jpq/coq_nvim
 mtikekar/vim-bsv
 MunifTanjim/nui.nvim@main
 mustache/vim-mustache-handlebars
@@ -555,6 +561,7 @@ ntpeters/vim-better-whitespace
 numirias/semshi
 numtostr/comment.nvim
 numToStr/FTerm.nvim
+numToStr/Navigator.nvim
 nvie/vim-flake8
 nvim-lua/completion-nvim
 nvim-lua/diagnostic-nvim
@@ -614,7 +621,6 @@ PeterRincker/vim-argumentative
 petRUShka/vim-opencl
 phaazon/hop.nvim
 phanviet/vim-monokai-pro
-plasticboy/vim-markdown
 Pocco81/TrueZen.nvim
 ponko2/deoplete-fish
 posva/vim-vue
@@ -626,14 +632,17 @@ prabirshrestha/vim-lsp
 preservim/nerdcommenter
 preservim/nerdtree
 preservim/tagbar
+preservim/vim-markdown
 preservim/vim-pencil
 preservim/vim-wordy
 preservim/vimux
 prettier/vim-prettier
+projekt0n/circles.nvim
 psliwka/vim-smoothie
 ptzz/lf.vim
 puremourning/vimspector
 purescript-contrib/purescript-vim
+pwntester/octo.nvim
 python-mode/python-mode
 qnighy/lalrpop.vim
 qpkorr/vim-bufkill
@@ -703,6 +712,7 @@ sakhnik/nvim-gdb
 saltstack/salt-vim
 samoshkin/vim-mergetool
 sbdchd/neoformat
+sblumentritt/bitbake.vim
 scalameta/nvim-metals
 sdiehl/vim-ormolu
 sebastianmarkow/deoplete-rust
@@ -754,6 +764,7 @@ steelsojka/pears.nvim
 stefandtw/quickfix-reflector.vim
 stephpy/vim-yaml
 stevearc/aerial.nvim
+stevearc/dressing.nvim
 stsewd/fzf-checkout.vim
 sudormrfbin/cheatsheet.nvim
 sunaku/vim-dasht
@@ -771,6 +782,7 @@ tami5/sqlite.lua
 tbastos/vim-lua
 tbodt/deoplete-tabnine
 ternjs/tern_for_vim
+terrortylor/nvim-comment
 terryma/vim-expand-region
 terryma/vim-multiple-cursors
 tex/vimpreviewpandoc
diff --git a/pkgs/misc/vscode-extensions/default.nix b/pkgs/misc/vscode-extensions/default.nix
index 954af1706fe80..307003025ccc5 100644
--- a/pkgs/misc/vscode-extensions/default.nix
+++ b/pkgs/misc/vscode-extensions/default.nix
@@ -367,6 +367,22 @@ let
 
       chenglou92.rescript-vscode = callPackage ./rescript { };
 
+      christian-kohler.path-intellisense = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "path-intellisense";
+          publisher = "christian-kohler";
+          version = "2.6.1";
+          sha256 = "sha256-ol98g3pliBlyEQ+n7cR4O04J/0QB9U8+fvf+FC0j0Fc=";
+        };
+        meta = with lib; {
+          description = "Visual Studio Code plugin that autocompletes filenames";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=christian-kohler.path-intellisense";
+          homepage = "https://github.com/ChristianKohler/PathIntellisense";
+          license = licenses.mit;
+          maintainers = with maintainers; [ imgabe ];
+        };
+      };
+
       cmschuetz12.wal = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "wal";
@@ -480,8 +496,8 @@ let
         mktplcRef = {
           name = "languagetool-linter";
           publisher = "davidlday";
-          version = "0.18.0";
-          sha256 = "sha256-AYINgq1BMfh7p4xhwSC2Www6dQvyQAGTA45HJsmMGDg=";
+          version = "0.19.0";
+          sha256 = "sha256-crq6CTXpzwHJL8FPIBneAGjDgUUNdpBt6rIaMCr1F1U=";
         };
         meta = with lib; {
           description = "LanguageTool integration for VS Code";
@@ -931,8 +947,8 @@ let
         mktplcRef = {
           name = "todo-tree";
           publisher = "Gruntfuggly";
-          version = "0.0.214";
-          sha256 = "0rwxjnrl44rnhx3183037k6435xs4772p58a37azl5cahsyav1hk";
+          version = "0.0.215";
+          sha256 = "sha256-WK9J6TvmMCLoqeKWh5FVp1mNAXPWVmRvi/iFuLWMylM=";
         };
         meta = with lib; {
           license = licenses.mit;
@@ -943,8 +959,8 @@ let
         mktplcRef = {
           name = "haskell";
           publisher = "haskell";
-          version = "1.7.1";
-          sha256 = "sha256-UWdj2J5z5cTUsfvlU++LRil0tEiAH2AFb1AwBsfMvoY=";
+          version = "1.8.0";
+          sha256 = "sha256-+k8XT2COe9Z8HvZvcrzfVuocRcxXBrVoNHDT/uKK7Hs=";
         };
         meta = with lib; {
           license = licenses.mit;
@@ -1064,6 +1080,22 @@ let
         };
       };
 
+      jdinhlife.gruvbox = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "gruvbox";
+          publisher = "jdinhlife";
+          version = "1.5.1";
+          sha256 = "sha256-0ghB0E+Wa9W2bNFFiH2Q3pUJ9HV5+JfKohX4cRyevC8=";
+        };
+        meta = with lib; {
+          description = "Gruvbox Theme";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=jdinhlife.gruvbox";
+          homepage = "https://github.com/jdinhify/vscode-theme-gruvbox";
+          license = licenses.mit;
+          maintainers = with maintainers; [ imgabe ];
+        };
+      };
+
       jnoortheen.nix-ide = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "nix-ide";
@@ -1242,14 +1274,16 @@ let
         mktplcRef = {
           name = "vscode-docker";
           publisher = "ms-azuretools";
-          version = "1.18.0";
-          sha256 = "0hhlhx3xy7x31xx2v3srvk67immajs6dm9h0wi49ii1rwx61zxah";
+          version = "1.19.0";
+          sha256 = "sha256-buIAbsyKUvX3blO1AbCq/tJ1KAcqaFpciqQovmOZ5GE=";
         };
         meta = {
           license = lib.licenses.mit;
         };
       };
 
+      ms-ceintl = callPackage ./language-packs.nix {}; # non-English language packs
+
       ms-dotnettools.csharp = callPackage ./ms-dotnettools-csharp { };
 
       ms-kubernetes-tools.vscode-kubernetes-tools = buildVscodeMarketplaceExtension {
@@ -1339,12 +1373,28 @@ let
         };
       };
 
+      oderwat.indent-rainbow = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "indent-rainbow";
+          publisher = "oderwat";
+          version = "8.2.2";
+          sha256 = "sha256-7kkJc+hhYaSKUbK4eYwOnLvae80sIg7rd0E4YyCXtPc=";
+        };
+        meta = with lib; {
+          description = "Makes indentation easier to read";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=oderwat.indent-rainbow";
+          homepage = "https://github.com/oderwat/vscode-indent-rainbow";
+          license = licenses.mit;
+          maintainers = with maintainers; [ imgabe ];
+        };
+      };
+
       redhat.java = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "java";
           publisher = "redhat";
-          version = "0.76.0";
-          sha256 = "0xb9brki4s00piv4kqgz6idm16nk6x1j6502jljz7y9pif38z32y";
+          version = "1.2.0";
+          sha256 = "sha256-YmR3FWhPZSU2gE6NIVoA1HZBzaYaTNYFXC/uNwbDEdQ=";
         };
         buildInputs = [ jdk ];
         meta = {
@@ -1357,8 +1407,8 @@ let
         mktplcRef = {
           name = "vscode-yaml";
           publisher = "redhat";
-          version = "1.2.2";
-          sha256 = "06n4fxqr3lqmiyns9jdk3rdnanamcpzhrivllai8z9d997xmwcx6";
+          version = "1.3.0";
+          sha256 = "sha256-Tz6bLcBUATn8cYIzGoLJwgaJZGbBVr1CISmJHz+iM60=";
         };
         meta = {
           license = lib.licenses.mit;
@@ -1432,6 +1482,18 @@ let
         };
       };
 
+      ritwickdey.liveserver = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "liveserver";
+          publisher = "ritwickdey";
+          version = "5.6.1";
+          sha256 = "sha256-QPMZMttYV+dQfWTniA7nko7kXukqU9g6Wj5YDYfL6hw=";
+        };
+        meta = with lib; {
+          license = licenses.mit;
+        };
+      };
+
       rubbersheep.gi = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "gi";
@@ -1472,8 +1534,8 @@ let
         mktplcRef = {
           name = "metals";
           publisher = "scalameta";
-          version = "1.11.0";
-          sha256 = "0a4agm0g16cxhvhvsmbsvvicfsjr53330rsab5xdi7gcpx9a1dff";
+          version = "1.12.0";
+          sha256 = "13zwjnrmkrs3wxh8c9nz9zxxs3p6lkj41q30v4a1md5pscfa1s44";
         };
         meta = {
           license = lib.licenses.asl20;
@@ -1574,8 +1636,8 @@ let
         mktplcRef = {
           publisher = "stkb";
           name = "rewrap";
-          version = "1.15.4";
-          sha256 = "sha256-yuXyClvhGsonvddYHDMkLSvwEsD21vOeE54Gs9BRpeg=";
+          version = "1.16.0";
+          sha256 = "sha256-351zYmMupAv/8fQ+lOc0pYzy/wsE3JqTuxfKD+AdBAc=";
         };
         meta = with lib; {
           changelog = "https://github.com/stkb/Rewrap/blob/master/CHANGELOG.md";
@@ -1591,8 +1653,8 @@ let
         mktplcRef = {
           name = "code-spell-checker";
           publisher = "streetsidesoftware";
-          version = "2.0.14";
-          sha256 = "sha256-mwcssQvaztrnUuSoo8AWK3FXT4qKmPTRCGVYkAjgfXg=";
+          version = "2.1.4";
+          sha256 = "sha256-V8ug/EtDczjiofuL7HhpN1B+qbedpnvIlXnwiXJzD/g=";
         };
         meta = with lib; {
           changelog = "https://marketplace.visualstudio.com/items/streetsidesoftware.code-spell-checker/changelog";
diff --git a/pkgs/misc/vscode-extensions/language-packs.nix b/pkgs/misc/vscode-extensions/language-packs.nix
new file mode 100644
index 0000000000000..f97727d6c2cb5
--- /dev/null
+++ b/pkgs/misc/vscode-extensions/language-packs.nix
@@ -0,0 +1,89 @@
+{ lib, vscode-utils }:
+
+with vscode-utils;
+
+let
+
+  buildVscodeLanguagePack = { language, sha256 }:
+    buildVscodeMarketplaceExtension {
+      mktplcRef = {
+        name = "vscode-language-pack-${language}";
+        publisher = "MS-CEINTL";
+        version = "1.64.3";
+        inherit sha256;
+      };
+      meta = {
+        license = lib.licenses.mit;
+      };
+    };
+
+in
+
+# See list of core language packs at https://github.com/Microsoft/vscode-loc
+{
+  # French
+  vscode-language-pack-fr = buildVscodeLanguagePack {
+    language = "fr";
+    sha256 = "sha256-6ynT1sbMgKO8iZReQ6KxFpR1VL3Nuo58MvXCtp+67vA=";
+  };
+  # Italian
+  vscode-language-pack-it = buildVscodeLanguagePack {
+    language = "it";
+    sha256 = "sha256-5aNFpzNMZAZJH3n0rJevke9P6AW0au5i8+r4PXsb9Rg=";
+  };
+  # German
+  vscode-language-pack-de = buildVscodeLanguagePack {
+    language = "de";
+    sha256 = "sha256-oEaWtsgktHKw52lnZTESkpzC/TTY8LO4yX11IgtMG5U=";
+  };
+  # Spanish
+  vscode-language-pack-es = buildVscodeLanguagePack {
+    language = "es";
+    sha256 = "sha256-utLWbved3WCCk3XzqedbYzmyaKfbMrAmR0btT09GlxA=";
+  };
+  # Russian
+  vscode-language-pack-ru = buildVscodeLanguagePack {
+    language = "ru";
+    sha256 = "sha256-0Wr2ICOiaaj4jZ555bxUJcmXO/yWDyn0UmdvxUF3WSQ=";
+  };
+  # Chinese (Simplified)
+  vscode-language-pack-zh-hans = buildVscodeLanguagePack {
+    language = "zh-hans";
+    sha256 = "sha256-irTSQcVXf/V3MuZwfx4tFcvBk+xhbFZTnb7IG28s/p4=";
+  };
+  # Chinese (Traditional)
+  vscode-language-pack-zh-hant = buildVscodeLanguagePack {
+    language = "zh-hant";
+    sha256 = "sha256-3IA/VTTTEqS6jrDYv50GnLXOTSC1XAMvqOVfOuvIdIs=";
+  };
+  # Japanese
+  vscode-language-pack-ja = buildVscodeLanguagePack {
+    language = "ja";
+    sha256 = "sha256-rxod70ddrppEYYzukksVY1dTXR8osLFAsIPr1fSFZDg=";
+  };
+  # Korean
+  vscode-language-pack-ko = buildVscodeLanguagePack {
+    language = "ko";
+    sha256 = "sha256-QYFaxJz1PqKKIiLosLQ8Tu3JNXzpxLFqgIHjjRLwjA4=";
+  };
+  # Czech
+  vscode-language-pack-cs = buildVscodeLanguagePack {
+    language = "cs";
+    sha256 = "sha256-eMk+syy2h+Xb3k6QB8PqYaF4I1ydaY6eRsvOXmelh9Q=";
+  };
+  # Portuguese (Brazil)
+  vscode-language-pack-pt-br = buildVscodeLanguagePack {
+    language = "pt-BR";
+    sha256 = "sha256-7Trz38KBl4sD7608MvTs02pUsdD05oHEj3Sp1LvtI7I=";
+  };
+  # Turkish
+  vscode-language-pack-tr = buildVscodeLanguagePack {
+    language = "tr";
+    sha256 = "sha256-T4CTpbve3vrNdW4VDfHDg8U8cQEtuxPV5LvNdtKrqzA";
+  };
+  # Pseudo Language
+  vscode-language-pack-qps-ploc = buildVscodeLanguagePack {
+    language = "qps-ploc";
+    sha256 = "sha256-rPvCr3uQPfM8vwKoV7Un5aiMZClhf6TvG1PEe3xYNI0=";
+  };
+}
diff --git a/pkgs/misc/vscode-extensions/terraform/default.nix b/pkgs/misc/vscode-extensions/terraform/default.nix
index 5055029c43e0a..e6e094bb1cb6f 100644
--- a/pkgs/misc/vscode-extensions/terraform/default.nix
+++ b/pkgs/misc/vscode-extensions/terraform/default.nix
@@ -3,8 +3,8 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
   mktplcRef = {
     name = "terraform";
     publisher = "hashicorp";
-    version = "2.18.0";
-    sha256 = "sha256-jQ4fwsAwuGDbfSb/qCV58ETtH+2e7zD/jGISGNYPxZk=";
+    version = "2.19.0";
+    sha256 = "sha256-k/fcEJuELz0xkwivSrP6Nxtz861BLq1wR2ZDMXVrvkY=";
   };
 
   patches = [ ./fix-terraform-ls.patch ];
diff --git a/pkgs/misc/vscode-extensions/vscode-utils.nix b/pkgs/misc/vscode-extensions/vscode-utils.nix
index da3630f97c41a..49b730361af12 100644
--- a/pkgs/misc/vscode-extensions/vscode-utils.nix
+++ b/pkgs/misc/vscode-extensions/vscode-utils.nix
@@ -16,7 +16,7 @@ let
     '',
     dontPatchELF ? true,
     dontStrip ? true,
-    buildInputs ? [],
+    nativeBuildInputs ? [],
     ...
   }:
   stdenv.mkDerivation ((removeAttrs a [ "vscodeExtUniqueId" ]) // {
@@ -28,7 +28,7 @@ let
 
     installPrefix = "share/vscode/extensions/${vscodeExtUniqueId}";
 
-    buildInputs = [ unzip ] ++ buildInputs;
+    nativeBuildInputs = [ unzip ] ++ nativeBuildInputs;
 
     installPhase = ''