From 0fbfd6973ed3fdf2bf9906a0506dbeac06945990 Mon Sep 17 00:00:00 2001 From: reo101 Date: Mon, 21 Nov 2022 10:08:33 +0200 Subject: [PATCH] feat(cheetah): add `starship` config --- nix-on-droid/cheetah/home.nix | 188 ++++++++++++++++++++++++++++++++++ 1 file changed, 188 insertions(+) diff --git a/nix-on-droid/cheetah/home.nix b/nix-on-droid/cheetah/home.nix index 08b1ac4..c6921a2 100644 --- a/nix-on-droid/cheetah/home.nix +++ b/nix-on-droid/cheetah/home.nix @@ -100,6 +100,194 @@ ]; }; + programs.starship = { + enable = true; + + settings = { + # Get editor completions based on the config schema + "$schema" = "https://starship.rs/config-schema.json"; + + # Use custom format + format = '' + [╭───────┨](bold green)[nix-on-droid](bright-white)[@](bold yellow)$hostname[┠───────>](bold green)$status$cmd_duration$git_branch$git_status$git_state$git_commit + [│](bold green)$time$jobs: $directory$package + [╰─](bold green)$character + ''; + + # ${custom.local}\ + # ${custom.local_root}\ + # ${custom.ssh}\ + # ${custom.ssh_root}\ + + add_newline = true; + + character = { + success_symbol = "[→](bold green)"; + error_symbol = "[→](red)"; + }; + + git_branch = { + symbol = "🌱 "; + truncation_length = 15; + truncation_symbol = "…"; # … + }; + + git_commit = { + commit_hash_length = 6; + tag_symbol = "🔖 "; + }; + + git_state = { + format = "[\($state( $progress_current of $progress_total)\)]($style) "; + cherry_pick = "[🍒 PICKING](bold red)"; + }; + + git_status = { + # conflicted = "🏳"; + # ahead = "🏎💨"; + # behind = "😰"; + # diverged = "😵"; + # untracked = "🤷‍"; + # stashed = "📦"; + # modified = "📝"; + # staged = '[++\($count\)](green)'; + # renamed = "👅"; + # deleted = "🗑"; + format = "[\\[$all_status$ahead_behind\\]]($style) "; + conflicted = "=[\($count\)](green) "; + ahead = "⇡[\($count\)](green) "; + behind = "⇣[\($count\)](green) "; + diverged = "⇕[\($count\)](green) "; + untracked = "?[\($count\)](green) "; + stashed = "$[\($count\)](green) "; + modified = "![\($count\)](green) "; + staged = "+[\($count\)](green) "; + renamed = "»[\($count\)](green) "; + deleted = "✘[\($count\)](green) "; + }; + + status = { + style = "bg:blue fg:red"; + symbol = "🔴"; + format = "[\[$symbol $common_meaning$signal_name$maybe_int\]]($style) "; + map_symbol = true; + disabled = false; + }; + + time = { + disabled = false; + format = "🕙[$time]($style) "; + # format = '🕙[\[ $time \]]($style) '; + time_format = "%T"; + utc_time_offset = "+3"; + # time_range = "10:00:00-14:00:00"; + }; + + cmd_duration = { + min_time = 2000; # miliseconds + # show_notifications = true; + min_time_to_notify = 45000; # miliseconds + format = "took [$duration](bold yellow) "; + }; + + hostname = { + ssh_only = false; + format = "[$hostname](bold fg:#CC59B0)"; + disabled = false; + }; + + username = { + disabled = false; + style_user = "white bold"; + style_root = "red bold"; + format = "[$user]($style)[@](bold yellow)"; + show_always = true; + }; + + directory = { + read_only = "🔒"; + read_only_style = "bold white"; + style = "fg:#A7F3E4"; + truncate_to_repo = false; + truncation_length = 5; + truncation_symbol = "…/"; + home_symbol = "🏡"; + format = "[$read_only]($read_only_style)[$path]($style) "; + }; + + directory.substitutions = { + ".config" = " "; + "nvim" = ""; + "emacs" = "𝓔"; + "doom" = "𝓔"; + "Projects" = "💻"; + "FMI" = "🏫"; + "Home" = "🏠"; + "CPP" = ""; + "Java" = ""; + "Python" = ""; + }; + + # Language Environments + package = { + style = "bold fg:#5E5E5E"; + }; + + python = { + style = "bold fg:#5E5E5E"; + symbol = "[](bold yellow) "; + }; + + nodejs = { + style = "bold fg:#5E5E5E"; + symbol = "[⬢](bold green) "; + }; + + # Custom + jobs = { + format = "[ $symbol$number ]($style)"; + style = "bg:#587744 fg:bright-white"; + symbol = "⚙"; + }; + + custom.local = { + shell = ["zsh" "-d" "-f"]; + when = ''[[ -z "$SSH_CLIENT" ]] && [[ `whoami` != "root" ]]''; + format = "[$symbol$output]($style)[@](bold yellow)"; + command = "whoami"; + style = "fg:bright-white"; + symbol = ""; + }; + + custom.local_root = { + shell = ["zsh" "-d" "-f"]; + when = ''[[ -z "$SSH_CLIENT" ]] && [[ `whoami` == "root" ]]''; + format = "[ $output ]($style)[@](bold yellow)"; + command = "whoami"; + style = "bg:red fg:bright-white"; + }; + + custom.ssh = { + shell = ["zsh" "-d" "-f"]; + when = ''[[ -n "$SSH_CLIENT" ]] && [[ `whoami` != "root" ]]''; + format = "[ $symbol$output ]($style)[@](bold yellow)"; + command = "whoami"; + style = "bg:blue fg:bright-white"; + # style = "bg:#FD7208 fg:bright-white"; + symbol = "⌁"; + }; + + custom.ssh_root = { + shell = ["zsh" "-d" "-f"]; + when = ''[[ -n "$SSH_CLIENT" ]] && [[ `whoami` == "root" ]]''; + format = "[ $symbol$output ]($style)[@](bold yellow)"; + command = "whoami"; + style = "bg:red fg:bright-white"; + symbol = "⌁"; + }; + }; + }; + home.file = { ".config/nvim" = { recursive = true;