From 3b72c311ac3d156c090613a69cb11b0cca6ecc34 Mon Sep 17 00:00:00 2001 From: Martin Schwaighofer Date: Wed, 25 Oct 2023 18:11:33 +0200 Subject: [PATCH] helix: add extraPackages option Closes #2923 based on how arnarg solves this in his personal config. With review suggestions from musjj. Co-authored-by: Arnar Gauti Ingason Co-authored-by: musjj <72612857+musjj@users.noreply.github.com> --- modules/programs/helix.nix | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/modules/programs/helix.nix b/modules/programs/helix.nix index e8390ffd6..9c5519f3b 100644 --- a/modules/programs/helix.nix +++ b/modules/programs/helix.nix @@ -18,6 +18,13 @@ in { description = "The package to use for helix."; }; + extraPackages = mkOption { + type = with types; listOf package; + default = [ ]; + example = literalExpression "[ pkgs.marksman ]"; + description = "Extra packages available to hx."; + }; + defaultEditor = mkOption { type = types.bool; default = false; @@ -161,7 +168,22 @@ in { }; config = mkIf cfg.enable { - home.packages = [ cfg.package ]; + home.packages = if cfg.extraPackages != [ ] then + [ + (pkgs.symlinkJoin { + name = + "${lib.getName cfg.package}-wrapped-${lib.getVersion cfg.package}"; + paths = [ cfg.package ]; + preferLocalBuild = true; + nativeBuildInputs = [ pkgs.makeWrapper ]; + postBuild = '' + wrapProgram $out/bin/hx \ + --prefix PATH : ${lib.makeBinPath cfg.extraPackages} + ''; + }) + ] + else + [ cfg.package ]; home.sessionVariables = mkIf cfg.defaultEditor { EDITOR = "hx"; };