# Shell configuration, including common tools used within the shell and # shell functions/aliases. { pkgs, lib, config, ... }: let cfg = config.custom.fish; in with lib; { options.custom.fish = with types; { extraAliases = mkOption { default = {}; }; }; config = { # Configure the shell itself programs.fish = { enable = true; shellAliases = {} // cfg.extraAliases; }; # Configure useful additions to the shell programs.direnv.enable = true; programs.skim.enable = true; programs.starship.enable = true; programs.zoxide.enable = true; }; }