From a011083cdaaa08acdc44578272b9a3adcd3f74ac Mon Sep 17 00:00:00 2001 From: Profpatsch Date: Fri, 8 Apr 2016 04:13:41 +0200 Subject: fish: pick up completion files from other packages Some packages bring their own completions in /share/fish/vendor_completions.d. Now they are picked up by fish from every path in NIX_PROFILES. --- nixos/modules/programs/fish.nix | 3 +++ pkgs/shells/fish/default.nix | 3 +++ pkgs/tools/security/pass/default.nix | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/nixos/modules/programs/fish.nix b/nixos/modules/programs/fish.nix index b4259f7ec87d..7a4b78118ce6 100644 --- a/nixos/modules/programs/fish.nix +++ b/nixos/modules/programs/fish.nix @@ -101,6 +101,9 @@ in end ''; + # include programs that bring their own completions + environment.pathsToLink = [ "/share/fish/vendor_completions.d" ]; + environment.systemPackages = [ pkgs.fish ]; environment.shells = [ diff --git a/pkgs/shells/fish/default.nix b/pkgs/shells/fish/default.nix index 521212940672..63f5dbd05ddb 100644 --- a/pkgs/shells/fish/default.nix +++ b/pkgs/shells/fish/default.nix @@ -59,6 +59,9 @@ stdenv.mkDerivation rec { '' + '' sed -i "s|/sbin /usr/sbin||" \ "$out/share/fish/functions/__fish_complete_subcommand_root.fish" + + # make fish pick up completions from nix profile + echo "set fish_complete_path (echo \$NIX_PROFILES | tr ' ' '\n')\"/share/fish/vendor_completions.d\" \$fish_complete_path" >> $out/share/fish/config.fish ''; meta = with stdenv.lib; { diff --git a/pkgs/tools/security/pass/default.nix b/pkgs/tools/security/pass/default.nix index 56e20726793d..2f6769b929b8 100644 --- a/pkgs/tools/security/pass/default.nix +++ b/pkgs/tools/security/pass/default.nix @@ -44,7 +44,7 @@ stdenv.mkDerivation rec { preInstall = '' mkdir -p "$out/share/bash-completion/completions" mkdir -p "$out/share/zsh/site-functions" - mkdir -p "$out/share/fish/completions" + mkdir -p "$out/share/fish/vendor_completions.d" ''; installFlags = [ "PREFIX=$(out)" ]; -- cgit 1.4.1