{ pkgs, ... }:

{
  programs = {
    bash = {
      # Starts the OS using Bash, then starts fish if it's not running
      interactiveShellInit = ''
        if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
        then
          shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
          exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
        fi
      '';
    };

    fish = {
      enable = true;
      # Start starship when creating a new shell
      interactiveShellInit = ''
        starship init fish | source
      '';
      shellAliases = {
        # Transfer shell config to target device
        ssh = "kitty +kitten ssh";
      };
    };
  };
}
