{
  format = "$username$hostname$directory($git_branch$git_commit$git_state$git_status)($c$deno$golang$haskell$nodejs$php$python$ruby$rust$terraform[](fg:#F85E84 bg:#000000))($docker_context[](fg:#06969A))($container)$fill(\${custom.triton})$nix_shell$status[ |](fg:#F85E84)$line_break$character";

  # Disable the blank line at the start of the prompt
  add_newline = false;

  # You can also replace your username with a neat symbol like  to save some space
  username = {
    style_user = "bg:#000000 fg:#F85E84";
    style_root = "bg:#F85E84 fg:#000000";
    format = ''[$user ]($style)'';
  };

  hostname = {
    ssh_symbol = "";
    trim_at = "";
    style = "bg:#000000 fg:#F85E84";
  };

  character = {
    success_symbol = "[❯](bold purple)";
    error_symbol = "[✗](#FF4B00)";
  };

  status = {
    disabled = false;
    style = "#FF4B00";
  };

  fill = {
    symbol = "-";
    #style = "bold green";
    style = "black";
  };

  directory = {
    style = "#F85E84";
    truncate_to_repo = false;
    fish_style_pwd_dir_length = 1;
    truncation_symbol = "…/";
    format = "[](fg:black bg:#F85E84)[$path[$read_only](bg:$style fg:black)](bg:$style fg:black)[](fg:$style)";
    read_only = " ";
  };

  # Here is how you can shorten some long paths by text replacement
  # similar to mapped_locations in Oh My Posh:
  directory.substitutions = {
    "Documents" = " ";
    "Downloads" = " ";
    "Music" = " ";
    "Pictures" = " ";
  };
  # Keep in mind that the order matters. For example:
  # "Important Documents" = "  "
  # will not be replaced, because "Documents" was already substituted before.
  # So either put "Important Documents" before "Documents" or use the substituted version:
  # "Important  " = "  "

  c = {
    symbol = " ";
    style = "bg:#86BBD8";
    format = ''[ $symbol ($version) ]($style)'';
  };

  #container = {};

  custom = {
    triton = {
      command = "echo $TRITON_PROFILE";
      when = "test $TRITON_PROFILE";
      format = "[✚ ](fg:#F85E84 bg:#1A181A)[$output](fg:#F85E84 bg:#1A181A)";
      description = "The current triton profile";
    };
  };

  docker_context = {
    symbol = " ";
    style = "bg:#06969A";
    format = ''[ $symbol $context ]($style) $path'';
  };

  #deno = {};

  git_branch = {
    style = "#E5C463";
    format = "[](fg:black bg:$style)[ $symbol$branch](fg:black bg:$style)[](fg:$style)";
    symbol = " ";
  };

  git_commit = {
    style = "#E5C463";
    # ^H is the literal backspace character which renders to \b in the final
    # starship config TOML, produced in insert mode via ctrl+v then ctrl+h.
    # We use the literal character, because escaping a single \ doesn't work
    # with pkgs.formats.toml, see: https://github.com/NixOS/nixpkgs/issues/97310 and
    # https://jdhao.github.io/2020/10/07/nvim_insert_unicode_char/
    format = "[ ](bg:$style)[\\($hash$tag\\)](fg:black bg:$style)[](fg:$style)";
  };

  git_state = {
    style = "#E5C463";
    format = "[ ](bg:$style)[ \\($state( $progress_current/$progress_total)\\)](fg:black bg:$style)[](fg:$style)";
  };

  git_status = {
    style = "#E5C463";
    format = "([ ](bg:$style fg:black)$conflicted$staged$modified$renamed$deleted$untracked$stashed$ahead_behind[](fg:$style))";
    conflicted = "[ ](bold fg:88 bg:#E5C463)[  \${count} ](fg:black bg:#E5C463)";
    staged = "[ $count ](fg:black bg:#E5C463)";
    modified = "[ \${count} ](fg:black bg:#E5C463)";
    renamed = "[ \${count} ](fg:black bg:#E5C463)";
    deleted = "[ \${count} ](fg:black bg:#E5C463)";
    untracked = "[?\${count} ](fg:black bg:#E5C463)";
    stashed = "[ \${count} ](fg:black bg:#E5C463)";
    ahead = "[ \${count} ](fg:#523333 bg:#E5C463)";
    behind = "[ \${count} ](fg:black bg:#E5C463)";
    diverged = "[ ](fg:88 bg:#E5C463)[  ](fg:black bg:#E5C463)[ \${ahead_count} ](fg:black bg:#E5C463)[ \${behind_count} ](fg:black bg:#E5C463)";
  };

  golang = {
    symbol = " ";
    style = "bg:#86BBD8";
    format = ''[ $symbol ($version) ]($style)'';
  };

  haskell = {
    symbol = " ";
    style = "bg:#86BBD8";
    format = ''[ $symbol ($version) ]($style)'';
  };

  nix_shell = {
    format = ''[$symbol]($style) '';
    symbol = " ";
  };

  nodejs = {
    symbol = "";
    style = "bg:#86BBD8";
    format = ''[ $symbol ($version) ]($style)'';
  };

  php = {
    symbol = " ";
  };

  python = {
    symbol = " ";
  };

  ruby = {
    symbol = " ";
  };

  rust = {
    symbol = "";
    style = "bg:#86BBD8";
    format = ''[ $symbol ($version) ]($style)'';
  };

  #terraform = {};

  time = {
    disabled = false;
    time_format = "%R"; # Hour:Minute Format
    style = "bg:#33658A";
    format = ''[ ♥ $time ]($style)'';
  };
}