9   nvim-impure = "/home/julm/work/sourcephile/nix/julm-nix/home-manager/profiles/nvim/";
 
  10   optionalPlugin = plugin: {
 
  16   # DevelopmentNote: home-manager provides a (convoluted) wrapper
 
  17   # around pkgs.wrapNeovimUnstable,
 
  18   # and writes a minimal ~/.config/nvim/init.lua
 
  19   # which is here configured to source ./nvim from:
 
  20   # - either ${nvim-impure} which is where I store ./nvim before it gets into the Nix store.
 
  21   # - or ./nvim copied into the Nix store when rebuilding the system with home-manager.
 
  23   # So, for quick feedback:
 
  24   # - if only ./nvim has changed: relaunch nvim
 
  25   # - or if only new plugin packages are required, rebuild nvim:
 
  26   #     nix -L build .#nixosConfigurations.nan2gua1.config.home-manager.users.julm.programs.neovim.finalPackage &&
 
  28   # - or if external packages need to be install: reinstall normally
 
  30     enable = lib.mkDefault true;
 
  32       -- Lua config for normal usage
 
  33       vim.opt.runtimepath:prepend('${./nvim}')
 
  35       -- Lua config for quick feedback when changing ./nvim
 
  36       vim.opt.runtimepath:prepend("${nvim-impure}")
 
  38       -- Load ./nvim/lua/config
 
  41       -- Lazy load ./nvim/lua/plugins
 
  42       require("lz.n").load("plugins")
 
  44       -- Overrides `require()` to also search for optional plugins and load them with lz.n
 
  45       require("lzn-auto-require").enable()
 
  49       pkgs.vimPlugins.lzn-auto-require
 
  51     ++ lib.map optionalPlugin [
 
  52       pkgs.vimPlugins.blink-cmp
 
  53       pkgs.vimPlugins.comment-nvim
 
  54       pkgs.vimPlugins.conform-nvim
 
  55       pkgs.vimPlugins.fastaction-nvim
 
  56       #pkgs.vimPlugins.fine-cmdline-nvim
 
  57       pkgs.vimPlugins.git-conflict-nvim
 
  58       pkgs.vimPlugins.github-nvim-theme
 
  59       pkgs.vimPlugins.gitlinker-nvim
 
  60       pkgs.vimPlugins.gitsigns-nvim
 
  61       pkgs.vimPlugins.haskell-tools-nvim
 
  62       pkgs.vimPlugins.hunk-nvim
 
  63       pkgs.vimPlugins.image-nvim
 
  64       (pkgs.vimUtils.buildVimPlugin {
 
  69       pkgs.vimPlugins.lualine-nvim
 
  71         (pkgs.vimUtils.buildVimPlugin {
 
  74           src = inputs.modes-nvim;
 
  77       pkgs.vimPlugins.neo-tree-nvim
 
  78       #pkgs.vimPlugins.neovim-ayu
 
  79       pkgs.vimPlugins.nvim-colorizer-lua
 
  80       pkgs.vimPlugins.nvim-fzf # For telescope
 
  81       pkgs.vimPlugins.nvim-lint
 
  82       pkgs.vimPlugins.nvim-navbuddy
 
  83       pkgs.vimPlugins.nvim-navic # For navbuddy
 
  84       pkgs.vimPlugins.nvim-treesitter
 
  85       pkgs.vimPlugins.nvim-web-devicons
 
  87         (pkgs.vimUtils.buildVimPlugin {
 
  88           pname = "solarized-osaka.nvim";
 
  90           src = inputs.solarized-osaka-nvim;
 
  94       pkgs.vimPlugins.telescope-fzf-native-nvim
 
  95       pkgs.vimPlugins.telescope-git-conflicts-nvim
 
  96       pkgs.vimPlugins.telescope-live-grep-args-nvim
 
  97       pkgs.vimPlugins.telescope-nvim
 
  98       pkgs.vimPlugins.vim-illuminate
 
  99       pkgs.vimPlugins.which-key-nvim
 
 110     extraLuaPackages = ps: [ ps.magick ];
 
 111     extraPackages = [ pkgs.imagemagick ];
 
 116         package = pkgs.neovim-unwrapped;
 
 121           "--noblacklist=/tmp/tmux-*"
 
 123           "--profile=${pkgs.firejail}/etc/firejail/nvim.profile"
 
 127         inherit (pkgs.neovim-unwrapped) lua;
 
 130   home.packages = lib.mkIf config.programs.neovim.enable (
 
 135           pkgs.nixfmt-rfc-style
 
 147           pkgs.bash-language-server
 
 148           pkgs.lua-language-server
 
 160         ++ lib.optionals pkgs.stdenv.hostPlatform.isLinux [