diff options
-rw-r--r-- | modules/module-list.nix | 1 | ||||
-rw-r--r-- | modules/programs/fish/fasd.nix | 30 |
2 files changed, 31 insertions, 0 deletions
diff --git a/modules/module-list.nix b/modules/module-list.nix index bdbb8e1e..3b6bff9c 100644 --- a/modules/module-list.nix +++ b/modules/module-list.nix @@ -6,6 +6,7 @@ ./profiles/common.nix ./profiles/tests.nix ./programs/gnupg + ./programs/fish/fasd.nix ./services/multipath-vpn.nix ./services/postfix ./services/starbound.nix 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 + ''; + }; + + }; +} |