550389392a
The previous implementation of plugin-support for the kakoune derivation was based on generating, at build time, a `plugins.kak` file that would source all .kak files in the list of plugins, and wrap the `kak` binary in a script that would add some command-line arguments so that this file gets loaded on start-up. The main problem with this approach is that the plugins' code get executed *after* the user's configuration file is loaded, so effectively one cannot automatically activate/configure these plugins. The idiomatic way of loading plugins is ensuring they end up installed somwhere under `share/kak/autoload`. Because plugins are already being packaged to have their code in `share/kak/autoload/plugins/<name-of-plugin>`, we can obtain a derivation that includes the plugins simply by doing a `symlinkJoin` of `kakoune-unwrapped` and all the requested plugins. For this to work, we need to fix two issues: 1. By default, kakoune makes `share/kak/autoload` a symbolic link to `share/kak/rc`, which contains all builtin definitions. We need to patch this to put the symlink under `share/kak/autoload/rc`, so that the join works. 2. By default kakoune expects the `autoload` directory to be in `../share/kak/autoload` relative to the location of the `kak` binary. We need to set the `KAKOUNE_RUNTIME` to point the symlinked share/kak for this to work. |
||
---|---|---|
.. | ||
agda-packages.nix | ||
aliases.nix | ||
all-packages.nix | ||
beam-packages.nix | ||
config.nix | ||
coq-packages.nix | ||
darwin-packages.nix | ||
default.nix | ||
dhall-packages.nix | ||
dotnet-packages.nix | ||
emacs-packages.nix | ||
emscripten-packages.nix | ||
haskell-packages.nix | ||
haxe-packages.nix | ||
impure.nix | ||
java-packages.nix | ||
lua-packages.nix | ||
make-tarball.nix | ||
metrics.nix | ||
ocaml-packages.nix | ||
packages-config.nix | ||
perl-packages.nix | ||
php-packages.nix | ||
pure-packages.nix | ||
python-packages.nix | ||
release-alternatives.nix | ||
release-cross.nix | ||
release-lib.nix | ||
release-python.nix | ||
release-small.nix | ||
release.nix | ||
ruby-packages.nix | ||
splice.nix | ||
stage.nix | ||
static.nix | ||
unix-tools.nix | ||
wine-packages.nix |