about summary refs log tree commit diff stats
path: root/flake/packages/default.nix
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-11-09 16:06:45 +0100
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-11-09 16:08:13 +0100
commita379b2765cd97a03c9b3a9a80180bbdcee2f5dcf (patch)
tree42f0f2ad0be1bbab8249e6dd52184f1eeb752a07 /flake/packages/default.nix
parentfix(modules/nvim/options): Use shell binary, not only directory (diff)
downloadnixos-config-a379b2765cd97a03c9b3a9a80180bbdcee2f5dcf.tar.gz
nixos-config-a379b2765cd97a03c9b3a9a80180bbdcee2f5dcf.zip
fix(flake/packages): Re-add the `nvim` package
This implementation is by-far better than the previous one and avoids
a whole set of problems that came, with trying to re-implement the NixOS
module system.
Diffstat (limited to 'flake/packages/default.nix')
-rw-r--r--flake/packages/default.nix68
1 files changed, 23 insertions, 45 deletions
diff --git a/flake/packages/default.nix b/flake/packages/default.nix
index 125bf888..5b07b6f3 100644
--- a/flake/packages/default.nix
+++ b/flake/packages/default.nix
@@ -11,53 +11,31 @@
   ...
 }: let
   inherit (pkgs) lib;
-  inherit (import ./merge.nix {inherit lib;}) merge;
   output = import ../../bootstrap {inherit pkgs sysLib;};
 
-  # FIXME: Do what the trace says. <2024-11-09>
-  nvim = builtins.trace "nvim build currently broken, using default" {
-    tiamat = pkgs.neovim;
-    apzu =
-      pkgs.neovim;
-  };
-  # builtins.mapAttrs (
-  #   name: value: let
-  #     nvim_config =
-  #       import ../../modules/home.legacy/conf/nvim/default.nix
-  #       build_args;
-  #     build_args = let
-  #       inherit (value._module.args) pkgs;
-  #       inherit (pkgs) lib;
-  #     in {
-  #       inherit pkgs pkgsStable lib;
-  #       nixosConfig = value.config;
-  #       config = value.config.home-manager.users.soispha;
-  #     };
-  #
-  #     resolve_imports = attrs:
-  #       merge (builtins.map (v: import v build_args)
-  #         attrs.imports);
-  #
-  #     resolve_imports' = attrs:
-  #       if builtins.any (n: n == "imports") (builtins.attrNames attrs)
-  #       then
-  #         resolve_imports' (merge [
-  #           (resolve_imports attrs)
-  #           (builtins.removeAttrs
-  #             attrs
-  #             ["imports"])
-  #         ])
-  #       else attrs;
-  #
-  #     complete_config = resolve_imports' nvim_config;
-  #   in
-  #     nixVim.legacyPackages."${system}".makeNixvim
-  #     (
-  #       builtins.removeAttrs
-  #       complete_config.programs.nixvim ["enable"]
-  #     )
-  # )
-  # self.nixosConfigurations;
+  nvim =
+    builtins.mapAttrs (
+      name: value: let
+        config = value.config.home-manager.users.soispha.programs.nixvim;
+
+        # NOTE: This is copied from `nixvim`, and could be achieved by setting
+        # `config.wrapRc` to `true`. But I have yet to find a way to set this in this
+        # context, but not in the general context.  <2024-11-09>
+        wrapped = config.build.package.override (prev: {
+          wrapperArgs =
+            (
+              if lib.isString prev.wrapperArgs
+              then prev.wrapperArgs
+              else lib.escapeShellArgs prev.wrapperArgs
+            )
+            + " "
+            + ''--add-flags -u --add-flags "${config.build.initFile}"'';
+          wrapRc = false;
+        });
+      in
+        wrapped
+    )
+    self.nixosConfigurations;
 
   output_neovim = lib.attrsets.mapAttrs' (name: value: lib.attrsets.nameValuePair "nvim_${name}" value) nvim;