{
  pkgs,
  ...
}: 
let
  catppuccin_mocha = pkgs.fetchurl {
    url = "https://raw.githubusercontent.com/catppuccin/starship/main/themes/mocha.toml";
    hash = "sha256-cSaZrSfbk97d2kV3q5dT924MgmUuY8eYIIU0PIygH5w=";
  };
in
{
  programs.starship = {
    enable = true;

    enableBashIntegration = true;
    enableZshIntegration = true;

    settings =
      {
        add_newline = true;
        character = {
          success_symbol = "[â�¯](bold green)";
          error_symbol = "[â�¯](bold red)";
        };

        hostname = {
          format = "on [$hostname]($style)";
          style = "bold yellow";
        };

        git_branch = {
          format = "[$symbol$branch]($style)";
          symbol = "îœ‚ ";
          style = "bold mauve";
        };

        git_commit = {
          commit_hash_length = 6;
        };

        os = {
          disabled = false;
          format = "$symbol ";
        };

        os.symbols = {
          AIX = "â�¿ ";
          Alpaquita = "ğŸ””";
          AlmaLinux = "ğŸ’ ";
          Alpine = "ğŸ�”ï¸�";
          Amazon = "ğŸ™‚";
          Android = "ğŸ¤–";
          Arch = "ğŸ�—ï¸�";
          Artix = "ğŸ�—ï¸�";
          CentOS = "ğŸ’ ";
          Debian = "ğŸŒ€";
          DragonFly = "ğŸ�‰";
          Emscripten = "ğŸ”—";
          EndeavourOS = "ğŸš€";
          Fedora = "ğŸ�©";
          FreeBSD = "ğŸ˜ˆ";
          Garuda = "ğŸ¦…";
          Gentoo = "ğŸ—œï¸�";
          HardenedBSD = "ğŸ›¡ï¸�";
          Illumos = "ğŸ�¦";
          Kali = "ğŸ�‰";
          Linux = "ğŸ�§";
          Mabox = "ğŸ“¦";
          Macos = "ğŸ��";
          Manjaro = "ğŸ¥­";
          Mariner = "ğŸŒŠ";
          MidnightBSD = "ğŸŒ˜";
          Mint = "ğŸŒ¿";
          NetBSD = "ğŸš©";
          NixOS = "â�„ï¸�";
          OpenBSD = "ğŸ�¡";
          OpenCloudOS = "â˜�ï¸�";
          openEuler = "ğŸ¦‰";
          openSUSE = "ğŸ¦�";
          OracleLinux = "ğŸ¦´";
          Pop = "ğŸ�­";
          Raspbian = "ğŸ�“";
          Redhat = "ğŸ�©";
          RedHatEnterprise = "ğŸ�©";
          RockyLinux = "ğŸ’ ";
          Redox = "ğŸ§ª";
          Solus = "â›µ";
          SUSE = "ğŸ¦�";
          Ubuntu = "ğŸ�¯";
          Ultramarine = "ğŸ”·";
          Unknown = "â�“";
          Void = "îŠ™ ";
          Windows = "ğŸªŸ";
        };

        palette = "catppuccin_mocha";
      }
      // builtins.fromTOML (builtins.readFile (catppuccin_mocha));
  };
}
