{ pkgs, ... }@all: with all; { programs.starship = { enable = true; package = pkgs.starship; # 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})"; }; }; }