ooknet/home/ooks/opt/nvim/default.nix
2023-08-21 13:08:04 +12:00

64 lines
1.7 KiB
Nix

{ config, pkgs, lib, ... }:
# Let-In ----------------------------------------------------------------------------------------{{{
let
inherit (lib) concatStringsSep optional;
inherit (config.lib.file) mkOutOfStoreSymlink;
# customNvChad = ./nvchad-custom;
populateEnv = ./populate-nvim-env.py;
populateEnvScript = ''
mkdir -p ${config.xdg.dataHome}/nvim/site/plugin
${pkgs.python39}/bin/python ${populateEnv} -o ${config.xdg.dataHome}/nvim/site/plugin
'';
# }}}
in
{
# Neovim
# https://rycee.gitlab.io/home-manager/options.html#opt-programs.neovim.enable
programs.neovim.enable = true;
programs.neovim.viAlias = true;
programs.neovim.vimAlias = true;
# Config and plugins ------------------------------------------------------------------------- {{{
xdg.configFile."nvim" = {
source = "${pkgs.nvchad}";
};
home.packages = with pkgs; [
nvchad
(pkgs.writeShellScriptBin "update-nvim-env" ''
#
# update-nvim-env
#
# Update neovim env such that it can be used in neovide or other GUIs.
${populateEnvScript}
'')
];
home.activation.neovim = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
echo "Populating neovim env..."
${populateEnvScript}
'';
programs.bash.initExtra = lib.mkAfter ''
export EDITOR="${config.programs.neovim.package}/bin/nvim"
'';
programs.zsh.initExtra = lib.mkAfter ''
export EDITOR="${config.programs.neovim.package}/bin/nvim"
'';
home.sessionVariables.EDITOR = "nvim";
# Required packages -------------------------------------------------------------------------- {{{
programs.neovim.extraPackages = with pkgs; [
nodejs_20
gcc
];
# }}}
}
# vim: foldmethod=marker