{
  programs.fish = {
    enable = true;

    shellAliases = {
      # 디렉토리 네비게이션
      ".." = "cd ..";
      "..." = "cd ../..";

      # ls 별칭
      ls = "eza --icons=always";
      ll = "eza --icons=always -l";
      la = "eza --icons=always -a";
      lla = "eza --icons=always -la";

      # NixOS 관련
      rebuild = "nr";
      update = "nix flake update";
      clean = "sudo nix-collect-garbage -d";
    };

    interactiveShellInit = ''
      set -g fish_greeting ""
      set -g fish_color_command blue
      set -g fish_color_error red
      set -g fish_color_param cyan
    '';
  };

  programs.starship = {
    enable = true;
    settings = {
      format = "$username@$hostname:$directory$character";
      add_newline = false;
      username = {
        style_user = "purple";
        style_root = "purple";
        format = "[$user]($style)";
        show_always = true;
      };
      hostname = {
        style = "green";
        format = "[$hostname]($style)";
        ssh_only = false;
      };
      directory = {
        style = "blue";
        format = "[$path]($style)";
        truncation_length = 3;
      };
      character = {
        success_symbol = " >";
        error_symbol = " >";
      };
    };
  };
}
