diff --git a/wrappers/fish/config.fish b/wrappers/fish/config.fish index a469c7d..7b77cb9 100644 --- a/wrappers/fish/config.fish +++ b/wrappers/fish/config.fish @@ -1,10 +1,4 @@ -# Set up path -fish_add_path --path --prepend '@bat@/bin' -fish_add_path --path --prepend '@eza@/bin' - # Abbreviations -## misc -abbr --add --global -- vim hx ## nix abbr --add --global -- ns 'nix shell' abbr --add --global -- nss 'nix search' diff --git a/wrappers/fish/default.nix b/wrappers/fish/default.nix index 5ddb147..c25e3e6 100644 --- a/wrappers/fish/default.nix +++ b/wrappers/fish/default.nix @@ -4,18 +4,22 @@ ... }: { # TODO: Fix once https://github.com/viperML/wrapper-manager/issues/14 is resolved - wrappers.fish = let - inherit (pkgs) runCommandNoCC; - in { - basePackage = runCommandNoCC "fish-binary" {} '' + wrappers.fish = { + basePackage = pkgs.runCommandNoCC "fish-binary" {} '' install -D -m555 ${lib.getExe pkgs.fish} "$out/bin/fish" ''; extraWrapperFlags = "--inherit-argv0"; prependFlags = let + extraPkgs = with pkgs; [eza bat]; # Can't use pathAdd because fish used as login shell will ignore the variables the wrapper sets up - config-fish = runCommandNoCC "config.fish" { inherit (pkgs) bat eza; } '' - substituteAll ${./config.fish} "$out" + path-add-lines = + lib.concatMapStringsSep "\n" + (pkg: "fish_add_path --path --prepend '${lib.getExe' pkg ""}'") + extraPkgs; + config-fish = pkgs.writeText "config.fish" '' + ${path-add-lines} + source ${./config.fish} ''; in [ "-C"