1
0
Fork 0
mirror of https://github.com/nix-community/home-manager synced 2024-11-10 21:29:48 +01:00

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 <arnarg@fastmail.com>
Co-authored-by: musjj <72612857+musjj@users.noreply.github.com>
This commit is contained in:
Martin Schwaighofer 2023-10-25 18:11:33 +02:00 committed by Mikilio
parent c0cfd32bf0
commit 3b72c311ac
No known key found for this signature in database
GPG key ID: 5B2F1A890CF33F3F

View file

@ -18,6 +18,13 @@ in {
description = "The package to use for helix."; 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 { defaultEditor = mkOption {
type = types.bool; type = types.bool;
default = false; default = false;
@ -161,7 +168,22 @@ in {
}; };
config = mkIf cfg.enable { 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"; }; home.sessionVariables = mkIf cfg.defaultEditor { EDITOR = "hx"; };