diff --git a/home/shell/default.nix b/home/shell/default.nix index b4d934b..b5d171f 100644 --- a/home/shell/default.nix +++ b/home/shell/default.nix @@ -11,7 +11,7 @@ ./git.nix ./nushell ./rmtrash.nix - ./starship + ./starship.nix ./tldr.nix ./zsh ]; diff --git a/home/shell/starship.nix b/home/shell/starship.nix index 08863d3..e206ee2 100644 --- a/home/shell/starship.nix +++ b/home/shell/starship.nix @@ -4,73 +4,280 @@ enable = true; settings = { add_newline = false; - format = lib.concatStrings [ - "[](blue)" - "[$username:$hostname](bold white bg:blue)" - "[](bg:#769ff0 fg:blue)" - "$directory" - "[](fg:#769ff0 bg:#394260)" - "$git_branch" - "$git_status" - "[](fg:#394260 bg:#212736)" - "[](fg:#212736 bg:#1d2230)" - "$time" - "[ ](fg:#1d2230)" - " $character" - ]; - command_timeout = 5000; - - # 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 = { - show_always = true; - format = "$user"; + character = { + success_symbol = "> = {(bold green)"; + error_symbol = "x = {(bold red)"; + vimcmd_symbol = "< = {(bold green)"; }; - hostname = { - ssh_only = false; - format = "$hostname"; - disabled = false; + git_commit = { + tag_symbol = " tag "; + }; + + git_status = { + ahead = ">"; + behind = "<"; + diverged = "<>"; + renamed = "r"; + deleted = "x"; + }; + + aws = { + symbol = "aws "; + }; + + azure = { + symbol = "az "; + }; + + bun = { + symbol = "bun "; + }; + + c = { + symbol = "C "; + }; + + cobol = { + symbol = "cobol "; + }; + + conda = { + symbol = "conda "; + }; + + crystal = { + symbol = "cr "; + }; + + cmake = { + symbol = "cmake "; + }; + + daml = { + symbol = "daml "; + }; + + dart = { + symbol = "dart "; + }; + + deno = { + symbol = "deno "; + }; + + dotnet = { + symbol = ".NET "; }; directory = { - style = "fg:#e3e5e5 bg:#769ff0"; - format = "[ $path ]($style)"; - truncation_length = 3; - truncation_symbol = "…/"; + read_only = " ro"; }; - # 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" = " "; + docker_context = { + symbol = "docker "; }; - # Keep in mind that the order matters. For ezample: - # "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  " = "  " + + elixir = { + symbol = "exs "; + }; + + elm = { + symbol = "elm "; + }; + + fennel = { + symbol = "fnl "; + }; + + fossil_branch = { + symbol = "fossil "; + }; + + gcloud = { + symbol = "gcp "; + }; + git_branch = { - symbol = ""; - style = "bg:#4C566A"; - format = "[ $symbol $branch ]($style)"; + symbol = "git "; }; - git_status = { - style = "bg:#394260"; - format = - "[[($all_status$ahead_behind )](fg:#769ff0 bg:#394260)]($style)"; + + golang = { + symbol = "go "; }; - time = { - disabled = false; - time_format = "%R"; - style = "bg:#33658A"; - format = "[ $time ]($style)"; + + gradle = { + symbol = "gradle "; }; + + guix_shell = { + symbol = "guix "; + }; + + hg_branch = { + symbol = "hg "; + }; + + java = { + symbol = "java "; + }; + + julia = { + symbol = "jl "; + }; + + kotlin = { + symbol = "kt "; + }; + + lua = { + symbol = "lua "; + }; + + nodejs = { + symbol = "nodejs "; + }; + + memory_usage = { + symbol = "memory "; + }; + + meson = { + symbol = "meson "; + }; + + nim = { + symbol = "nim "; + }; + + nix_shell = { + symbol = "nix "; + }; + + ocaml = { + symbol = "ml "; + }; + + opa = { + symbol = "opa "; + }; + + os.symbols = { + Alpaquita = "alq "; + Alpine = "alp "; + Amazon = "amz "; + Android = "andr "; + Arch = "rch "; + Artix = "atx "; + CentOS = "cent "; + Debian = "deb "; + DragonFly = "dfbsd "; + Emscripten = "emsc "; + EndeavourOS = "ndev "; + Fedora = "fed "; + FreeBSD = "fbsd "; + Garuda = "garu "; + Gentoo = "gent "; + HardenedBSD = "hbsd "; + Illumos = "lum "; + Linux = "lnx "; + Mabox = "mbox "; + Macos = "mac "; + Manjaro = "mjo "; + Mariner = "mrn "; + MidnightBSD = "mid "; + Mint = "mint "; + NetBSD = "nbsd "; + NixOS = "nix "; + OpenBSD = "obsd "; + OpenCloudOS = "ocos "; + openEuler = "oeul "; + openSUSE = "osuse "; + OracleLinux = "orac "; + Pop = "pop "; + Raspbian = "rasp "; + Redhat = "rhl "; + RedHatEnterprise = "rhel "; + Redox = "redox "; + Solus = "sol "; + SUSE = "suse "; + Ubuntu = "ubnt "; + Unknown = "unk "; + Windows = "win "; + }; + + package = { + symbol = "pkg "; + }; + + perl = { + symbol = "pl "; + }; + + php = { + symbol = "php "; + }; + + pijul_channel = { + symbol = "pijul "; + }; + + pulumi = { + symbol = "pulumi "; + }; + + purescript = { + symbol = "purs "; + }; + + python = { + symbol = "py "; + }; + + raku = { + symbol = "raku "; + }; + + ruby = { + symbol = "rb "; + }; + + rust = { + symbol = "rs "; + }; + + scala = { + symbol = "scala "; + }; + + spack = { + symbol = "spack "; + }; + + solidity = { + symbol = "solidity "; + }; + + status = { + symbol = "x = {(bold red) "; + }; + + sudo = { + symbol = "sudo "; + }; + + swift = { + symbol = "swift "; + }; + + terraform = { + symbol = "terraform "; + }; + + zig = { + symbol = "zig "; + }; + }; }; }