system/pkgs/app/terminal/starship.nix
2024-10-14 14:28:31 -07:00

917 lines
25 KiB
Nix
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{ pkgs, ... }:
{
home.packages = with pkgs; [
starship
];
programs.starship = {
enable = true;
enableZshIntegration = true;
enableBashIntegration = true;
settings = {
# "$schema" = "https://starship.rs/config-schema.json";
add_newline = true;
command_timeout = 500;
continuation_prompt = "[](bright-black) ";
# format = "[](0x9A348E)$username$hostname$localip$shlvl$singularity$kubernetes[](fg:0x9A348E bg:0xDA627D)$directory$vcsh[](fg:0xDA627D bg:0xFCA17D)$git_branch$git_commit$git_state$git_metrics$git_status$hg_branch[](fg:0x86BBD8 bg:0x06969A)$docker_context$package$buf[](fg:0xFCA17D bg:0x86BBD8)$c$cmake$cobol$container$daml$dart$deno$dotnet$elixir$elm$erlang$golang$haskell$helm$java$julia$kotlin$lua$nim$nodejs$ocaml$perl$php$pulumi$purescript$python$rlang$red$ruby$rust$scala$swift$terraform$vlang$vagrant$zig$nix_shell$conda$spack$memory_usage$aws$gcloud$openstack$azure$env_var$crystal$custom$sudo$cmd_duration$line_break$jobs$battery[](fg:0x06969A bg:0x33658A)$time$status$shell$character";
format = "[](#a3aed2)\(bg:#a3aed2 fg:#090c0c) \$username\[](bg:#769ff0 fg:#a3aed2)\$directory\[](fg:#769ff0 bg:#394260)\$git_branch\$git_status\[](fg:#394260 bg:#212736)\$nodejs\$rust\$golang\$php\[](fg:#212736 bg:#1d2230)\$time\[ ](fg:#1d2230)\
\n$character";
right_format = "";
scan_timeout = 30;
aws = {
format = "[$symbol($profile )(($region) )([$duration] )]($style)";
symbol = "🅰 ";
style = "bold yellow";
disabled = false;
expiration_symbol = "X";
force_display = false;
};
aws.region_aliases = {};
aws.profile_aliases = {};
azure = {
format = "[$symbol($subscription)([$duration])]($style) ";
symbol = " ";
style = "blue bold";
disabled = true;
};
battery = {
format = "[$symbol$percentage]($style) ";
charging_symbol = " ";
discharging_symbol = " ";
empty_symbol = " ";
full_symbol = " ";
unknown_symbol = " ";
disabled = false;
display = [
{
style = "red bold";
threshold = 10;
}
];
};
buf = {
format = "[$symbol ($version)]($style)";
version_format = "v$raw";
symbol = "";
style = "bold blue";
disabled = false;
detect_extensions = [];
detect_files = [
"buf.yaml"
"buf.gen.yaml"
"buf.work.yaml"
];
detect_folders = [];
};
c = {
format = "[$symbol($version(-$name) )]($style)";
version_format = "v$raw";
style = "fg:149 bold bg:0x86BBD8";
symbol = " ";
disabled = false;
detect_extensions = [
"c"
"h"
];
detect_files = [];
detect_folders = [];
# commands = [
# [
# "cc"
# "--version"
# ]
# [
# "gcc"
# "--version"
# ]
# [
# "clang"
# "--version"
# ]
# ];
};
character = {
format = "$symbol ";
vicmd_symbol = "[](bold green)";
disabled = false;
success_symbol = "[](bold green) ";
error_symbol = "[](bold red) ";
};
cmake = {
format = "[$symbol($version )]($style)";
version_format = "v$raw";
symbol = " ";
style = "bold blue";
disabled = false;
detect_extensions = [];
detect_files = [
"CMakeLists.txt"
"CMakeCache.txt"
];
detect_folders = [];
};
cmd_duration = {
min_time = 2000;
format = " [$duration]($style) ";
style = "yellow bold";
show_milliseconds = false;
disabled = false;
show_notifications = false;
min_time_to_notify = 45000;
};
cobol = {
format = "[$symbol($version )]($style)";
version_format = "v$raw";
symbol = " ";
style = "bold blue";
disabled = false;
detect_extensions = [
"cbl"
"cob"
"CBL"
"COB"
];
detect_files = [];
detect_folders = [];
};
conda = {
truncation_length = 1;
format = "[$symbol$environment]($style) ";
symbol = " ";
style = "green bold";
ignore_base = true;
disabled = false;
};
container = {
format = "[$symbol [$name]]($style) ";
symbol = "";
style = "red bold dimmed";
disabled = false;
};
crystal = {
format = "[$symbol($version )]($style)";
version_format = "v$raw";
symbol = "🔮 ";
style = "bold red";
disabled = false;
detect_extensions = ["cr"];
detect_files = ["shard.yml"];
detect_folders = [];
};
dart = {
format = "[$symbol($version )]($style)";
version_format = "v$raw";
symbol = "🎯 ";
style = "bold blue";
disabled = false;
detect_extensions = ["dart"];
detect_files = [
"pubspec.yaml"
"pubspec.yml"
"pubspec.lock"
];
detect_folders = [".dart_tool"];
};
deno = {
format = "[$symbol($version )]($style)";
version_format = "v$raw";
symbol = "🦕 ";
style = "green bold";
disabled = false;
detect_extensions = [];
detect_files = [
"deno.json"
"deno.jsonc"
"mod.ts"
"deps.ts"
"mod.js"
"deps.js"
];
detect_folders = [];
};
directory = {
disabled = false;
fish_style_pwd_dir_length = 0;
format = "[ $path ]($style)";
home_symbol = "~";
read_only = " ";
read_only_style = "red";
repo_root_format = "[$before_root_path]($style)[$repo_root]($repo_root_style)[$path]($style)[$read_only]($read_only_style) ";
style = "fg:#e3e5e5 bg:#769ff0";
truncate_to_repo = true;
truncation_length = 3;
truncation_symbol = "/";
use_logical_path = true;
use_os_path_sep = true;
};
directory.substitutions = {
# Here is how you can shorten some long paths by text replacement;
# similar to mapped_locations in Oh My Posh:;
"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  " = "  ";
"Important " = " ";
};
docker_context = {
format = "[$symbol$context]($style) ";
style = "blue bold bg:0x06969A";
symbol = " ";
only_with_files = true;
disabled = false;
detect_extensions = [];
detect_files = [
"docker-compose.yml"
"docker-compose.yaml"
"Dockerfile"
];
detect_folders = [];
};
dotnet = {
format = "[$symbol($version )(🎯 $tfm )]($style)";
version_format = "v$raw";
symbol = "🥅 ";
style = "blue bold";
heuristic = true;
disabled = false;
detect_extensions = [
"csproj"
"fsproj"
"xproj"
];
detect_files = [
"global.json"
"project.json"
"Directory.Build.props"
"Directory.Build.targets"
"Packages.props"
];
detect_folders = [];
};
elixir = {
format = "[$symbol($version (OTP $otp_version) )]($style)";
version_format = "v$raw";
style = "bold purple bg:0x86BBD8";
symbol = " ";
disabled = false;
detect_extensions = [];
detect_files = ["mix.exs"];
detect_folders = [];
};
elm = {
format = "[$symbol($version )]($style)";
version_format = "v$raw";
style = "cyan bold bg:0x86BBD8";
symbol = " ";
disabled = false;
detect_extensions = ["elm"];
detect_files = [
"elm.json"
"elm-package.json"
".elm-version"
];
detect_folders = ["elm-stuff"];
};
env_var = {};
env_var.SHELL = {
format = "[$symbol($env_value )]($style)";
style = "grey bold italic dimmed";
symbol = "e:";
disabled = true;
variable = "SHELL";
default = "unknown shell";
};
env_var.USER = {
format = "[$symbol($env_value )]($style)";
style = "grey bold italic dimmed";
symbol = "e:";
disabled = true;
default = "unknown user";
};
erlang = {
format = "[$symbol($version )]($style)";
version_format = "v$raw";
symbol = " ";
style = "bold red";
disabled = false;
detect_extensions = [];
detect_files = [
"rebar.config"
"erlang.mk"
];
detect_folders = [];
};
fill = {
style = "bold black";
symbol = ".";
disabled = false;
};
gcloud = {
format = "[$symbol$account(@$domain)(($region))(($project))]($style) ";
symbol = " ";
style = "bold blue";
disabled = false;
};
gcloud.project_aliases = {};
gcloud.region_aliases = {};
git_branch = {
format = "[$symbol$branch(:$remote_branch)]($style) ";
symbol = " ";
style = "bold purple bg:0xFCA17D";
truncation_length = 9223372036854775807;
truncation_symbol = "";
only_attached = false;
always_show_remote = false;
ignore_branches = [];
disabled = false;
};
git_commit = {
commit_hash_length = 7;
format = "[($hash$tag)]($style) ";
style = "green bold";
only_detached = true;
disabled = false;
tag_symbol = " 🏷 ";
tag_disabled = true;
};
git_metrics = {
added_style = "bold green";
deleted_style = "bold red";
only_nonzero_diffs = true;
format = "([+$added]($added_style) )([-$deleted]($deleted_style) )";
disabled = false;
};
git_state = {
am = "AM";
am_or_rebase = "AM/REBASE";
bisect = "BISECTING";
cherry_pick = "🍒PICKING(bold red)";
disabled = false;
format = "([$state( $progress_current/$progress_total)]($style)) ";
merge = "MERGING";
rebase = "REBASING";
revert = "REVERTING";
style = "bold yellow";
};
git_status = {
ahead = "🏎💨$count";
behind = "😰$count";
conflicted = "🏳";
deleted = "🗑";
disabled = false;
diverged = "😵";
format = "([[$all_status$ahead_behind]]($style) )";
ignore_submodules = false;
modified = "📝";
renamed = "👅";
staged = "[++($count)](green)";
stashed = "📦";
style = "red bold bg:0xFCA17D";
untracked = "🤷";
up_to_date = "";
};
golang = {
format = "[$symbol($version )]($style)";
version_format = "v$raw";
symbol = " ";
style = "bold cyan bg:0x86BBD8";
disabled = false;
detect_extensions = ["go"];
detect_files = [
"go.mod"
"go.sum"
"glide.yaml"
"Gopkg.yml"
"Gopkg.lock"
".go-version"
];
detect_folders = ["Godeps"];
};
haskell = {
format = "[$symbol($version )]($style)";
version_format = "v$raw";
symbol = "λ ";
style = "bold purple bg:0x86BBD8";
disabled = false;
detect_extensions = [
"hs"
"cabal"
"hs-boot"
];
detect_files = [
"stack.yaml"
"cabal.project"
];
detect_folders = [];
};
helm = {
format = "[$symbol($version )]($style)";
version_format = "v$raw";
symbol = " ";
style = "bold white";
disabled = false;
detect_extensions = [];
detect_files = [
"helmfile.yaml"
"Chart.yaml"
];
detect_folders = [];
};
hg_branch = {
symbol = " ";
style = "bold purple";
format = "on [$symbol$branch]($style) ";
truncation_length = 9223372036854775807;
truncation_symbol = "";
disabled = true;
};
hostname = {
disabled = false;
format = "[$ssh_symbol](blue dimmed bold)[$hostname]($style) ";
ssh_only = false;
style = "green dimmed bold";
trim_at = ".";
};
java = {
disabled = false;
format = "[$symbol($version )]($style)";
style = "red dimmed bg:0x86BBD8";
symbol = " ";
version_format = "v$raw";
detect_extensions = [
"java"
"class"
"jar"
"gradle"
"clj"
"cljc"
];
detect_files = [
"pom.xml"
"build.gradle.kts"
"build.sbt"
".java-version"
"deps.edn"
"project.clj"
"build.boot"
];
detect_folders = [];
};
jobs = {
threshold = 1;
symbol_threshold = 0;
number_threshold = 2;
format = "[$symbol$number]($style) ";
symbol = "";
style = "bold blue";
disabled = false;
};
julia = {
disabled = false;
format = "[$symbol($version )]($style)";
style = "bold purple bg:0x86BBD8";
symbol = " ";
version_format = "v$raw";
detect_extensions = ["jl"];
detect_files = [
"Project.toml"
"Manifest.toml"
];
detect_folders = [];
};
kotlin = {
format = "[$symbol($version )]($style)";
version_format = "v$raw";
symbol = "🅺 ";
style = "bold blue";
kotlin_binary = "kotlin";
disabled = false;
detect_extensions = [
"kt"
"kts"
];
detect_files = [];
detect_folders = [];
};
kubernetes = {
disabled = false;
format = "[$symbol$context( ($namespace))]($style) in ";
style = "cyan bold";
symbol = " ";
};
kubernetes.context_aliases = {};
line_break = {
disabled = false;
};
localip = {
disabled = false;
format = "[@$localipv4]($style) ";
ssh_only = false;
style = "yellow bold";
};
lua = {
format = "[$symbol($version )]($style)";
version_format = "v$raw";
symbol = "🌙 ";
style = "bold blue";
lua_binary = "lua";
disabled = false;
detect_extensions = ["lua"];
detect_files = [".lua-version"];
detect_folders = ["lua"];
};
memory_usage = {
disabled = false;
format = "$symbol[$ram( | $swap)]($style) ";
style = "white bold dimmed";
symbol = " ";
# threshold = 75;
threshold = -1;
};
nim = {
format = "[$symbol($version )]($style)";
style = "yellow bold bg:0x86BBD8";
symbol = " ";
version_format = "v$raw";
disabled = false;
detect_extensions = [
"nim"
"nims"
"nimble"
];
detect_files = ["nim.cfg"];
detect_folders = [];
};
nix_shell = {
format = "[$symbol$state( ($name))]($style) ";
disabled = false;
impure_msg = "[impure](bold red)";
pure_msg = "[pure](bold green)";
style = "bold blue";
symbol = " ";
};
nodejs = {
format = "[$symbol($version )]($style)";
not_capable_style = "bold red";
style = "bold green bg:0x86BBD8";
symbol = " ";
version_format = "v$raw";
disabled = false;
detect_extensions = [
"js"
"mjs"
"cjs"
"ts"
"mts"
"cts"
];
detect_files = [
"package.json"
".node-version"
".nvmrc"
];
detect_folders = ["node_modules"];
};
ocaml = {
format = "[$symbol($version )(($switch_indicator$switch_name) )]($style)";
global_switch_indicator = "";
local_switch_indicator = "*";
style = "bold yellow";
symbol = "🐫 ";
version_format = "v$raw";
disabled = false;
detect_extensions = [
"opam"
"ml"
"mli"
"re"
"rei"
];
detect_files = [
"dune"
"dune-project"
"jbuild"
"jbuild-ignore"
".merlin"
];
detect_folders = [
"_opam"
"esy.lock"
];
};
openstack = {
format = "[$symbol$cloud(($project))]($style) ";
symbol = " ";
style = "bold yellow";
disabled = false;
};
package = {
format = "[$symbol$version]($style) ";
symbol = "📦 ";
style = "208 bold";
display_private = false;
disabled = false;
version_format = "v$raw";
};
perl = {
format = "[$symbol($version )]($style)";
version_format = "v$raw";
symbol = "🐪 ";
style = "149 bold";
disabled = false;
detect_extensions = [
"pl"
"pm"
"pod"
];
detect_files = [
"Makefile.PL"
"Build.PL"
"cpanfile"
"cpanfile.snapshot"
"META.json"
"META.yml"
".perl-version"
];
detect_folders = [];
};
php = {
format = "[$symbol($version )]($style)";
version_format = "v$raw";
symbol = "🐘 ";
style = "147 bold";
disabled = false;
detect_extensions = ["php"];
detect_files = [
"composer.json"
".php-version"
];
detect_folders = [];
};
pulumi = {
format = "[$symbol($username@)$stack]($style) ";
version_format = "v$raw";
symbol = " ";
style = "bold 5";
disabled = false;
};
purescript = {
format = "[$symbol($version )]($style)";
version_format = "v$raw";
symbol = "<=> ";
style = "bold white";
disabled = false;
detect_extensions = ["purs"];
detect_files = ["spago.dhall"];
detect_folders = [];
};
python = {
format = "[$symbol$pyenv_prefix($version )(($virtualenv) )]($style)";
python_binary = [
"python"
"python3"
"python2"
];
pyenv_prefix = "pyenv ";
pyenv_version_name = true;
style = "yellow bold";
symbol = "🐍 ";
version_format = "v$raw";
disabled = false;
detect_extensions = ["py"];
detect_files = [
"requirements.txt"
".python-version"
"pyproject.toml"
"Pipfile"
"tox.ini"
"setup.py"
"__init__.py"
];
detect_folders = [ ".venv" "venv" ];
};
red = {
format = "[$symbol($version )]($style)";
version_format = "v$raw";
symbol = "🔺 ";
style = "red bold";
disabled = false;
detect_extensions = [
"red"
"reds"
];
detect_files = [];
detect_folders = [];
};
rlang = {
format = "[$symbol($version )]($style)";
version_format = "v$raw";
style = "blue bold";
symbol = "📐 ";
disabled = false;
detect_extensions = [
"R"
"Rd"
"Rmd"
"Rproj"
"Rsx"
];
detect_files = [".Rprofile"];
detect_folders = [".Rproj.user"];
};
ruby = {
format = "[$symbol($version )]($style)";
version_format = "v$raw";
symbol = "💎 ";
style = "bold red";
disabled = false;
detect_extensions = ["rb"];
detect_files = [
"Gemfile"
".ruby-version"
];
detect_folders = [];
detect_variables = [
"RUBY_VERSION"
"RBENV_VERSION"
];
};
rust = {
format = "[$symbol($version )]($style)";
version_format = "v$raw";
symbol = "🦀 ";
style = "bold red bg:0x86BBD8";
disabled = false;
detect_extensions = ["rs"];
detect_files = ["Cargo.toml"];
detect_folders = [];
};
scala = {
format = "[$symbol($version )]($style)";
version_format = "v$raw";
disabled = false;
style = "red bold";
symbol = "🆂 ";
detect_extensions = [
"sbt"
"scala"
];
detect_files = [
".scalaenv"
".sbtenv"
"build.sbt"
];
detect_folders = [".metals"];
};
shell = {
format = "[$indicator]($style) ";
bash_indicator = "bsh";
cmd_indicator = "cmd";
elvish_indicator = "esh";
fish_indicator = "";
ion_indicator = "ion";
nu_indicator = "nu";
powershell_indicator = "_";
style = "white bold";
tcsh_indicator = "tsh";
unknown_indicator = "mystery shell";
xonsh_indicator = "xsh";
zsh_indicator = "zsh";
disabled = false;
};
shlvl = {
threshold = 2;
format = "[$symbol$shlvl]($style) ";
symbol = " ";
repeat = false;
style = "bold yellow";
disabled = true;
};
singularity = {
format = "[$symbol[$env]]($style) ";
style = "blue bold dimmed";
symbol = "📦 ";
disabled = false;
};
spack = {
truncation_length = 1;
format = "[$symbol$environment]($style) ";
symbol = "🅢 ";
style = "blue bold";
disabled = false;
};
status = {
format = "[$symbol$status]($style) ";
map_symbol = true;
not_executable_symbol = "🚫";
not_found_symbol = "🔍";
pipestatus = false;
pipestatus_format = "[$pipestatus] => [$symbol$common_meaning$signal_name$maybe_int]($style)";
pipestatus_separator = "|";
recognize_signal_code = true;
signal_symbol = "";
style = "bold red bg:blue";
success_symbol = "🟢 SUCCESS";
symbol = "🔴 ";
disabled = true;
};
sudo = {
format = "[as $symbol]($style)";
symbol = "🧙 ";
style = "bold blue";
allow_windows = false;
disabled = true;
};
swift = {
format = "[$symbol($version )]($style)";
version_format = "v$raw";
symbol = "🐦 ";
style = "bold 202";
disabled = false;
detect_extensions = ["swift"];
detect_files = ["Package.swift"];
detect_folders = [];
};
terraform = {
format = "[$symbol$workspace]($style) ";
version_format = "v$raw";
symbol = "💠 ";
style = "bold 105";
disabled = false;
detect_extensions = [
"tf"
"tfplan"
"tfstate"
];
detect_files = [];
detect_folders = [".terraform"];
};
time = {
format = "[[ $time ](fg:#a0a9cb bg:#1d2230)]($style)";
style = "bg:#1d2230";
use_12hr = true;
disabled = false;
utc_time_offset = "local";
# time_format = "%R"; # Hour:Minute Format;
time_format = "%r"; # Hour:Minute:Seconds Format;
time_range = "-";
};
username = {
format = "user: [$user]($style) ";
show_always = true;
style_root = "red bold bg:0x9A348E";
style_user = "white bold";
disabled = false;
};
vagrant = {
format = "[$symbol($version )]($style)";
version_format = "v$raw";
symbol = " ";
style = "cyan bold";
disabled = false;
detect_extensions = [];
detect_files = ["Vagrantfile"];
detect_folders = [];
};
vcsh = {
symbol = "";
style = "bold yellow";
format = "[$symbol$repo]($style) ";
disabled = false;
};
vlang = {
format = "[$symbol($version )]($style)";
version_format = "v$raw";
symbol = "V ";
style = "blue bold";
disabled = false;
detect_extensions = ["v"];
detect_files = [
"v.mod"
"vpkg.json"
".vpkg-lock.json"
];
detect_folders = [];
};
zig = {
format = "[$symbol($version )]($style)";
version_format = "v$raw";
symbol = " ";
style = "bold yellow";
disabled = false;
detect_extensions = ["zig"];
detect_files = [];
detect_folders = [];
};
custom = {
};
};
};
}