{  pkgs, lib, user, rice, ... }: 
lib.mkIf (user != "tv")
{
  home.packages = [
    pkgs.starship
  ];

  programs.starship = {
    enable = true;
    # enableBashIntegration = true;
    enableFishIntegration = true;
    settings = with rice.color; {
      add_newline = false;
      format = lib.strings.concatMapStrings (x: "$" + x) [
        "jobs"
        "battery"
        "username"
        "hostname"
        # "localip"
        "shlvl"
        # "singularity"
        # "kubernetes"
        "directory"
        # "vcsh"
        "git_branch"
        "git_commit"
        "git_state"
        "git_metrics"
        "git_status"
        # "hg_branch"
        "docker_context"
        # "package"
        "c"
        "cmake"
        # "cobol"
        # "daml"
        # "dart"
        # "deno"
        # "dotnet"
        "elixir"
        # "elm"
        # "erlang"
        "golang"
        "haskell"
        # "helm"
        # "java"
        # "julia"
        # "kotlin"
        "lua"
        "nim"
        "nodejs"
        # "ocaml"
        # "perl"
        "php"
        # "pulumi"
        # "purescript"
        "python"
        # "raku"
        # "rlang"
        # "red"
        # "ruby"
        # "rust"
        # "scala"
        # "swift"
        # "terraform"
        # "vlang"
        # "vagrant"
        "zig"
        # "buf"
        "nix_shell"
        "conda"
        # "meson"
        # "spack"
        # "memory_usage"
        # "aws"
        # "gcloud"
        # "openstack"
        # "azure"
        "env_var"
        # "crystal"
        "custom"
        "sudo"
        "cmd_duration"
        # "time"
        "status"
        "container"
        "shell"
        "character"
      ];
      aws.format =              "[\\[$symbol($profile)(\\($region\\))(\\[$duration\\])\\]](fg:${foreground})";
      battery.format =          "[\\[$symbol$percentage\\]](fg:${foreground})";
      bun.format =              "[\\[$symbol($version)\\]](fg:${foreground})";
      c.format =                "[\\[$symbol($version(-$name))\\]](fg:${foreground})";
      character = {
        format = "$symbol ";
        success_symbol =            "[\\[󰽧\\]](${foreground})";
        error_symbol =              "[\\[\\]](${negative.base})";
        vimcmd_replace_one_symbol = "[\\[1\\]](${special.base})";
        vimcmd_replace_symbol =     "[\\[R\\]](${special.base})";
        vimcmd_symbol =             "[\\[\\]](${special.base})";
        vimcmd_visual_symbol =      "[\\[V\\]](${special.base})";
      };
      cmake.format =            "[\\[$symbol($version)\\]](fg:${foreground})";
      cmd_duration.format =     "[\\[$symbol$duration\\]](fg:${accent.bright})";
      cobol.format =            "[\\[$symbol($version)\\]](fg:${foreground})";
      conda.format =            "[\\[$symbol$environment\\]](fg:${foreground})";
      crystal.format =          "[\\[$symbol($version)\\]](fg:${foreground})";
      daml.format =             "[\\[$symbol($version)\\]](fg:${foreground})";
      dart.format =             "[\\[$symbol($version)\\]](fg:${foreground})";
      deno.format =             "[\\[$symbol($version)\\]](fg:${foreground})";
      directory.format =        "[\\[](fg:${accent.base})[$lock_symbol](${negative.base})[$path\\]](fg:${accent.base})";
      docker_context.format =   "[\\[$symbol($context)\\]](fg:${foreground})";
      dotnet.format =           "[\\[$symbol($version)(🎯 $tfm)\\]](fg:${foreground})";
      elixir.format =           "[\\[$symbol($version \\(OTP $otp_version\\))\\]](fg:${foreground})";
      elm.format =              "[\\[$symbol($version)\\]](fg:${foreground})";
      erlang.format =           "[\\[$symbol($version)\\]](fg:${foreground})";
      gcloud.format =           "[\\[$symbol$account(@$domain)(\\($region\\))\\]](fg:${foreground})";
      git_branch.format =       "[\\[$symbol$branch](fg:${secondary.base})";
      git_status.format =       "[:](fg:${secondary.base})[$all_status$ahead_behind](fg:${tertiary.base})[\\]](fg:${secondary.base})";
      golang.format =           "[\\[$symbol($version)\\]](fg:${foreground})";
      haskell.format =          "[\\[$symbol($version)\\]](fg:${foreground})";
      helm.format =             "[\\[$symbol($version)\\]](fg:${foreground})";
      hg_branch.format =        "[\\[$symbol$branch\\]](fg:${foreground})";
      hostname.format =         "[\\[󰖟 $hostname\\]](fg:${foreground})"; # ssh only by default
      java.format =             "[\\[$symbol($version)\\]](fg:${foreground})";
      jobs.format =             "[\\[$symbol $number\\]](fg:${foreground})";
      julia.format =            "[\\[$symbol($version)\\]](fg:${foreground})";
      kotlin.format =           "[\\[$symbol($version)\\]](fg:${foreground})";
      kubernetes.format =       "[\\[$symbol$context( \\($namespace\\))\\]](fg:${foreground})";
      lua.format =              "[\\[$symbol($version)\\]](fg:${foreground})";
      memory_usage.format =     "[\\[$symbol[$ram( | $swap)\\]](fg:${foreground})";
      meson.format =            "[\\[$symbol$project\\]](fg:${foreground})";
      nim.format =              "[\\[$symbol($version)\\]](fg:${foreground})";
      nix_shell.format =        "[\\[󱄅 $state\\($name\\)\\]](fg:${foreground})";
      nodejs.format =           "[\\[$symbol$version\\]](fg:${yellow.bright})";
      ocaml.format =            "[\\[$symbol($version)(\\($switch_indicator$switch_name\\))\\]](fg:${foreground})";
      openstack.format =        "[\\[$symbol$cloud(\\($project\\))\\]](fg:${foreground})";
      package.format =          "[\\[$symbol$version\\]](fg:${foreground})";
      perl.format =             "[\\[$symbol($version)\\]](fg:${foreground})";
      php.format =              "[\\[$symbol($version)\\]](fg:${foreground})";
      pulumi.format =           "[\\[$symbol$stack\\]](fg:${foreground})";
      purescript.format =       "[\\[$symbol($version)\\]](fg:${foreground})";
      python.format =           "[\\[ ](${blue.base})[$pyenv_prefix$version$virtualenv](${yellow.base})[\\]](fg:${blue.base})";
      raku.format =             "[\\[$symbol($version-$vm_version)\\]](fg:${foreground})";
      red.format =              "[\\[$symbol($version)\\]](fg:${foreground})";
      ruby.format =             "[\\[$symbol($version)\\]](fg:${foreground})";
      rust.format =             "[\\[$symbol($version)\\]](fg:${foreground})";
      scala.format =            "[\\[$symbol($version)\\]](fg:${foreground})";
      shlvl.format =            "[\\[$symbol$shlvl\\]](fg:${foreground})";
      singularity.format =      "[\\[$symbol\\[$env\\]\\]](fg:${foreground})";
      spack.format =            "[\\[$symbol$environment\\]](fg:${foreground})";
      sudo.format =             "[\\[$symbol]\\]";
      swift.format =            "[\\[$symbol($version)\\]](fg:${foreground})";
      terraform.format =        "[\\[$symbol$workspace\\]](fg:${foreground})";
      time.format =             "[\\[$time\\]](fg:${foreground})";
      username.format =         "[\\[$user\\]](fg:${foreground})";
      vagrant.format =          "[\\[$symbol($version)\\]](fg:${foreground})";
      vcsh.format =             "[\\[vcsh [$symbol$repo\\]](fg:${foreground})";
      vlang.format =            "[\\[$symbol($version)\\]](fg:${foreground})";
      zig.format =              "[\\[$symbol($version)\\]](fg:${foreground})";
    }; 
  }; 
}
