Skip to content

Instantly share code, notes, and snippets.

@shashanthk
Last active June 24, 2025 10:17
Show Gist options
  • Save shashanthk/4ccd43c79b7c469dd82a9c74f9f39631 to your computer and use it in GitHub Desktop.
Save shashanthk/4ccd43c79b7c469dd82a9c74f9f39631 to your computer and use it in GitHub Desktop.
My custom Starship config file
# Prerequisites:
# 1. Starship installed (https://starship.rs/)
# 2. A Nerd Font installed and enabled in your terminal.
# Recommended: FiraCode Nerd Font, JetBrainsMono Nerd Font
# Increase the timeout Starship will wait for external commands (in milliseconds)
command_timeout = 10000
# 🎨 PALETTES ---------------------------------------------------------------
# Switch your theme by changing the 'palette' variable below.
# Available palettes: "odyssey_blue", "cyberpunk_neon", "matrix_green", "gruvbox_crew"
palette = "odyssey_blue"
[palettes.odyssey_blue]
# Inspired by a certain Starfleet command interface
white = '#c6c6c6'
gray = '#7b7b7b'
dark_gray = '#444444'
blue = '#569cd6'
cyan = '#4ec9b0'
green = '#6a9955'
yellow = '#dcdcaa'
orange = '#ce9178'
red = '#f44747'
purple = '#c586c0'
bg_blue = '#0c1a2e' # A deep space blue
[palettes.cyberpunk_neon]
# High-contrast neons for a dystopian future
white = '#ffffff'
gray = '#9e9e9e'
dark_gray = '#333333'
blue = '#00bfff'
cyan = '#00ffff'
green = '#39ff14'
yellow = '#ffff00'
red = '#ff003c'
purple = '#ff00ff'
bg_blue = '#120024' # Dark purple-ish background
[palettes.matrix_green]
# For when you feel like you've taken the red pill
white = '#e0e0e0'
gray = '#888888'
dark_gray = '#333333'
green = '#00ff41'
cyan = '#00ff41'
blue = '#00ff41'
yellow = '#00ff41'
red = '#ff0000'
purple = '#00ff41'
bg_blue = '#0a1a0a' # Very dark green
[palettes.gruvbox_crew]
# A warm, retro-futuristic feel
white = '#ebdbb2'
gray = '#928374'
dark_gray = '#3c3836'
blue = '#458588'
cyan = '#689d6a'
green = '#98971a'
yellow = '#d79921'
orange = '#d65d0e'
red = '#cc241d'
purple = '#b16286'
bg_blue = '#282828' # Gruvbox background
# FORMATTING ------------------------------------------------------------
# This is the main layout of the prompt.
# It's split into a left side (format) and a right side (right_format).
# The '$all' variable ensures everything fits on one line if the terminal is narrow.
format = """$all"""
# The right-hand side of the prompt. Perfect for status indicators.
right_format = """
$git_branch\
$git_status\
$cmd_duration\
$custom_stardate
"""
# A blank line between prompts helps readability.
[line_break]
disabled = false
# Disable the package module, hiding it from the prompt completely
[package]
disabled = true
# The character shown at the very end of the prompt.
[character]
success_symbol = "[❯](bold green)"
error_symbol = "[❮](bold red)"
# 💻 SYSTEM & USER ------------------------------------------------------------
# Your identity and the system you're commanding.
[username]
disabled = true
style_user = "bold purple"
style_root = "bold red"
format = "[$user]($style)@"
show_always = true
[hostname]
disabled = true
style = "bold blue"
format = "[$hostname]($style) "
ssh_only = false
[directory]
style = "bold cyan"
truncation_length = 1
truncate_to_repo = true # Shorten path to the repo root
read_only = " 🔒"
format = "[$path]($style)[$read_only]($style) "
# 🛠️ DEVELOPMENT TOOLS -------------------------------------------------------
# Language versions and environment indicators. Nerdy icons included!
[aws]
symbol = "☁️ "
style = "bold orange"
[docker_context]
symbol = "🐳 "
style = "bold blue"
[git_branch]
symbol = "🌿 "
style = "bold yellow"
format = "on [$symbol$branch]($style) "
[git_status]
style = "bold red"
conflicted = "[!](bold red)"
ahead = "↑"
behind = "↓"
diverged = "↕"
untracked = "[?](bold magenta)"
stashed = "[#](bold cyan)"
modified = "[*](bold yellow)"
staged = "[+${count}](bold green)"
renamed = "[»](bold blue)"
deleted = "[×](bold red)"
format = "[$all_status$ahead_behind]($style)"
[golang]
disabled = true
[java]
disabled = true
[nodejs]
disabled = true
[python]
disabled = true
[rust]
disabled = true
[gradle]
disabled = true
# ⏱️ COMMAND STATUS ----------------------------------------------------------
[cmd_duration]
min_time = 1000 # Only show for commands taking > 1s
style = "bold gray"
format = " [$duration]($style) "
show_milliseconds = true
# ✨ CUSTOM MODULES ------------------------------------------------------------
# This is where the real magic happens.
# A custom "stardate" because why not?
[custom.stardate]
description = "Displays the current date as a stardate"
command = "echo $(date +'%y%m%d.%S')"
when = "false"
style = "bold gray"
format = "[SD $output]($style) "
[os]
disabled = false
format = "$symbol "
symbols.Ubuntu = ""
symbols.Macos = ""
symbols.Windows = ""
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment