dotfiles/modules/home/common/terminal/shell/fish.nix
2025-11-20 15:29:12 +01:00

37 lines
808 B
Nix

{
lib,
pkgs,
config,
...
}: let
env =
lib.concatMapAttrsStringSep
"\n"
(name: value: "set -gx ${name} ${lib.escapeShellArg value}")
config.home.sessionVariables;
in {
programs.fish = {
enable = true;
shellAliases = config.home.shellAliases;
shellInit = lib._elements.selfReferencedString {sep = "#";} ''
# Set global environment variables.
${env}
'';
functions = {
agx = {
wraps = "ag";
description = "Runs ag on the given string and returns a list of selectable references of the result. The selection is then opened in the editor.";
body = ''
hx (ag $search $argv[2..] | fzf | cut -d : -f 1,2)
'';
};
};
preferAbbrs = true;
shellAbbrs = {
elm = "elements";
};
};
}