{ pkgs, lib, config, ... }: let inherit (lib) mkEnableOption mkIf; cfg = config.py.programs.fish; in { options.py.programs.fish.enable = mkEnableOption "fish shell"; config.catppuccin.fish.enable = cfg.enable; config.programs.fish = mkIf cfg.enable { enable = true; shellAliases = { "lg" = "lazygit"; "cat" = "bat"; "gls" = "eza -lah@ --icons --git --git-ignore --no-user"; "ls" = "eza --icons -a"; "ll" = "eza --icons -lah@"; "lt" = "eza --icons --tree -a"; "dig" = "doggo"; "nt" = "nixpkgs-track"; }; shellInit = '' set -x GPG_TTY (tty) set -x SSH_AUTH_SOCK (gpgconf --list-dirs agent-ssh-socket) gpgconf --launch gpg-agent ''; interactiveShellInit = '' fzf_configure_bindings --directory=\cf --git_log=\cl --git_status=\cg \ --history=\cr --variables=\cv --processes=\cp ''; plugins = [ { inherit (pkgs.fishPlugins.fzf-fish) src; name = "fzf-fish"; } ]; }; }