diff options
Diffstat (limited to 'modules/programs/fish/fasd.nix')
-rw-r--r-- | modules/programs/fish/fasd.nix | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/modules/programs/fish/fasd.nix b/modules/programs/fish/fasd.nix new file mode 100644 index 00000000..c3386568 --- /dev/null +++ b/modules/programs/fish/fasd.nix @@ -0,0 +1,30 @@ +{ pkgs, config, lib, ... }: + +with lib; + +let cfg = config.vuizvui.programs.fish.fasd; +in + +{ + options.vuizvui.programs.fish.fasd = { + enable = mkEnableOption "fasd integration in fish"; + }; + + config = mkIf cfg.enable { + + environment.systemPackages = [ pkgs.fasd ]; + + programs.fish = { + interactiveShellInit = let fasd = "${pkgs.fasd}/bin/fasd"; in '' + function -e fish_preexec _run_fasd + ${fasd} --proc (${fasd} --sanitize "$argv") > "/dev/null" 2>&1 + end + function z --description "Jump to folder by usage frequency" + cd (fasd -d -e 'printf %s' "$argv") + end + set PATH (dirname ${fasd}) $PATH + ''; + }; + + }; +} |