327 lines
11 KiB
TOML
327 lines
11 KiB
TOML
# starship.toml — Starship cross-shell prompt configuration
|
|
#
|
|
# Starship reads this file (by default at ~/.config/starship.toml) and renders
|
|
# the shell prompt. This config implements a powerline-style segmented prompt
|
|
# using the CyberQueer color palette:
|
|
#
|
|
# #f50505 — Red Hi-vis (segment borders, username background)
|
|
# #E40046 — Hot Pink Accent (directory segment background)
|
|
# #5018dd — Electric Violet (git/language/time segment background)
|
|
#
|
|
# Prompt layout (left to right on one line):
|
|
# [red border] [OS icon + username] [pink separator] [path]
|
|
# [violet separator] [git branch + status] [language versions (if detected)]
|
|
# [red separator] [docker context] [violet separator] [time]
|
|
#
|
|
# The format string uses Starship's powerline "arrow" glyphs () as segment
|
|
# separators: each changes both the foreground and background color to create
|
|
# the filled-triangle transition between segments.
|
|
#
|
|
|
|
# ─── Top-level format ──────────────────────────────────────────────────────────
|
|
|
|
# Commented-out alternative that included a second line with '╚═' continuation.
|
|
# Currently using the single-line version below for a compact prompt.
|
|
#format = "[](#f50505)$os$username[](bg:#E40046 fg:#f50505)$directory[](fg:#E40046 bg:#5018dd)$git_branch$git_status[](fg:#5018dd bg:#5018dd)$c$elixir$elm$golang$gradle$haskell$java$julia$nodejs$nim$rust$scala[](fg:#5018dd bg:#f50505)$docker_context[](fg:#f50505 bg:#5018dd)$time[ ](fg:#5018dd)\n [╚═](#f50505)"
|
|
|
|
# Active single-line format.
|
|
# Each segment is a bracketed block with inline styling: [content](style).
|
|
# The bare characters are powerline separator glyphs that create colored triangles.
|
|
format = "[](#f50505)$os$username[](bg:#E40046 fg:#f50505)$directory[](fg:#E40046 bg:#5018dd)$git_branch$git_status[](fg:#5018dd bg:#5018dd)$c$elixir$elm$golang$gradle$haskell$java$julia$nodejs$nim$rust$scala[](fg:#5018dd bg:#f50505)$docker_context[](fg:#f50505 bg:#5018dd)$time[ ](fg:#5018dd)"
|
|
|
|
# Another commented alternative — kept for reference when experimenting with layout.
|
|
#format = "[](#f50505)$os$username[](bg:#E40046 fg:#f50505)$directory[](fg:#E40046 bg:#5018dd)$git_branch$git_status[](fg:#5018dd bg:#5018dd)$c$elixir$elm$golang$gradle$haskell$java$julia$nodejs$nim$rust$scala[](fg:#5018dd bg:#f50505)$docker_context[](fg:#f50505 bg:#5018dd)$time[ ](fg:#5018dd)"
|
|
|
|
# continuation_prompt: shown on the second and subsequent lines of a multi-line command.
|
|
# The glyphs create a mini powerline row indicating the shell is waiting for more input.
|
|
continuation_prompt = "\n [](#E40046 )[](fg:#E40046 bg:#5018dd)[](#5018dd)"
|
|
|
|
# Disable the blank line at the start of the prompt
|
|
# add_newline = false
|
|
|
|
# You can also replace your username with a neat symbol like or disable this
|
|
# and use the os module below
|
|
|
|
# ─── Username segment ──────────────────────────────────────────────────────────
|
|
# Always shows the current username — useful as a reminder when switching accounts.
|
|
# Sits on the red (#f50505) segment immediately after the OS icon.
|
|
[username]
|
|
show_always = true # Show even when not in SSH or root context
|
|
style_user = "bg:#f50505" # Regular user: red background (matches the border color)
|
|
style_root = "bg:#f50505" # Root: same red background (no color distinction by design)
|
|
format = "[$user ]($style)" # Trailing space before the next separator glyph
|
|
disabled = false
|
|
|
|
|
|
# An alternative to the username module which displays a symbol that
|
|
# represents the current operating system
|
|
|
|
# ─── OS icon segment ───────────────────────────────────────────────────────────
|
|
# Displays a Nerd Font icon for the detected OS (e.g., for Arch Linux).
|
|
# Placed before the username on the same red background segment.
|
|
[os]
|
|
style = "bg:#f50505"
|
|
disabled = false # Disabled by default
|
|
|
|
# ─── Directory segment ─────────────────────────────────────────────────────────
|
|
# Shows the current path on a hot-pink (#E40046) background.
|
|
[directory]
|
|
|
|
style = "bg:#E40046"
|
|
format = "[ $path ]($style)"
|
|
truncation_length = 3 # Show at most 3 path components before truncating
|
|
truncation_symbol = "…/" # Prefix shown when the path is truncated
|
|
|
|
|
|
# Here is how you can shorten some long paths by text replacement
|
|
# similar to mapped_locations in Oh My Posh:
|
|
# ─── Directory substitutions ───────────────────────────────────────────────────
|
|
# Replaces long directory names with compact Nerd Font icons for common folders.
|
|
# This keeps the prompt short without losing context.
|
|
[directory.substitutions]
|
|
"Documents" = " " # Document/paper icon
|
|
"Downloads" = " " # Download/arrow icon
|
|
"Music" = " " # Music note icon (English)
|
|
"music" = " " # lowercase variant
|
|
"Musik" = " " # German 'Musik'
|
|
"musik" = " " # German lowercase
|
|
"Pictures" = " " # Image/photo icon
|
|
|
|
|
|
# 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 " = " "
|
|
|
|
# ─── Language / tool version segments ─────────────────────────────────────────
|
|
# Each of these segments auto-detects project files and shows the active
|
|
# language/runtime version. All share the violet (#5018dd) background to form
|
|
# a unified "toolchain" segment block. They only appear when relevant files
|
|
# are detected in the current or parent directories (e.g., *.c for C, go.mod for Go).
|
|
|
|
[c]
|
|
symbol = " " # C language Nerd Font icon
|
|
style = "bg:#5018dd"
|
|
format = '[ $symbol ($version) ]($style)'
|
|
|
|
[docker_context]
|
|
symbol = " " # Docker whale icon
|
|
style = "bg:#f50505 fg:#5018dd" # Stands out: red background, violet text — highlights active Docker context
|
|
format = '[ $symbol $context ]($style)'
|
|
|
|
[elixir]
|
|
symbol = " " # Elixir drop icon
|
|
style = "bg:#5018dd"
|
|
format = '[ $symbol ($version) ]($style)'
|
|
|
|
[elm]
|
|
symbol = " " # Elm triangle icon
|
|
style = "bg:#5018dd"
|
|
format = '[ $symbol ($version) ]($style)'
|
|
|
|
# ─── Git segments ──────────────────────────────────────────────────────────────
|
|
|
|
[git_branch]
|
|
symbol = "" # Git branch icon (nerd font)
|
|
style = "bg:#5018dd"
|
|
format = '[ $symbol $branch ]($style)' # Shows current branch name
|
|
|
|
[git_status]
|
|
style = "bg:#5018dd"
|
|
# $all_status: compact status codes (M=modified, ?=untracked, !=staged, etc.)
|
|
# $ahead_behind: shows ↑N/↓N when ahead/behind the remote branch
|
|
format = '[$all_status $ahead_behind]($style)'
|
|
|
|
[golang]
|
|
symbol = " " # Go gopher icon
|
|
style = "bg:#5018dd"
|
|
format = '[ $symbol ($version) ]($style)'
|
|
|
|
[gradle]
|
|
style = "bg:#5018dd"
|
|
format = '[ $symbol ($version) ]($style)'
|
|
|
|
[haskell]
|
|
symbol = " " # Haskell lambda icon
|
|
style = "bg:#5018dd"
|
|
format = '[ $symbol ($version) ]($style)'
|
|
|
|
[java]
|
|
symbol = " " # Java coffee cup icon
|
|
style = "bg:#5018dd"
|
|
format = '[ $symbol ($version) ]($style)'
|
|
|
|
[julia]
|
|
symbol = " " # Julia dots icon
|
|
style = "bg:#5018dd"
|
|
format = '[ $symbol ($version) ]($style)'
|
|
|
|
[nodejs]
|
|
symbol = "" # Node.js hexagon icon
|
|
style = "bg:#5018dd"
|
|
format = '[ $symbol ($version) ]($style)'
|
|
|
|
[nim]
|
|
symbol = " " # Nim crown icon
|
|
style = "bg:#5018dd"
|
|
format = '[ $symbol ($version) ]($style)'
|
|
|
|
[rust]
|
|
symbol = "" # Rust gear icon
|
|
style = "bg:#5018dd"
|
|
format = '[ $symbol ($version) ]($style)'
|
|
|
|
[scala]
|
|
symbol = " " # Scala 'S' icon
|
|
style = "bg:#5018dd"
|
|
format = '[ $symbol ($version) ]($style)'
|
|
|
|
# ─── Time segment ──────────────────────────────────────────────────────────────
|
|
# Always-on clock at the right end of the prompt.
|
|
# Helps track how long commands take and time awareness during deep work sessions.
|
|
[time]
|
|
disabled = false
|
|
time_format = "%R" # Hour:Minute Format (24h, e.g. "14:35") — no seconds to save space
|
|
style = "bg:#5018dd"
|
|
format = "[ $time ]($style)" # Clock icon + time on violet background
|
|
|
|
|
|
|
|
# ─── Symbol-only overrides ─────────────────────────────────────────────────────
|
|
# The following sections only override the icon symbol for modules that aren't
|
|
# actively displayed in the main format string. Starship uses these symbols
|
|
# in the `help` output and when the module is added to format later.
|
|
|
|
[aws]
|
|
symbol = " "
|
|
|
|
[buf]
|
|
symbol = " "
|
|
|
|
[cmake]
|
|
symbol = " "
|
|
|
|
[conda]
|
|
symbol = " "
|
|
|
|
[crystal]
|
|
symbol = " "
|
|
|
|
[dart]
|
|
symbol = " "
|
|
[fennel]
|
|
symbol = " "
|
|
|
|
[fossil_branch]
|
|
symbol = " "
|
|
[git_commit]
|
|
tag_symbol = ' ' # Tag icon shown next to tagged commits
|
|
|
|
[guix_shell]
|
|
symbol = " "
|
|
|
|
[haxe]
|
|
symbol = " "
|
|
|
|
[hg_branch]
|
|
symbol = " " # Mercurial branch icon
|
|
|
|
[hostname]
|
|
ssh_symbol = " " # Server/rack icon shown when connected via SSH
|
|
|
|
[kotlin]
|
|
symbol = " "
|
|
|
|
[lua]
|
|
symbol = " "
|
|
|
|
[memory_usage]
|
|
symbol = " " # RAM chip icon
|
|
|
|
[meson]
|
|
symbol = " " # Build system icon
|
|
|
|
[nix_shell]
|
|
symbol = " " # Snowflake icon for Nix environments
|
|
|
|
[ocaml]
|
|
symbol = " "
|
|
|
|
# ─── OS icon symbol table ──────────────────────────────────────────────────────
|
|
# Maps detected OS names to their Nerd Font icons.
|
|
# These are displayed by the [os] module defined above.
|
|
# All icons require a Nerd Font (or compatible patched font) to render correctly.
|
|
[os.symbols]
|
|
Alpaquita = " "
|
|
Alpine = " "
|
|
AlmaLinux = " "
|
|
Amazon = " "
|
|
Android = " "
|
|
Arch = " " # Arch Linux pacman-ghost icon
|
|
Artix = " "
|
|
CentOS = " "
|
|
Debian = " "
|
|
DragonFly = " "
|
|
Emscripten = " "
|
|
EndeavourOS = " "
|
|
Fedora = " "
|
|
FreeBSD = " "
|
|
Garuda = " "
|
|
Gentoo = " "
|
|
HardenedBSD = " "
|
|
Illumos = " "
|
|
Kali = " "
|
|
Linux = " " # Generic Linux penguin icon
|
|
Mabox = " "
|
|
Macos = " " # Apple icon
|
|
Manjaro = " "
|
|
Mariner = " "
|
|
MidnightBSD = " "
|
|
Mint = " "
|
|
NetBSD = " "
|
|
NixOS = " "
|
|
OpenBSD = " "
|
|
openSUSE = " "
|
|
OracleLinux = " "
|
|
Pop = " "
|
|
Raspbian = " "
|
|
Redhat = " "
|
|
RedHatEnterprise = " "
|
|
RockyLinux = " "
|
|
Redox = " "
|
|
Solus = " "
|
|
SUSE = " "
|
|
Ubuntu = " "
|
|
Unknown = " "
|
|
Void = " "
|
|
Windows = " " # Windows logo icon (for WSL sessions)
|
|
|
|
[package]
|
|
symbol = " " # Package/box icon for package.json / Cargo.toml version display
|
|
|
|
[perl]
|
|
symbol = " "
|
|
|
|
[php]
|
|
symbol = " "
|
|
|
|
[pijul_channel]
|
|
symbol = " "
|
|
|
|
[python]
|
|
symbol = " " # Python snake icon
|
|
|
|
[rlang]
|
|
symbol = " "
|
|
|
|
[ruby]
|
|
symbol = " "
|
|
|
|
[swift]
|
|
symbol = " "
|
|
|
|
[zig]
|
|
symbol = " "
|
|
|