1{
2 pkgs,
3 lib,
4 config,
5 ...
6}:
7let
8 inherit (lib) mkEnableOption mkIf;
9 cfg = config.py.programs.fish;
10in
11{
12 options.py.programs.fish.enable = mkEnableOption "fish shell";
13 config.catppuccin.fish.enable = cfg.enable;
14 config.programs.fish = mkIf cfg.enable {
15 enable = true;
16 shellAliases = {
17 "lg" = "lazygit";
18 "cat" = "bat";
19 "gls" = "eza -lah@ --icons --git --git-ignore --no-user";
20 "ls" = "eza --icons -a";
21 "ll" = "eza --icons -lah@";
22 "lt" = "eza --icons --tree -a";
23 "dig" = "doggo";
24 "nt" = "nixpkgs-track";
25 };
26 shellInit = ''
27 set -x GPG_TTY (tty)
28 set -x SSH_AUTH_SOCK (gpgconf --list-dirs agent-ssh-socket)
29 gpgconf --launch gpg-agent
30 '';
31
32 interactiveShellInit = ''
33 fzf_configure_bindings --directory=\cf --git_log=\cl --git_status=\cg \
34 --history=\cr --variables=\cv --processes=\cp
35 '';
36
37 plugins = [
38 {
39 inherit (pkgs.fishPlugins.fzf-fish) src;
40 name = "fzf-fish";
41 }
42 ];
43 };
44}